语义搜索服务器

一个为Obsidian知识库提供语义搜索功能并暴露最近修改笔记作为资源的MCP服务器。

  • by tcsavage
  • Python
  • 本地部署
  • 9 星标
  • 更新于
在 GitHub 查看 tcsavage/mcp-obsidian-index

使用说明

黑曜石索引MCP服务器

一个MCP服务器,在黑曜石保险库上提供语义搜索,并将最近的笔记作为资源公开。

组件

资源

服务器将保管库中最近修改的笔记作为资源公开给MCP客户端。

  • 注释由 obsidian://<VAULT_NAME>/<NOTE_PATH> URL方案
  • 笔记有 text/markdown 纸张类型

工具

服务器实现了一个工具:

  • search-notes:对索引笔记执行语义搜索

运行服务器

uv run obsidian-index mcp --vault <VAULT_PATH> --database <DATABASE_PATH> --reindex --watch
  • --vault:黑曜石保险库的路径(可以多次指定)
  • --database:本地数据库文件的路径(如果不存在,将创建)
  • --reindex:重新索引保险库中的所有笔记(你现在可能每次都想要这样)
  • --watch:注意保管库中的变化,并相应地更新索引

快速启动

安装

克劳德桌面

在MacOS上: ~/Library/Application\ Support/Claude/claude_desktop_config.json 在Windows上: %APPDATA%/Claude/claude_desktop_config.json

Development/Unpublished Servers Configuration ``` "mcpServers": { "obsidian-index": { "command": "uv", "args": [ "--directory", "", "run", "obsidian-index", "--database", "", "--vault", "", "--reindex", "--watch" ] } } ```
Published Servers Configuration ``` "mcpServers": { "obsidian-index": { "command": "uvx", "args": [ "obsidian-index", "--database", "", "--vault", "", "--reindex", "--watch" ] } } ```

发展

建筑与出版

准备分发包裹:

  1. 同步依赖关系并更新锁文件:
uv sync
  1. 构建包分发:
uv build

这将在 dist/ 目录。

  1. 发布到PyPI:
uv publish

注意:您需要通过环境变量或命令标志设置PyPI凭据:

  • 令牌: --token 或 UV_PUBLISH_TOKEN
  • 或用户名/密码: --username/UV_PUBLISH_USERNAME 和 --password/UV_PUBLISH_PASSWORD

调试

由于MCP服务器在stdio上运行,调试可能具有挑战性。为了达到最佳调试效果 经验,我们强烈建议使用 MCP检查员.

您可以通过以下方式启动MCP检查器 npm 使用此命令:

npx @modelcontextprotocol/inspector uv --directory <PATH_TO_PROJECT> run obsidian-index

启动后,检查器将显示一个URL,您可以在浏览器中访问该URL以开始调试。