语义搜索服务

一个安全优先的MCP服务器,用于为Obsidian库提供语义搜索功能。

  • by gogogadgetbytes
  • TypeScript
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 gogogadgetbytes/smart-connections-mcp

使用说明

智能连接MCP服务器

用于智能连接的安全第一MCP服务器。只读。路径已验证。可审计。

暴露 智能连接 嵌入到Claude Code和其他 主控程序 客户端用于对黑曜石金库进行语义搜索。

为什么存在

我们需要从克劳德密码中对黑曜石金库进行语义搜索。现有选项存在问题:

  • 无路径验证 -用户输入直接传递给文件操作
  • 写入权限 -一些暴露了我们不需要的突变工具
  • 严重依赖 -PyTorch/变压器,本质上是向量数学

本次实施:

  • 最小依赖性 -MCP SDK+Transformers.js(用于文本搜索)
  • 关闭安全失败 -使用realpath、符号链接检测进行路径验证
  • 可审计的 -你可以实际阅读的小型TypeScript代码库

特性

  • 文本搜索 -使用纯文本查询,而不仅仅是注释路径
  • 语义搜索 使用智能连接嵌入
  • 局部推断 -使用Transformers.js(与智能连接模型相同)
  • 只读 -无写操作,无shell执行
  • 安全 -严格的路径验证,有界的响应
  • 离线 -无黑曜石跑步

安全模型

财产 担保
路径限制 根据vault根验证所有文件访问权限
无遍历 ../ 符号链接攻击被阻止
只读 不公开写操作
有限响应 上限结果(50),内容长度(10KB)
失败关闭 错误拒绝访问,从不绕过
审核日志记录 使用上下文记录安全事件

安装

先决条件

  • Node.js 18+
  • 黑曜石与 智能连接 插件已安装
  • 已构建嵌入(黑曜石中的开放式保险库,让Smart Connections索引)

设置

git clone https://github.com/gogogadgetbytes/smart-connections-mcp
cd smart-connections-mcp
npm install
npm run build

配置Claude代码

添加到您的Claude代码配置中:

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 是 黑曜石拱顶的绝对路径

局限性

  • 单保险库 -为每个MCP服务器实例配置一个保管库
  • 智能连接索引 -注释嵌入来自插件;文本查询嵌入在本地
  • 无写访问权限 -通过设计;使用黑曜石进行编辑
  • 首次运行下载模式 -缓存了约50MB的模型 ~/.cache/huggingface/

发展

# Build
npm run build

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

贡献

看 贡献.md.欢迎注重安全的公关。

安全

如需报告安全漏洞,请发送电子邮件至gogogadgetcode@proton.me.出于安全考虑,不要公开问题。

许可证

麻省理工学院-见 许可证

学分