一个插件,使你的保险库可以通过模型上下文协议(MCP)通过HTTP访问。这允许AI助手和其他MCP客户端以编程方式与你的保险库进行交互。
版本: 1.0.0 | 已测试版本: Obsidian v1.9.14 | 许可证: MIT
⚠️ 安全提示
该插件运行一个HTTP服务器,向MCP客户端(如AI助手)公开你的保险库内容。虽然服务器仅绑定到本地主机并强制身份验证,但请注意,任何拥有你的API密钥的客户端都可以读取、创建、修改和删除保险库中的文件。仅将你的API密钥分享给可信赖的应用程序。
read_note - 读取笔记内容,可选解析前置元数据create_note - 创建新的笔记,并处理冲突策略update_note - 更新现有笔记(替换全部内容)delete_note - 删除笔记(软删除至.trash或永久删除)update_frontmatter - 更新前置元数据字段而不修改笔记内容update_sections - 根据行范围更新笔记的特定部分rename_file - 重命名或移动文件,并自动更新维基链接read_excalidraw - 读取Excalidraw绘图文件并提取元数据(目前仅限于未压缩格式;计划支持压缩格式)search - 使用高级过滤器、正则表达式支持和片段提取搜索保险库search_waypoints - 在保险库中查找所有Waypoint插件标记list - 列出文件和/或目录,带有高级过滤器和分页stat - 获取文件或文件夹的详细元数据exists - 检查特定路径下的文件或文件夹是否存在get_vault_info - 获取保险库元数据(名称、路径、文件数量、总大小)get_folder_waypoint - 从文件夹笔记中获取Waypoint块is_folder_note - 检查笔记是否是文件夹笔记validate_wikilinks - 验证笔记中的所有维基链接,并报告未解决的链接resolve_wikilink - 解析源笔记中的单个维基链接到其目标路径backlinks - 获取指向笔记的所有反向链接,可选未链接提及注意: 此插件正在等待社区插件目录的审批。一旦获得批准,它将可供一键安装。
当可用时:
前提条件: 系统上必须安装Node.js和npm。
将此仓库克隆到你的保险库插件文件夹中:
cd /path/to/vault/.obsidian/plugins
git clone https://github.com/Xe138/obsidian-mcp-server.git obsidian-mcp-server
cd obsidian-mcp-server
安装依赖项:
npm install
构建插件:
npm run build
在Obsidian设置 → 社区插件中启用插件
打开Obsidian设置 → MCP Server
配置以下选项:
点击“启动服务器”或使用侧边栏图标切换服务器
当你首次安装插件时,会自动生成一个API密钥,并使用系统安全凭证存储(macOS钥匙串、Windows凭据管理器、Linux Secret Service)进行加密。
服务器在以下地址提供MCP端点:
http://127.0.0.1:3000/mcp
示例客户端配置(例如,用于Claude Desktop):
{
"mcpServers": {
"obsidian": {
"url": "http://127.0.0.1:3000/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
要获取你的API密钥:
YOUR_API_KEY替换为你实际的密钥所有请求都必须包含Bearer令牌:
curl -X POST http://127.0.0.1:3000/mcp \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2024-11-05",
"capabilities": {},
"clientInfo": {
"name": "example-client",
"version": "1.0.0"
}
}
}
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/list"
}
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "read_note",
"arguments": {
"path": "folder/note.md"
}
}
}
{
"jsonrpc": "2.0",
"id": 4,
"method": "tools/call",
"params": {
"name": "create_note",
"arguments": {
"path": "new-note.md",
"content": "# 新笔记\n\n这是内容。"
}
}
}
{
"jsonrpc": "2.0",
"id": 5,
"method": "tools/call",
"params": {
"name": "search",
"arguments": {
"query": "搜索词"
}
}
}
端口已被占用:
权限被拒绝:
无效的API密钥:
401未经授权:
Authorization头是否正确格式化:Bearer YOUR_API_KEY无法连接到服务器:
http://127.0.0.1:3000/mcp(某些系统上不是localhost)CORS错误:
localhost或127.0.0.1插件无法加载:
更改未生效:
npm run build成功完成插件实现了多层安全措施:
127.0.0.1(无外部访问)localhost或127.0.0.1(任何端口)npm install
npm run dev # 开发模式
npm run build # 生产构建
main.ts(或创建新的.ts文件)。这些更改应自动编译成main.js。npm update。欢迎贡献!请参阅贡献指南,了解详细信息:
git checkout -b feature/amazing-feature)npm test和npm run buildgit push origin feature/amazing-feature)发现bug或有功能请求?请在GitHub上打开一个问题:
GitHub问题: https://github.com/Xe138/obsidian-mcp-server/issues
报告bug时,请包括:
如果你觉得这个插件有用,请考虑支持其开发:
GitHub赞助: https://github.com/sponsors/Xe138
买我一杯咖啡: https://buymeacoffee.com/xe138
本项目采用MIT许可证。请参阅仓库以获取完整的许可详情。