使用说明
黑曜石MCP服务器
MCP服务器,允许LLM代理访问您的 黑曜石 跳越官方 黑曜石CLI.阅读、创建、搜索笔记、管理任务、标签、属性、插件等,所有这些都可以通过 模型上下文协议.
重要提示: 此服务器需要 黑曜石桌面应用程序正在运行 在你的机器上。CLI是应用程序内部API的桥梁-如果没有正在运行的Obsidian实例,它将无法工作。
先决条件
1.黑曜石1.12+
你需要黑曜石版本 1.12或更高版本 (使用最新的安装程序--1.12.4+)。
下载:https://obsidian.md/download
2.在Obsidian中启用CLI
- 开放式黑曜石
- 首选 设置 → 将军
- 启用 命令行界面
- 按照提示注册CLI
- 重新启动终端 使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
许可证
麻省理工学院