Obsidian REST API服务器

通过Local REST API社区插件与Obsidian交互的服务器,提供文件管理、内容搜索和编辑等功能。

  • by arunkumar-ramzy
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 arunkumar-ramzy/mcp-obsidian

使用说明

黑曜石MCP服务器

MCP服务器通过本地REST API社区插件与黑名单互动。

组件

工具

服务器实现了多种与黑曜石交互的工具:

  • list_files_in_vault:列出黑曜石保管库根目录中的所有文件和目录
  • list_files_in_dir:列出特定黑曜石目录中的所有文件和目录
  • get_file_contents:返回vault中单个文件的内容。
  • 搜索:在vault中的所有文件中搜索与指定文本查询匹配的文档
  • patch_content:将内容插入到相对于标题、块引用或frontmatter字段的现有注释中。
  • append_content:将内容附加到vault中的新文件或现有文件。
  • delete_file:从vault中删除文件或目录。

示例提示

最好先指导克劳德使用黑曜石。然后,它将始终调用该工具。

使用提示如下:

  • 获取上次架构调用说明的内容并对其进行总结
  • 搜索所有提到Azure CosmosDb的文件,并快速向我解释提到它的上下文
  • 总结上次会议笔记,并将其放入新笔记“summary meeting.md”中。添加一个介绍,这样我就可以通过电子邮件发送了。

配置

多保险库设置

服务器支持使用具有以下模式的环境变量的多个黑曜石保管库: VAULT_{VAULT_NAME}_{SETTING}

每个保险库都需要:

  • VAULT_{NAME}_API_KEY (必需)-您的Obsidian REST API密钥
  • VAULT_{NAME}_HOST (可选)-默认值:127.0.0.1
  • VAULT_{NAME}_PORT (可选)-默认值:27124
  • VAULT_{NAME}_PROTOCOL (可选)-默认值:https

两个保险库的示例配置:

{
  "mcp-obsidian": {
    "command": "uvx",
    "args": ["mcp-obsidian"],
    "env": {
      "VAULT_WORK_API_KEY": "your_work_api_key",
      "VAULT_WORK_HOST": "127.0.0.1",
      "VAULT_WORK_PORT": "27124",

      "VAULT_PERSONAL_API_KEY": "your_personal_api_key",
      "VAULT_PERSONAL_HOST": "127.0.0.1",
      "VAULT_PERSONAL_PORT": "27125"
    }
  }
}

有时克劳德在检测紫外线/紫外线的位置时会遇到问题。您可以使用 which uvx 在这种情况下,在上述配置中查找并粘贴完整路径。

使用保险库

所有工具都需要 vault_id 参数。使用保管库名称(不区分大小写):

Get the contents of "daily-notes/2024-01-15.md" from my work vault

要查看可用的Vault,请使用 obsidian_list_vaults 工具。

从单个Vault迁移

如果要从以前的版本(<0.3.0)升级,请转换配置:

之前:

"env": {
  "OBSIDIAN_API_KEY": "your_key",
  "OBSIDIAN_HOST": "127.0.0.1",
  "OBSIDIAN_PORT": "27124"
}

之后:

"env": {
  "VAULT_DEFAULT_API_KEY": "your_key",
  "VAULT_DEFAULT_HOST": "127.0.0.1",
  "VAULT_DEFAULT_PORT": "27124"
}

然后指定 vault_id: "default" 在所有工具调用中。

注:

  • 您可以在Obsidian插件配置中找到API密钥
  • 每个Obsidian vault都需要在不同的端口上运行其自己的REST API实例

快速入门

安装

黑眼圈REST API

您需要运行Obsidian REST API社区插件:https://github.com/coddingtonbear/obsidian-local-rest-api

在设置中安装并启用它,然后复制api密钥。

克劳德桌面版

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

在Windows上: %APPDATA%/Claude/claude_desktop_config.json

Development/Unpublished Servers Configuration
{
  "mcpServers": {
    "mcp-obsidian": {
      "command": "uv",
      "args": [
        "--directory",
        "<dir_to>/mcp-obsidian",
        "run",
        "mcp-obsidian"
      ],
      "env": {
        "OBSIDIAN_API_KEY": "<your_api_key_here>",
        "OBSIDIAN_HOST": "<your_obsidian_host>",
        "OBSIDIAN_PORT": "<your_obsidian_port>"
      }
    }
  }
}
Published Servers Configuration
{
  "mcpServers": {
    "mcp-obsidian": {
      "command": "uvx",
      "args": [
        "mcp-obsidian"
      ],
      "env": {
        "OBSIDIAN_API_KEY": "<YOUR_OBSIDIAN_API_KEY>",
        "OBSIDIAN_HOST": "<your_obsidian_host>",
        "OBSIDIAN_PORT": "<your_obsidian_port>"
      }
    }
  }
}

发展

建筑

准备分发包裹:

  1. 同步依赖关系并更新锁文件:
uv sync

调试

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

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

npx @modelcontextprotocol/inspector uv --directory /path/to/mcp-obsidian run mcp-obsidian

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

您还可以使用以下命令查看服务器日志:

tail -n 20 -f ~/Library/Logs/Claude/mcp-server-mcp-obsidian.log