探索
Obsidian MCP Server Nyt

Obsidian MCP Server Nyt

Obsidian插件,提供本地MCP服务器功能,支持外部应用通过标准化接口与Obsidian库交互,包括文件操作、语义搜索等。
2.5分
4
2025-04-23 13:40:31
内容详情
替代品
安装
复制以下命令到你的Client进行配置
注意:您的密钥属于敏感信息,请勿与任何人分享。

Obsidian MCP 服务器插件

English | Original English README

此 Obsidian 插件运行一个本地 MCP(模型上下文协议)服务器,允许外部应用程序(如 AI 助手、脚本或其他工具)通过标准化接口与您的 Obsidian 知识库交互。

这是一个在开发中的插件,目前功能可用但可能存在一些错误或未完成的功能。如果遇到任何问题,请随时报告。由于我对 TypeScript 的掌握不够熟练,可能会存在安全性和可靠性问题。您可以通过 GitHub 提交问题或拉取请求,我会尽快回复。

功能

  • 本地 MCP 服务器: 在配置的端口上运行一个基于流式传输协议(SSE)的 MCP 服务器。
  • 知识库索引以支持语义搜索:
    • 将 Markdown 笔记内容索引到 Orama 向量数据库中。
    • 使用与 OpenAI 相兼容的嵌入模型(例如,OpenAI、通过兼容端点连接的本地 Ollama 模型)生成嵌入。
    • 支持配置文本分块参数(大小、重叠、分隔符)。
    • 可以通过类似 .gitignore 的语法排除特定文件或模式。
  • Obsidian 集成:
    • 命令: 在 Obsidian 命令调色板中提供以下命令:
      • 启动/停止 MCP 服务器。
      • 重新索引整个知识库(可能需要时间且根据嵌入提供商的不同可能会产生费用)。
      • 手动保存向量数据库索引。
    • 设置面板: 提供一个专用的设置选项卡,用于配置:
      • 服务器端口和自动启动行为。
      • 嵌入模型详细信息(API 端点、模型名称、API 密钥)。
      • 索引时排除文件或模式的文件排除规则。
      • 分块参数。
      • 验证嵌入提供商连接状态。
    • 功能图标: 在 Obsidian 标题栏中添加一个状态图标,指示 MCP 服务器是正在运行还是已停止。
    • 多语言支持: 根据 Obsidian 的语言设置,支持英文和中文界面。

MCP 工具

  • MCP 工具:此插件暴露的工具可以通过配置的端口在外部应用程序中使用。默认情况下,这些工具通过 HTTP 端点访问。

配置

  1. 编辑 config.json 文件:

    • 指定 MCP 服务器使用的端口。
    {
      "port": 3000,
      ...
    }
    
  2. 在 Obsidian 中启用插件后,访问 http://localhost:<指定端口>/api 查看可用工具。

已知问题及限制

  1. 文件大小限制: 如果您的知识库包含大量笔记,当 orama.json 文件超过 512MB 时,索引可能会失败。目前没有解决方法,只能通过减少笔记/分块数量来缓解。

  2. 数字存储: OramaDB 将浮点数存储为原始字符串,这会导致数据库大小迅速增加。


开发

该项目使用 TypeScript。请确保已安装 Node.js 和 npm。

  1. 克隆仓库。
  2. 运行 npm install 安装依赖项。
  3. 运行 npm run dev 编译插件并监视文件变化。
  4. 将生成的 main.js, manifest.json, 和 styles.css 文件复制到您的 Obsidian 知识库的 .obsidian/plugins/mcp-server/ 目录中。
  5. 重新加载 Obsidian 并启用插件。

使用说明

  1. 启动 MCP 服务器:

  2. 使用 MCP 工具:

    • 配置外部应用程序以与暴露的 HTTP 端点交互。
  3. 停止 MCP 服务器:

    • 使用“停止 MCP 服务器”命令关闭服务,以避免资源浪费。

注意事项

  • 嵌入式模型的性能和行为可能因使用的具体模型而异。
  • OramaDB 的存储机制可能导致数据库文件快速增长,请定期监控文件大小并清理不必要的数据。

通过这个插件,您可以方便地将 Obsidian 知识库与外部工具和服务集成,扩展其功能和应用场景。