Obsidian知识库管理服务

通过Model Context Protocol为LLM代理提供对Obsidian知识库的访问,支持笔记的读取、创建、搜索以及任务、标签、属性等管理。

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

使用说明

黑曜石MCP服务器

MCP服务器,允许LLM代理访问您的 黑曜石 跳越官方 黑曜石CLI.阅读、创建、搜索笔记、管理任务、标签、属性、插件等,所有这些都可以通过 模型上下文协议.

重要提示: 此服务器需要 黑曜石桌面应用程序正在运行 在你的机器上。CLI是应用程序内部API的桥梁-如果没有正在运行的Obsidian实例,它将无法工作。

先决条件

1.黑曜石1.12+

你需要黑曜石版本 1.12或更高版本 (使用最新的安装程序--1.12.4+)。

下载:https://obsidian.md/download

2.在Obsidian中启用CLI

  1. 开放式黑曜石
  2. 首选 设置 → 将军
  3. 启用 命令行界面
  4. 按照提示注册CLI
  5. 重新启动终端 使PATH更改生效

验证它是否有效:

obsidian --version

Windows用户: 您还需要 Obsidian.com 终端重定向器文件,可用于 催化剂 黑曜石Discord的成员。

3.Python 3.11+和uv

安装 紫外线 如果你没有:

# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

安装

克隆存储库并安装依赖项:

git clone https://github.com/Storks/obsidian-mcp.git
cd obsidian-mcp
uv sync

验证是否已设置所有内容:

uv run obsidian-mcp

服务器通过stdio进行通信,因此您不会看到任何输出——它正在等待MCP消息。按 Ctrl+C 停止。

连接到LLM代理

服务器使用 标准 运输。每个MCP客户端都需要知道如何启动流程:运行 uv 使用项目目录和 obsidian-mcp 命令。

下面是常用工具的配置示例。替换 /path/to/obsidian-mcp 使用克隆存储库的实际路径。


克劳德代码

通过CLI添加:

claude mcp add obsidian-mcp -- uv run --directory /path/to/obsidian-mcp obsidian-mcp

或手动添加到 .mcp.json 在项目根目录中(或 ~/.claude.json 全球访问):

{
  "mcpServers": {
    "obsidian-mcp": {
      "type": "stdio",
      "command": "uv",
      "args": ["run", "--directory", "/path/to/obsidian-mcp", "obsidian-mcp"]
    }
  }
}

限制可用工具

服务器公开了54个工具,您可能不需要所有这些工具。Claude Code允许您通过以下方式允许或拒绝特定工具 .claude/settings.json (项目层面)或 ~/.claude/settings.json (全球)。工具遵循命名模式 mcp__obsidian-mcp__<tool_name>.

示例:只读模式 --拒绝任何可以修改vault的工具:

{
  "permissions": {
    "deny": [
      "mcp__obsidian-mcp__obsidian_create",
      "mcp__obsidian-mcp__obsidian_append",
      "mcp__obsidian-mcp__obsidian_prepend",
      "mcp__obsidian-mcp__obsidian_delete",
      "mcp__obsidian-mcp__obsidian_move",
      "mcp__obsidian-mcp__obsidian_rename",
      "mcp__obsidian-mcp__obsidian_property_set",
      "mcp__obsidian-mcp__obsidian_property_remove",
      "mcp__obsidian-mcp__obsidian_task",
      "mcp__obsidian-mcp__obsidian_bookmark",
      "mcp__obsidian-mcp__obsidian_base_create",
      "mcp__obsidian-mcp__obsidian_plugin_enable",
      "mcp__obsidian-mcp__obsidian_plugin_disable",
      "mcp__obsidian-mcp__obsidian_plugin_install",
      "mcp__obsidian-mcp__obsidian_plugin_reload",
      "mcp__obsidian-mcp__obsidian_workspace_save",
      "mcp__obsidian-mcp__obsidian_workspace_load"
    ]
  }
}

示例:只允许使用特定工具 --当你想要一个最小的集合时很有用:

{
  "permissions": {
    "allow": [
      "mcp__obsidian-mcp__obsidian_read",
      "mcp__obsidian-mcp__obsidian_search",
      "mcp__obsidian-mcp__obsidian_search_context",
      "mcp__obsidian-mcp__obsidian_files",
      "mcp__obsidian-mcp__obsidian_tags",
      "mcp__obsidian-mcp__obsidian_outline"
    ]
  }
}

未列出的任何工具 allow 每次使用前都需要手动确认。


开源代码

