使用说明
黑曜石MCP服务器
🤖 AI驱动的黑曜石集成|🚀 生产就绪|📚 知识管理
👨💻 关于开发者
由Beau Lewis设计和制造
📧 blewisxx@gmail.com
Support My Work:“我喜欢创建帮助人们的开源项目。如果这个项目对你有帮助,你想帮助这项事业,请去做!”
Venmo: @beauintulsa | Ko‑fi: ko-fi.com/beaulewis
Repo: github.com/Beaulewis1977/obsidian-mcp
🌟 什么是黑曜石MCP服务器?
A. 生产就绪模型上下文协议(MCP)服务器 它使AI助手(Claude、ChatGPT等)能够通过复杂的双访问架构与您的黑曜石金库进行交互。
把它想象成一座桥 在你的人工智能助手和黑曜石的个人知识库之间,让人工智能无缝地阅读、写作、搜索和组织你的笔记。
🎯 关键利益
- 🔍 智能搜索:AI可以立即找到并分析您的笔记
- ✍️ 内容创作:生成格式正确的新笔记
- 🔗 知识发现:寻找想法之间的联系
- 📊 保险库分析:了解你的知识库结构
- 🤖 AI工作流集成:使用人工智能来增强你的PKM系统
🏗️ 建筑亮点
- 双重访问模式:黑名单REST API(主)+文件系统(回退)
- 交叉平台的:Windows本机和WSL支持
- 速率限制:可配置的限制,具有优雅的降级
- 文件监视:实时保险库更改检测
- 安全第一:路径验证、API密钥保护、错误处理
✨ 特性
🔧 13种强大的工具可供选择
核心业务 📝
read_note-阅读包含完整元数据、正文和内容的笔记create_note-使用YAML frontmatter创建新笔记edit_note-使用多种模式修改注释(追加、预置、替换、基于标题)delete_note-确认后删除笔记
搜索与发现 🔍
list_notes-使用筛选(文件夹、标记、日期、模式)浏览vaultsearch_notes-通过Obsidian API或文件系统进行全文搜索get_backlinks-查找链接到特定笔记的所有笔记get_vault_stats-保险库分析(计数、标签、链接、大小)
组织 📁
move_note-移动/重命名笔记(带有链接更新警告)update_frontmatter-在不接触内容的情况下修改元数据create_folder-在vault结构中创建新文件夹
高级功能 ⚡
get_daily_note-具有可配置日期格式的每日笔记open_in_obsidian-直接在Obsidian应用程序中打开笔记
🛡️ 企业级功能
安全性和可靠性
- 路径验证:防止目录遍历攻击
- API密钥保护:安全的凭证处理
- 错误恢复:当API失败时,优雅地回退到文件系统
- 速率限制:多层限制(全局、每个操作、每个工具)
- 请求排队:优雅地处理流量峰值
性能和可扩展性
- 文件监视:实时保险库更改检测
- 智能缓存:针对大型保险库进行了优化
- 交叉平台的:Windows原生+WSL支持
- 连接池:高效使用API
开发者体验
- TypeScript:全程全型安全
- 综合测试:78次测试,覆盖率超过80%
- CI/CD管道:自动质量门
- CodeRabbit集成:AI驱动的代码审查
🚀 快速开始
先决条件
- Node.js 18+ (下载)
- 黑曜石 随着 本地REST API 插件已启用
- API密钥 来自黑曜石(设置→ 社区插件→ 本地REST API)
安装和设置
# 1. Clone the repository
git clone https://github.com/Beaulewis1977/obsidian-mcp.git
cd obsidian-mcp
# 2. Install dependencies
npm install
# 3. Create your configuration file (see below)
# Save as %USERPROFILE%/.obsidian-mcp/config.json (Windows)
# or ~/.obsidian-mcp/config.json (macOS/Linux)
# Alternatively, set CONFIG_PATH to point to your config file.
# 4. Build the project
npm run build
# 5. Start the server
node dist/index.js
# Or with a helper that prints guidance if not yet built:
# node start-server.mjs
配置
此服务器是通过JSON文件配置的。环境变量可以补充设置,但不能取代定义Vault的需要。
服务器在哪里查找配置
CONFIG_PATH环境变量(如果设置)%USERPROFILE%/.obsidian-mcp/config.json(Windows)或~/.obsidian-mcp/config.json./config.json(当前工作目录)../config.json(父目录)
最小配置示例
{
"version": "1.0",
"vaults": [
{
"name": "main",
"path": "/path/to/your/vault",
"default": true,
"obsidian_api": {
"enabled": true,
"url": "http://127.0.0.1:27123",
"verify_ssl": false,
"api_key": "${OBSIDIAN_API_KEY}",
"timeout": 5000,
"retry": { "enabled": true, "max_retries": 2, "initial_delay": 1000, "max_delay": 10000 },
"fallback_to_filesystem": true
},
"daily_notes": { "folder": "daily", "date_format": "YYYY-MM-DD", "template": null }
}
]
}
扩展配置(速率限制、文件监视、限制、功能)
{
"version": "1.0",
"vaults": [ { "name": "main", "path": "/path/to/your/vault", "default": true, "obsidian_api": { "enabled": true, "url": "http://127.0.0.1:27123", "verify_ssl": false, "api_key": "${OBSIDIAN_API_KEY}", "timeout": 5000, "retry": { "enabled": true, "max_retries": 2, "initial_delay": 1000, "max_delay": 10000 }, "fallback_to_filesystem": true }, "daily_notes": { "folder": "daily", "date_format": "YYYY-MM-DD", "template": null } } ],
"rate_limiting": {
"enabled": true,
"limits": {
"global": { "requests_per_minute": 1000, "requests_per_hour": 10000 },
"read": { "requests_per_minute": 600, "requests_per_hour": 6000 },
"write": { "requests_per_minute": 100, "requests_per_hour": 1000 },
"tools": {
"edit_note": { "requests_per_minute": 30 },
"delete_note": { "requests_per_minute": 20 },
"move_note": { "requests_per_minute": 25 },
"search_notes": { "requests_per_minute": 60 },
"get_backlinks": { "requests_per_minute": 100 }
}
},
"graceful": { "warn_at_percentage": 80, "queue_requests": false, "max_queue_size": 100, "queue_timeout_ms": 30000 }
},
"file_watching": { "enabled": true, "polling": { "interval": 1000, "binary_interval": 2000 }, "stability_threshold": 2000 },
"limits": { "max_file_size": 10485760, "warning_threshold": 1048576 },
"features": { "backup_on_delete": false, "advisory_locking": false }
}
有用的环境变量
CONFIG_PATH:配置JSON的绝对路径。OBSIDIAN_API_KEY:在以下情况下使用obsidian_api.api_key设置为${OBSIDIAN_API_KEY}.LOG_LEVEL:其中之一trace|debug|info|warn|error|fatal.RATE_LIMITING_*,FILE_WATCHING_ENABLED:可选切换;看见.env.example.
AI助手集成
克劳德桌面版
{
"mcpServers": {
"obsidian": {
"command": "node",
"args": ["/path/to/obsidian-mcp/dist/index.js"]
}
}
}
其他MCP兼容工具
该服务器实现了完整的MCP协议,并可与任何兼容MCP的AI助手配合使用。
📚 文档
🤝 贡献
我们欢迎捐款!请查看我们的 贡献指南 了解详情。
开发流程
- 分叉 存储库
- 创建 一个特征分支
develop - 制造 您通过测试所做的更改
- 测试 彻底(
npm run lint && npm run test) - 提交 拉取请求
develop - CodeRabbit 将自动审核
- 合并 批准后
📄 许可证
MIT许可证-请参阅 许可证 文件以获取详细信息。
🙏 致谢
内置于❤️ 黑曜石和MCP社区。
⭐ If this project helps you, please consider starring the repository!