mcp-obsidian
该项目提供了一个通过本地 REST API 社区插件与 Obsidian 交互的 MCP 服务器。它包括列出文件、获取文件内容、搜索、修补、追加和删除 Obsidian 仓库中内容的工具。
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"mcp-obsidian": {
"args": [
"mcp-obsidian"
],
"command": "uvx",
"env": {
"OBSIDIAN_API_KEY": "\u003cYOUR_OBSIDIAN_API_KEY\u003e",
"OBSIDIAN_HOST": "\u003cyour_obsidian_host\u003e",
"OBSIDIAN_PORT": "\u003cyour_obsidian_port\u003e"
}
}
}
}
该服务需要配置环境变量:OBSIDIAN_API_KEY、OBSIDIAN_HOST、OBSIDIAN_PORT
服务介绍
MCP 服务器用于 Obsidian
MCP 服务器通过 Local REST API 社区插件与 Obsidian 进行交互。
组件
工具
该服务器实现了多个工具以与 Obsidian 交互:
- list_files_in_vault: 列出您的 Obsidian 保险库根目录中的所有文件和目录
- list_files_in_dir: 列出特定 Obsidian 目录中的所有文件和目录
- get_file_contents: 返回保险库中单个文件的内容
- search: 在保险库的所有文件中搜索与指定文本查询匹配的文档
- patch_content: 将内容插入到现有笔记中,相对于标题、块引用或 frontmatter 字段
- append_content: 将内容追加到保险库中的新文件或现有文件
- delete_file: 从您的保险库中删除文件或目录
示例提示
首先指示 Claude 使用 Obsidian 是一个好主意。这样它将始终调用工具。
使用如下提示:
- 获取最后一次架构通话笔记的内容并进行总结
- 搜索所有提到 Azure CosmosDb 的文件,并简要解释其上下文
- 总结最后一次会议记录,并将其放入新的笔记 'summary meeting.md' 中。添加一个介绍,以便我可以通过电子邮件发送。
配置
Obsidian REST API 密钥
有两种方法可以配置带有 Obsidian REST API 密钥的环境。
- 添加到服务器配置(推荐)
plaintext
{
"mcp-obsidian": {
"command": "uvx",
"args": [
"mcp-obsidian"
],
"env": {
"OBSIDIAN_API_KEY": "<your_api_key_here>",
"OBSIDIAN_HOST": "<your_obsidian_host>",
"OBSIDIAN_PORT": "<your_obsidian_port>"
}
}
}
有时 Claude 可能无法检测到 uv / uvx 的位置。在这种情况下,您可以使用 which uvx 找到并粘贴完整路径到上述配置中。
- 在工作目录中创建一个
.env文件,并包含以下必需变量:
plaintext
OBSIDIAN_API_KEY=your_api_key_here
OBSIDIAN_HOST=your_obsidian_host
OBSIDIAN_PORT=your_obsidian_port
注意:
- 您可以在 Obsidian 插件配置中找到 API 密钥
- 如果未指定,默认端口为 27124
- 如果未指定,默认主机为 127.0.0.1
快速开始
安装
Obsidian REST API
您需要运行 Obsidian REST API 社区插件:https://github.com/coddingtonbear/obsidian-local-rest-api
在设置中安装并启用它,并复制 API 密钥。
Claude Desktop
在 MacOS 上:~/Library/Application\ Support/Claude/claude_desktop_config.json
在 Windows 上:%APPDATA%/Claude/claude_desktop_config.json
plaintext
{
"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>"
}
}
}
}
plaintext
{
"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>"
}
}
}
}
开发
构建
准备分发包:
- 同步依赖项并更新锁文件:
plaintext
uv sync
调试
由于 MCP 服务器通过 stdio 运行,调试可能会很困难。为了获得最佳调试体验,我们强烈建议使用 MCP Inspector。
您可以使用以下命令通过 npm 启动 MCP Inspector:
plaintext
npx @modelcontextprotocol/inspector uv --directory /path/to/mcp-obsidian run mcp-obsidian
启动后,Inspector 将显示一个 URL,您可以在浏览器中访问该 URL 以开始调试。
您还可以使用以下命令查看服务器日志:
plaintext
tail -n 20 -f ~/Library/Logs/Claude/mcp-server-mcp-obsidian.log