添加 opencode.json 在项目根目录中(或 ~/.config/opencode/opencode.json 全球访问):

{
  "mcp": {
    "obsidian-mcp": {
      "type": "local",
      "command": ["uv", "run", "--directory", "/path/to/obsidian-mcp", "obsidian-mcp"],
      "enabled": true
    }
  }
}

食品法典委员会(OpenAI)

通过CLI添加:

codex mcp add obsidian-mcp -- uv run --directory /path/to/obsidian-mcp obsidian-mcp

或手动添加到 ~/.codex/config.toml:

[mcp_servers.obsidian-mcp]
command = "uv"
args = ["run", "--directory", "/path/to/obsidian-mcp", "obsidian-mcp"]

配置

环境变量(全部可选):

变量 默认值 描述
OBSIDIAN_PATH obsidian Obsidian CLI二进制文件的路径
OBSIDIAN_TIMEOUT 30 命令超时(秒)
OBSIDIAN_VAULT -- 默认保管库名称(如果不是每次调用都指定)

环境变量示例 .mcp.json:

{
  "mcpServers": {
    "obsidian-mcp": {
      "type": "stdio",
      "command": "uv",
      "args": ["run", "--directory", "/path/to/obsidian-mcp", "obsidian-mcp"],
      "env": {
        "OBSIDIAN_VAULT": "My Notes",
        "OBSIDIAN_TIMEOUT": "60"
      }
    }
  }
}

可用工具(54)

每个工具都接受一个可选 vault 参数以针对特定vault。

文件(12)

工具 说明
obsidian_create 创建或覆盖文件
obsidian_read 读取文件内容
obsidian_append 将内容附加到文件
obsidian_prepend 前件后的前置内容
obsidian_delete 删除文件
obsidian_move 移动或重命名文件
obsidian_rename 重命名文件
obsidian_open 在黑曜石中打开文件
obsidian_file_info 显示文件信息
obsidian_files 列出vault中的文件
obsidian_folder_info 显示文件夹信息
obsidian_folders 列出vault中的文件夹

搜索(2)

工具 说明
obsidian_search 在vault中搜索文本
obsidian_search_context 使用匹配的行上下文进行搜索

每日笔记(5)

工具 说明
obsidian_daily 打开今天的每日笔记
obsidian_daily_path 获取每日笔记文件路径
obsidian_daily_read 阅读每日笔记内容
obsidian_daily_append 将内容添加到每日笔记中
obsidian_daily_prepend 将内容预先添加到每日笔记中

任务(2)

工具 说明
obsidian_tasks 列出vault中的任务
obsidian_task 显示或更新任务

标签(2)

工具 说明
obsidian_tags 列出vault中的标记
obsidian_tag 获取标签信息

房产(4)

工具 说明
obsidian_properties 列出vault中的属性
obsidian_property_set 在文件上设置属性
obsidian_property_remove 从文件中删除属性
obsidian_property_read 读取属性值

链接(5)

工具 说明
obsidian_backlinks 列出文件的反向链接
obsidian_links 列出文件中的传出链接
obsidian_unresolved 列出未解析的链接
obsidian_orphans 列出没有传入链接的文件
obsidian_deadends 列出没有传出链接的文件

大纲(1)

工具 说明
obsidian_outline 显示文件的标题

模板(1)

工具 说明
obsidian_templates 列出可用模板

书签(2)

工具 说明
obsidian_bookmarks 列出书签
obsidian_bookmark 添加书签

保险库(1)

工具 说明
obsidian_vault 显示保险库信息

字数统计(1)

工具 说明
obsidian_wordcount 统计单词和字符

插件(7)

工具 说明
obsidian_plugins 列出已安装的插件
obsidian_plugins_enabled 列出已启用的插件
obsidian_plugin_info 获取插件信息
obsidian_plugin_enable 启用插件
obsidian_plugin_disable 禁用插件
obsidian_plugin_install 安装社区插件
obsidian_plugin_reload 重新加载插件

工作区(4)

工具 说明
obsidian_workspace 显示工作区树
obsidian_workspaces 列出已保存的工作区
obsidian_workspace_save 保存当前布局
obsidian_workspace_load 加载已保存的工作区

基地(3)

工具 说明
obsidian_bases 列出vault中的.base文件
obsidian_base_create 在基础中创建新项目
obsidian_base_query 查询基数并返回结果

历史(2)

工具 说明
obsidian_diff 比较文件版本
obsidian_history 列出文件版本

发展

# Install dev dependencies
uv sync

# Run tests
uv run pytest tests/ -v

许可证

麻省理工学院