使用说明
黑曜石MCP服务器
一种模型上下文协议(MCP)服务器,通过官方的Obsidian CLI(v1.12+)为AI代理提供对Obsidian保管库的读/写访问权限。
特性
- 19个MCP工具 涵盖vault管理、文件操作、搜索、标记、属性、任务、链接、模板、插件等
- 资源模板 用于将vault文件作为MCP资源浏览
- 类型安全 带有Zod验证的TypeScript实现
- 共享助手 消除跨工具的样板文件
- 验证防护装置 防止因缺少参数而导致的运行时错误
先决条件
安装
全局安装(推荐)
claude mcp add obsidian-mcp --scope user -- bun run /path/to/obsidian-mcp/src/index.ts
对于特定的保险库:
claude mcp add obsidian-mcp --scope user \
--env OBSIDIAN_VAULT=YourVaultName \
-- bun run /path/to/obsidian-mcp/src/index.ts
本地开发
git clone https://github.com/yourusername/obsidian-mcp.git
cd obsidian-mcp
bun install
bun run src/index.ts
配置
设置这些环境变量以自定义行为:
OBSIDIAN_VAULT--默认vault名称(可选,如果未设置,则使用活动vault)OBSIDIAN_CLI_PATH--通往obsidian二进制(默认为"obsidian")
可用工具
保险库管理
obsidian_vault--获取保险库信息或列出所有保险库
文件操作
obsidian_files--列出文件/文件夹或获取特定项目的信息obsidian_read--读取文件内容obsidian_write--写入或替换完整文件内容obsidian_create--使用可选模板创建新文件obsidian_edit--添加或预置内容obsidian_manage_file--移动或删除文件
搜索与发现
obsidian_search--带过滤器的全文搜索obsidian_tags--列出标签或按标签查找注释obsidian_links--分析反向链接、传出链接、孤立链接、未解析链接、死端
元数据和结构
obsidian_properties--前端属性的CRUD操作obsidian_outline--获取笔记的标题结构obsidian_tasks--列出或更新任务
每日笔记和模板
obsidian_daily--阅读或修改今天的每日笔记obsidian_templates--列出或阅读模板
保险库功能
obsidian_bookmarks--列出书签项目obsidian_plugins--管理社区插件obsidian_workspace--管理工作空间布局obsidian_command--运行任意黑曜石命令
用法示例
读便条
// Using obsidian_read tool
{
"path": "Projects/AI Research.md"
}
将内容写入文件
// Using obsidian_write tool
{
"path": "Daily/2026-02-17.md",
"content": "# Meeting Notes\n\n- Discussed MCP server architecture"
}
搜索保险库
// Using obsidian_search tool
{
"query": "machine learning",
"path": "Projects",
"limit": 10
}
添加到每日笔记中
// Using obsidian_daily tool
{
"action": "append",
"content": "\n## New Section\n\nContent here"
}
建筑
obsidian-mcp/
├── src/
│ ├── index.ts # Entry point, server setup
│ ├── cli.ts # ObsidianCLI wrapper class
│ ├── config.ts # Environment-based configuration
│ ├── helpers.ts # Shared response/validation helpers
│ ├── tools/
│ │ ├── index.ts # Tool registration barrel
│ │ └── *.ts # 19 individual tool modules
│ └── resources/
│ └── vault.ts # Resource template for vault files
├── package.json
├── tsconfig.json
└── CLAUDE.md # Project-specific AI instructions
发展
命令
# Run server
bun run src/index.ts
# Build
bun build src/index.ts --outdir dist --target bun
# Type check
bunx tsc --noEmit
# Test with MCP Inspector
bunx @modelcontextprotocol/inspector bun run src/index.ts
添加新工具
- 创建
src/tools/your_tool.ts:
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { z } from "zod";
import type { ObsidianCLI } from "../cli.js";
import { cliResponse } from "../helpers.js";
export function register(server: McpServer, cli: ObsidianCLI): void {
server.tool(
"obsidian_your_tool",
"Tool description for AI agents",
{
param: z.string().describe("Parameter description"),
},
async ({ param }) => {
const result = await cli.exec("command", { param });
return cliResponse(result);
},
);
}
- 注册于
src/tools/index.ts:
import { register as yourTool } from "./your_tool.js";
// Add to registrations array
运作原理
服务器通过官方CLI与Obsidian通信,CLI使用IPC与正在运行的桌面应用程序进行交互。每个工具都封装了一个特定的CLI命令,根据MCP规范处理参数验证、错误响应和输出格式。
关键部件:
- 黑曜石CLI --产卵
obsidian具有正确参数格式的进程 - 共享助手 —
cliResponse(),errorResponse(),fileOrPathSchema等等。 - 验证防护装置 --在CLI调用之前显式检查条件参数
- 资源模板 --将vault文件作为可浏览的MCP资源公开
局限性
- 需要运行Obsidian桌面应用程序(CLI使用IPC)
- 没有直接的文件系统访问权限(所有操作都通过Obsidian CLI进行)
- 某些操作可能比直接操作文件慢
贡献
欢迎投稿!拜托:
- 分叉存储库
- 创建要素分支(
jj new或git checkout -b feature/amazing-feature) - 通过测试进行更改
- 提交拉取请求
许可证
麻省理工学院©[你的名字]
资源
更新日志
0.1.0 (2026-02-17)
- 初始版本
- 涵盖黑曜石核心业务的19个MCP工具
- 用于浏览vault文件的资源模板
- 共享助手和验证保护
