Skip to content

feat(mcp-hub): 精选连接——一键接入 Obsidian(Local REST API)#180

Open
Bsyy95 wants to merge 1 commit into
Stack-Cairn:mainfrom
Bsyy95:feat/mcp-hub-obsidian-connector
Open

feat(mcp-hub): 精选连接——一键接入 Obsidian(Local REST API)#180
Bsyy95 wants to merge 1 commit into
Stack-Cairn:mainfrom
Bsyy95:feat/mcp-hub-obsidian-connector

Conversation

@Bsyy95

@Bsyy95 Bsyy95 commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

背景

Obsidian 是使用最广泛的本地知识库工具之一。这个 PR 让 LiveAgent 支持"一键连接 Obsidian":在 MCP Hub 的 Store 视图新增「精选连接」区,内置 Obsidian 连接卡片,填入 Local REST API 插件的 API Key 即可把 Obsidian 笔记库接入对话——读写笔记、全文检索、追加内容、管理 Vault 文件,工具以 mcp_obsidian_* 形式自动暴露给模型。

实现方式

完全沿用现有 MCP 基础设施,不新增网络请求,不触碰 Rust / Go 端:

  • 新增 lib/mcpRegistry/featured.ts(GUI/WebUI 字节级镜像,已登记进 mirror-manifest):本地内置的精选安装草稿。Obsidian 卡片生成 uvx mcp-obsidian 的 stdio server 草稿——OBSIDIAN_API_KEY 为必填 secret(密码输入框)、OBSIDIAN_HOST / OBSIDIAN_PORT 预填 127.0.0.1 / 27124 可改,OBSIDIAN_PROTOCOL=https 与 Local REST API 插件默认监听一致(env 在进程启动时注入,host/port/protocol 预填即生效)。
  • McpRegistrySource 联合类型增加 "featured":仅作卡片来源标识,不进入 searchMcpRegistry 的任何搜索分支。
  • McpRegistryBrowser(双端)在 Store 结果区顶部渲染「精选连接」:仅在搜索框为空时展示,不挤占搜索结果;卡片复用现有 RegistryCardneeds_config → 配置弹窗 → applyMcpRegistryInstallConfig 安装链路,必填校验、id 去重(冲突自动 obsidian-2)、"已添加"状态与 Store 卡片行为完全一致。
  • 安装结果写入 settings.mcp.servers,走既有持久化与网关设置同步路径,启用后动态工具自动进入对话。

为什么走 MCP 预置而不是原生内置工具

  • 项目定位即"通过 MCP 协议桥接任意外部工具";mcp-obsidian(对接 Local REST API 插件)是社区事实标准,读写 / 检索 / 追加 / 批量列举能力完整。
  • API Key 落在现有 MCP server env 配置里,不必新增 settings 密钥域,也不涉及网关同步的密钥脱敏改造,改动面小、风险低。
  • 「精选连接」机制是纯数据驱动的,后续可按同样模式预置更多连接器(Notion、Home Assistant 等),一处添加双端生效。

使用前提(已通过卡片「警告」与配置项说明展示给用户)

  1. 在 Obsidian 中安装并启用 Local REST API 社区插件,复制 API Key;
  2. 本机可运行 uvx(uv)——与 Store 中其它 pypi 类条目的前提一致。

变更清单

  • 新增 crates/agent-gui/src/lib/mcpRegistry/featured.ts 及 WebUI 镜像副本
  • crates/{agent-gui,agent-gateway/web}/src/lib/mcpRegistry/index.ts:source 联合类型扩展 + re-export(保持字节一致)
  • crates/{agent-gui,agent-gateway/web}/src/pages/mcp-hub/McpRegistryBrowser.tsx:精选连接区
  • crates/{agent-gui,agent-gateway/web}/src/i18n/config.ts:中英文词条各 9 条
  • scripts/mirror-manifest.json:登记 lib/mcpRegistry/featured.ts
  • crates/agent-gui/test/tools/mcp-registry.test.mjs:新增 2 个用例(草稿形状校验 / 配置应用后启用与保留预填值)
  • docs/features/skills-and-mcp.md:MCP Registry 来源表补充 featured 行

验证

  • GUI:pnpm build / pnpm lint / pnpm test:frontend(1068 全部通过,含新增 2 例)
  • WebUI:pnpm build / pnpm lint / pnpm test(367 全部通过)
  • node scripts/check-mirror.mjs(88 个镜像文件全部一致)
  • git diff --check 无尾随空白
  • 未改动 Rust / Go 代码,Tauri Rust Check / Gateway 门禁不受影响

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant