Obsidian工具服务器

Rust MCP服务器,用于暴露Obsidian CLI工具和资源,支持stdio、本地HTTP和ngrok隧道传输。

  • by Friedemann12
  • Rust
  • 本地部署
  • 更新于
在 GitHub 查看 Friedemann12/rusty-obsidian-mcp

使用说明

生锈的黑曜石mcp

用于黑曜石保险库的Rust MCP服务器。封装Obsidian CLI(v1.12+),并通过模型上下文协议公开37个工具、3个资源和3个提示。支持stdio、本地HTTP和ngrok隧道传输。

要求Obsidian在启用CLI的情况下运行(设置>常规>命令行界面)。

快速开始

cp .env.example .env
# Edit .env: set OBSIDIAN_VAULT=YourVaultName

# stdio (for Cursor, Claude Desktop)
cargo run

# local HTTP server
cargo run --features http -- --http

# ngrok tunnel (internet-accessible)
cargo run --features tunnel -- --tunnel

CLI参数

参数 描述
--http 启动本地HTTP服务器而不是stdio
--tunnel [domain] 启动ngrok隧道。可选:传递您的稳定域名
-v, --vault <name> 保险库名称(覆盖OBSIDIAN_Vault环境)
-p, --port <port> HTTP/隧道端口(默认值:8000)
--host <host> HTTP绑定地址(默认值:127.0.0.1)
--api-key <key> HTTP/隧道身份验证的API密钥(重写MCP_API_key env)
--no-auth 禁用API密钥身份验证
--skip-health-check 跳过启动CLI运行状况检查

环境变量

变量 必填 描述
OBSIDIAN_VAULT 否 保险库名称。如果是单个保险库,则自动检测。
OBSIDIAN_BIN 否 黑曜石二进制文件的路径(默认值: obsidian)
OBSIDIAN_TIMEOUT 否 CLI超时(秒)(默认值:30)
ENABLE_DANGEROUS_TOOLS 否 启用eval_js和execute_command
MCP_API_KEY 没有HTTP/隧道的 neneneba API密钥。如果未设置,则自动生成。
NGROK_AUTHTOKEN 用于隧道 ngrok身份验证令牌
NGROK_DOMAIN 否 稳定的ngrok域名(默认:随机URL)

构建功能

  • cargo build --仅限stdio,精简二进制
  • cargo build --features http --添加本地HTTP服务器
  • cargo build --features tunnel --添加ngrok隧道(包括http)

MCP客户端配置

光标/克劳德桌面(stdio):

{
  "mcpServers": {
    "obsidian": {
      "command": "path/to/rusty-obsidian-mcp",
      "env": { "OBSIDIAN_VAULT": "MyVault" }
    }
  }
}

通过ngrok远程:

MCP endpoint: https://your-name.ngrok-free.app/mcp
Authorization: Bearer <api_key>