mcp黑曜石🚀
A的Go实现 MCP(模型上下文协议) 黑曜石金库服务器。该项目支持先进的人工智能工作流程,并与您的黑曜石笔记集成。
\[!注意\] 深受神奇事物的启发 mcp黑曜岩 Markus Pfundstein的(基于Python的)项目。
✨ 特性
- 📂 通过MCP访问和查询您的黑曜石保险库
- 🧠 人工智能驱动的上下文和自动化
- 🔒 安全、本地优先的设计
- ⚡ 快速轻量级的Go后端
🏁 入门指南
先决条件
- 转到1.24+
- 黑曜石拱顶
- 黑曜石 本地REST API 插件
构建与运行
# Clone the repo
git clone https://github.com/corani/mcp-obsidian-go.git
cd mcp-obsidian-go
# Run
go run ./cmd/mcp-obsidian-go/服务器将启动并监听MCP连接 标准输入输出默认情况下,它还会在以下位置公开一个SSE端点 http://localhost:8989/mcp.
🛠️ 已实施的工具
此服务器实现了以下MCP工具:
| 工具名称 | 描述 |
|---|---|
calendar | 以YYYY-MM-DD HH:MM:SS格式返回当前日期和时间。 |
obsidian_list_files_in_vault | 列出黑曜石保管库根目录中的所有文件和目录 |
obsidian_list_files_in_dir | 列出vault特定目录中的所有文件和目录。 |
obsidian_get_file_contents | 检索黑曜石保管库中文件的内容。 |
obsidian_get_file_by_name | 按文件名检索文件内容(例如,解析 [[filename]]). |
obsidian_simple_search | 简单搜索与指定文本查询匹配的文档。 |
obsidian_jsonlogic_search | 使用JsonLogic查询(高级过滤器/标签)对文档进行复杂搜索 |
obsidian_dataview_search | 使用Dataview DQL查询进行复杂的文档搜索。 |
obsidian_get_periodic_note | 获取指定期间(每日、每周等)的当前定期注释。 |
obsidian_get_periodic_date | 在指定日期获取指定期间的定期票据。 |
🗂️ 项目结构
cmd/mcp-obsidian-go/ # Main entrypoint
cmd/mcp-obsidian-go/system-prompt.txt # System prompt for the AI
internal/config/ # Configuration loading
internal/obsidian/ # Obsidian integration logic
internal/tools/ # MCP tool registration⚙️ 配置
配置是从环境变量或 .env 文件。看 internal/config 了解详情。
.env示例
创建一个 .env 项目根目录中的文件,包含以下变量:
OBSIDIAN_API_HOST="http://localhost:27123/"
OBSIDIAN_API_KEY=""这些是连接到Obsidian本地REST API插件所必需的。
📄 许可证
该项目根据MIT许可证获得许可。请参阅 许可证 文件以获取详细信息。
