Obsidian MCP服务器

一个用于Obsidian笔记库的Go语言实现的MCP服务器,支持AI驱动的工作流和集成。

  • by corani
  • Go
  • 混合部署
  • 更新于
在 GitHub 查看 corani/mcp-obsidian-go

使用说明

mcp黑曜石🚀

A的Go实现 MCP(模型上下文协议) 黑曜石金库服务器。该项目支持先进的人工智能工作流程,并与您的黑曜石笔记集成。

[!注意] 深受神奇事物的启发 mcp黑曜岩 Markus Pfundstein的(基于Python的)项目。

✨ 特性

  • 📂 通过MCP访问和查询您的黑曜石保险库
  • 🧠 人工智能驱动的上下文和自动化
  • 🔒 安全、本地优先的设计
  • ⚡ 快速轻量级的Go后端

🏁 入门指南

先决条件

构建与运行

# 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="<your-obsidian-api-key>"

这些是连接到Obsidian本地REST API插件所必需的。

📄 许可证

该项目根据MIT许可证获得许可。请参阅 许可证 文件以获取详细信息。