Obsidian MCP 连接问题修复指南

问题描述

在 Kiro IDE 中配置 Obsidian MCP 服务器时,出现以下错误:

Failed to connect to MCP server "obsidian": MCP error -32000: Connection closed

问题原因

  1. npx 缓存问题:npm 的 semver 版本解析出错,导致 npx -y obsidian-mcp-server 无法正常安装/运行
  2. SSL 证书验证:Obsidian Local REST API 使用自签名证书,Node.js 默认会拒绝

解决方案

方法一:直接使用 node 运行已缓存的包(推荐)

  1. 先用 npx 安装一次包(让它缓存到 ~/.npm/_npx/ 目录):
npx -y obsidian-mcp-server
  1. 找到缓存目录:
ls ~/.npm/_npx/
# 找到包含 obsidian-mcp-server 的目录
ls ~/.npm/_npx/*/node_modules/.bin/ | grep obsidian
  1. 配置 MCP 使用直接路径:
{
  "mcpServers": {
    "obsidian": {
      "command": "/Users/lizhuo/.nvm/versions/node/v22.16.0/bin/node",
      "args": ["/Users/lizhuo/.npm/_npx/78d2f5411d6eee3f/node_modules/obsidian-mcp-server/dist/index.js"],
      "env": {
        "OBSIDIAN_API_KEY": "你的API密钥",
        "OBSIDIAN_BASE_URL": "https://127.0.0.1:27124",
        "OBSIDIAN_VERIFY_SSL": "false",
        "NODE_TLS_REJECT_UNAUTHORIZED": "0"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

方法二:清理 npm 缓存后重试

npm cache clean --force
npx -y obsidian-mcp-server

验证 MCP 服务器是否正常

手动测试 stdio 通信:

echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0.0"}}}' | \
OBSIDIAN_API_KEY="你的密钥" \
OBSIDIAN_BASE_URL="https://127.0.0.1:27124" \
OBSIDIAN_VERIFY_SSL="false" \
NODE_TLS_REJECT_UNAUTHORIZED="0" \
node /path/to/obsidian-mcp-server/dist/index.js

正常输出应该包含:

{"result":{"protocolVersion":"2024-11-05","capabilities":{"logging":{},"resources":{"listChanged":true},"tools":{"listChanged":true}},"serverInfo":{"name":"obsidian-mcp-server","version":"2.0.7"}},"jsonrpc":"2.0","id":1}

验证 Obsidian REST API 是否运行

curl -k -H "Authorization: Bearer 你的API密钥" https://127.0.0.1:27124/vault/

关键环境变量

变量 说明
OBSIDIAN_API_KEY Obsidian Local REST API 插件生成的密钥
OBSIDIAN_BASE_URL 默认 https://127.0.0.1:27124
OBSIDIAN_VERIFY_SSL 设为 false 跳过 SSL 验证
NODE_TLS_REJECT_UNAUTHORIZED 设为 0 让 Node.js 接受自签名证书

注意事项

  • npx 缓存路径 ~/.npm/_npx/ 中的哈希目录名可能会变化,更新包后需要重新查找
  • 确保 Obsidian 已打开且 Local REST API 插件已启用
  • API 密钥在 Obsidian 设置 → Local REST API → API Key 中获取

创建时间:2025-12-28

写文章用