mcpField
S
smart-connections

smart-connections

本地服务
github.com/gogogadgetbytes搜索与检索338 周前更新

关于 smart-connections

smart-connections 是只读 MCP 服务,可用 Smart Connections 嵌入向量搜索 Obsidian 知识库,供 Claude Code 等 MCP 客户端使用。文本查询在本地生成嵌入向量,并通过严格路径校验限制文件访问。

主要功能

  1. 01文本与语义笔记搜索
  2. 02本地生成查询嵌入向量
  3. 03读取笔记并列出索引笔记
  4. 04只读且经过路径校验
  5. 05离线运行

适用场景

  1. 01通过文本问题查找知识库笔记
  2. 02查找与指定笔记相似的内容
  3. 03读取笔记或检查已索引笔记

MCP 相关

向 MCP 客户端提供文本、嵌入向量和相似笔记搜索工具,以及笔记读取、索引笔记列表和模型信息查询。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"gogogadgetbytes-smart-connections": {
"command": "npx",
"args": [
"-y",
"@gogogadgetbytes/smart-connections-mcp"
],
"env": {
"VAULT_PATH": "<VAULT_PATH>"
}
}
}
}
启动命令npx -y @gogogadgetbytes/smart-connections-mcp
需要配置的环境变量
VAULT_PATHAbsolute path to your Obsidian vault (e.g., /Users/you/Documents/MyVault)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@gogogadgetbytes/smart-connections-mcp0.2.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Smart Connections MCP Server

License: MIT Node.js Version

一个以安全为首要考量的 Smart Connections MCP 服务。只读。路径经过验证。可审计。

将 Smart Connections 的嵌入向量提供给 Claude Code 和其他 MCP 客户端,用于对你的 Obsidian 知识库进行语义搜索。

为什么要开发这个项目

我们需要通过 Claude Code 对 Obsidian 知识库进行语义搜索。现有方案存在一些问题:

  • 没有路径验证 - 用户输入被直接传递给文件操作
  • 拥有写入权限 - 有些方案会提供我们不需要的修改工具
  • 依赖项庞大 - 对于本质上只是向量运算的功能,却依赖 PyTorch/transformers

本实现具有以下特点:

  • 依赖项精简 - MCP SDK + Transformers.js(用于文本搜索)
  • 安全机制默认拒绝访问 - 使用 realpath 验证路径并检测符号链接
  • 可审计 - 精简的 TypeScript 代码库,便于实际阅读

功能

  • 文本搜索 - 使用纯文本查询,而不仅限于笔记路径
  • 语义搜索,使用 Smart Connections 嵌入向量
  • 本地推理 - 使用 Transformers.js(与 Smart Connections 使用相同的模型)
  • 只读 - 不执行写入操作或 shell 命令
  • 安全 - 严格验证路径,并限制响应大小
  • 离线可用 - 无需运行 Obsidian

安全模型

属性保证
路径限制所有文件访问都针对知识库根目录进行验证
防止路径遍历阻止 ../ 和符号链接攻击
只读不提供写入操作
限制响应大小限制结果数量(50 条)和内容长度(10KB)
默认拒绝访问出错时拒绝访问,绝不绕过验证
审计日志记录带有上下文信息的安全事件

安装

前置条件
  • Node.js 18+
  • 已安装 Smart Connections 插件的 Obsidian
  • 已生成嵌入向量(在 Obsidian 中打开知识库,并等待 Smart Connections 完成索引)
设置
git clone https://github.com/gogogadgetbytes/smart-connections-mcp
cd smart-connections-mcp
npm install
npm run build
配置 Claude Code

将以下内容添加到 Claude Code 配置中:

claude mcp add smart-connections \
  -e VAULT_PATH="/path/to/your/obsidian/vault" \
  -- node /path/to/smart-connections-mcp/dist/index.js

或者手动添加到 ~/.claude.json:

{
  "mcpServers": {
    "smart-connections": {
      "command": "node",
      "args": ["/path/to/smart-connections-mcp/dist/index.js"],
      "env": {
        "VAULT_PATH": "/path/to/your/obsidian/vault"
      }
    }
  }
}

重启 Claude Code 以加载该服务。

用法

配置完成后,Claude Code 可以使用以下工具:

按文本搜索
"Search my vault for notes about backup strategies"
→ Uses search_by_text tool
搜索相似笔记
"Find notes similar to Topics/Claude_Code.md"
→ Uses search_similar tool
获取笔记内容
"Show me the content of Topics/Obsidian.md"
→ Uses get_note tool
列出已索引笔记
"What notes are indexed in my vault?"
→ Uses list_indexed tool

工具

工具描述
search_by_text使用自由文本进行搜索(在本地计算嵌入向量)
search_similar查找与指定笔记在语义上相似的笔记
search_by_embedding使用原始嵌入向量进行搜索
get_note获取指定笔记的内容(会验证路径)
get_model_info获取嵌入模型配置
list_indexed列出所有已索引的笔记

配置

变量必填描述
VAULT_PATH是Obsidian 知识库的绝对路径

局限性

  • 单个知识库 - 每个 MCP 服务实例只能配置一个知识库
  • 索引来自 Smart Connections - 笔记嵌入向量由插件生成;文本查询则在本地生成嵌入向量
  • 无写入权限 - 这是有意设计的;请使用 Obsidian 编辑
  • 首次运行时下载模型 - 约 50MB 的模型会缓存在 ~/.cache/huggingface/

开发

# Build
npm run build

# Test with MCP Inspector
npx @modelcontextprotocol/inspector node dist/index.js

参与贡献

请参阅 CONTRIBUTING.md。欢迎提交以安全为重点的 PR。

安全

如需报告安全漏洞,请发送邮件至 [email protected]。请勿公开提交安全问题。

许可证

MIT - 参见 LICENSE

致谢

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。