使用说明
黑曜岩mcp
一个模型上下文协议(MCP)服务器,使AI助手能够读取、写入和搜索您的黑曜石保险库。
特性
- 完全访问保险库 --读取、写入、编辑、删除、重命名、列出和搜索笔记
- 保险库发现 --打开笔记前浏览文件夹
- 前线支援 --无缝解析和更新YAML frontmatter
- 安全第一 --防止路径遍历、阻止系统目录、安全默认值
- 令牌优化 --紧凑的JSON响应,实现高效的AI交互
- 通用兼容性 --适用于任何兼容MCP的AI(Claude、ChatGPT等)
安装
go install github.com/taigrr/obsidian-mcp/cmd/obsidian-mcp@latest
或者从源代码构建:
git clone https://github.com/taigrr/obsidian-mcp.git
cd obsidian-mcp
go build -o obsidian-mcp ./cmd/obsidian-mcp
用法
obsidian-mcp /path/to/your/vault
MCP配置
添加到MCP客户端配置中:
{
"mcpServers": {
"obsidian": {
"command": "obsidian-mcp",
"args": ["/path/to/your/vault"]
}
}
}
工具
| 工具 | 说明 |
|---|---|
read |
阅读一篇有标题和内容的笔记。支持分页。 |
write |
用内容和可选的封面创建或覆盖笔记。 |
edit |
替换现有注释中的文本和/或更新前体字段。 |
delete |
删除注释(需要确认)。 |
rename |
将注释移动或重命名到新路径。 |
search |
支持正则表达式的全文搜索。返回与上下文匹配的结果。 |
related |
通过标签或维基链接查找相关笔记。 |
tags |
列出整个保险库中的所有唯一标签(正面和内联)。 |
list |
列出vault目录中的文件和子目录。 |
示例
阅读笔记
{
"tool": "read",
"arguments": {
"path": "notes/my-note.md"
}
}
用frontmatter写笔记
{
"tool": "write",
"arguments": {
"path": "notes/new-note.md",
"content": "# My Note\n\nThis is the content.",
"frontmatter": {
"tags": ["idea", "project"],
"status": "draft"
}
}
}
搜索保险库
{
"tool": "search",
"arguments": {
"query": "TODO",
"contextLines": 2
}
}
列出文件夹
{
"tool": "list",
"arguments": {
"path": "projects"
}
}
编辑笔记
{
"tool": "edit",
"arguments": {
"path": "notes/my-note.md",
"oldText": "draft",
"newText": "published",
"frontmatter": {
"status": "published"
}
}
}
安全
- 路径过滤 --阻止访问
.obsidian/,.git/,node_modules/,以及系统文件 - 文件类型限制 --仅允许
.md,.markdown,以及.txt文件 - 路径遍历预防 --所有路径都经过验证,可以保持在vault边界内
- 需要确认 --破坏性操作需要明确确认
发展
go build ./... # Build
go test ./... # Test
go vet ./... # Lint
许可证
0BSD -Tai Groot
