Obsidian通用MCP服务器

一个为Obsidian设计的通用模型上下文协议(MCP)服务器,支持与Claude、ChatGPT、Gemini、Grok和Perplexity等主要AI平台集成,提供笔记的读取、写入、搜索和管理功能。

  • by breannasalah
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 breannasalah/mcp-obsidian-universal

使用说明

黑曜石通用MCP服务器

A. 通用的 用于黑曜石的模型上下文协议(MCP)服务器,与 所有主要的人工智能平台:克劳德、ChatGPT、双子座、Grok和困惑。

🌟 特性

  • ✅ 通用兼容性:与Claude、ChatGPT、Gemini、Grok和困惑合作
  • 🔒 OAuth就绪:安全身份验证基础设施(可扩展)
  • 📚 完全保险库访问权限:阅读、书写、搜索和管理您的黑曜石笔记
  • 🏷️ 智能标签处理:从封面和内容中自动提取
  • 🔍 强大的搜索功能:基于正则表达式的所有笔记搜索
  • 🌐 HTTP传输:远程服务器以实现最大兼容性
  • 🚀 零黑曜石插件:直接使用vault文件

🛠️ 安装

先决条件

  • Node.js 18.0.0或更高版本
  • 黑曜石拱顶

设置

  1. 克隆或下载此存储库

    cd ~/Projects/mcp-obsidian-universal
    
  2. 安装依赖项

    npm install
    
  3. 配置环境

    cp .env.example .env
    

    编辑 .env 并设置vault路径:

    OBSIDIAN_VAULT_PATH=/Users/breannasalah/Obsidian_Vault_3
    PORT=3000
    HOST=localhost
    
  4. 构建服务器

    npm run build
    
  5. 启动服务器

    npm start
    

您应该看到:

🚀 Obsidian Universal MCP Server running on http://localhost:3000
📚 Vault path: /Users/breannasalah/Obsidian_Vault_3
🔧 MCP SSE endpoint: http://localhost:3000/sse
💚 Health check: http://localhost:3000/health

🤖 平台配置

1.克劳德桌面

设置:

  1. 打开克劳德桌面配置:

    # macOS
    nano ~/Library/Application\ Support/Claude/claude_desktop_config.json
    
    # Windows
    notepad %APPDATA%\Claude\claude_desktop_config.json
    
  2. 添加服务器配置:

    {
      "mcpServers": {
        "obsidian": {
          "url": "http://localhost:3000/sse"
        }
      }
    }
    
  3. 重新启动克劳德桌面

用途:

"List all my notes in the Projects folder"
"Search for notes mentioning 'AI' and create a summary"
"Create a new note in Ideas/2025.md with my brainstorm"

2.ChatGPT(开发者模式)

要求: ChatGPT Pro、商业、企业或教育计划

设置:

  1. 打开ChatGPT设置→ 连接器→ 高级→ 开发人员模式

  2. 点击“添加连接器”

  3. 配置:

    • 名字:黑曜石环球
    • 服务器URL: http://localhost:3000/sse
    • 类型:远程MCP服务器
  4. 保存并启用连接器

用途:

"Show me all notes tagged with #projects"
"Read the content of my daily note"
"Search my vault for references to quantum computing"

3.Gemini CLI

设置:

  1. 安装Gemini CLI:

    npm install -g @google/gemini-cli@latest
    
  2. 在中配置MCP服务器 ~/.gemini/settings.json:

    {
      "mcpServers": {
        "obsidian": {
          "url": "http://localhost:3000/sse",
          "description": "Obsidian vault access"
        }
      }
    }
    
  3. 启动Gemini CLI:

    gemini
    

用途:

@obsidian list my notes in the Research folder
@obsidian search for "machine learning" in my vault
@obsidian create a note with today's learnings

4.Grok(xAI SDK)

设置(Python):

import os
from xai_sdk import Client
from xai_sdk.tools import mcp

client = Client(api_key=os.getenv("XAI_API_KEY"))

chat = client.chat.create(
    model="grok-4-1-fast",
    tools=[
        mcp(
            server_url="http://localhost:3000/sse",
            server_label="obsidian",
            server_description="Access to Obsidian vault"
        ),
    ],
)

chat.append({"role": "user", "content": "List all my notes"})
for response, _ in chat.stream():
    print(response.choices[0].message.content)

用途:

"Use the obsidian tool to find all notes about AI projects"
"Read my daily note and summarize it"
"Create a new note with research findings"

5.困惑(Mac应用程序)

要求: 付费困惑订阅

设置:

  1. 打开困惑Mac应用程序
  2. 转到“设置”→ 连接器
  3. 点击“添加连接器”
  4. 配置为远程MCP:
    • 服务器URL: http://localhost:3000/sse
    • 名字:黑曜石
  5. 在“源”下拉菜单中启用连接器

用途:

"Show me my project notes from last week"
"Search my vault for blockchain articles"
"Create a new note about today's meeting"

📖 可用工具

list_notes

列出vault中的所有注释,可选择按文件夹过滤。

参数:

  • folder (可选):相对于vault根目录的文件夹路径
  • recursive (可选):是否包含子目录(默认值:true)

例子:

{
  "folder": "Projects",
  "recursive": true
}

read_note

阅读带有封面和标签的特定注释。

参数:

  • path (必填):注释路径(例如“folder/note.md”)

例子:

{
  "path": "Daily/2025-12-01.md"
}

write_note

创建或更新笔记。

参数:

  • path (必填):保存注释的位置
  • content (必填):Markdown内容
  • frontmatter (可选):YAML frontmatter作为JSON对象

例子:

{
  "path": "Ideas/new-project.md",
  "content": "# New Project\n\nDescription here",
  "frontmatter": {
    "tags": ["projects", "ideas"],
    "date": "2025-12-01"
  }
}

delete_note

永久删除笔记。

参数:

  • path (必填):要删除的注释路径

search_notes

搜索vault内容(支持正则表达式)。

参数:

  • query (必填):搜索查询

例子:

{
  "query": "machine learning"
}

get_vault_stats

获取vault统计信息(总笔记、文件夹)。

无需参数。


🔧 发展

在开发模式下运行:

npm run dev

测试服务器:

# Health check
curl http://localhost:3000/health

# Test with MCP Inspector
npx @modelcontextprotocol/inspector

🔐 安全说明

  • 仅限本地网络:默认情况下,服务器只接受来自localhost的连接
  • 无认证:当前没有身份验证层-服务器信任本地客户端
  • 文件系统访问:服务器具有对vault的完全读/写访问权限
  • 未来:计划为远程访问场景实施OAuth

🚀 路线图

  • []用于安全远程访问的OAuth 2.0实现
  • []Webhook支持实时更新
  • []高级搜索(语义、模糊)
  • []批量操作
  • []黑曜石插件集成实时同步
  • []支持附件和图像

📝 许可证

麻省理工学院


🙏 致谢

基于Anthropic的模型上下文协议标准构建。受到黑曜石社区令人惊叹的MCP服务器实现的启发。


💬 支持

  • 问题: GitHub问题
  • 问题:展开讨论
  • 贡献:欢迎PR!