项目简介

Obsidian MCP 服务器是一个基于 Model Context Protocol (MCP) 构建的后端服务。它的核心功能是作为一个桥梁,让支持MCP协议的AI客户端(如大型语言模型 - LLM)能够访问和利用您的Obsidian笔记库。通过安装Obsidian的Local REST API插件并运行此服务器,您的Obsidian笔记库就能成为AI的强大知识源,支持复杂的查询和分析任务。

主要功能点

  • 搜索笔记库 (search_vault): 提供强大的笔记搜索功能。不仅支持简单的文本搜索,还可以通过文件路径、标题关键词(支持多种匹配模式)、标签(支持多种匹配模式)和创建/修改日期进行过滤。可以选择获取搜索结果的上下文片段,或者直接获取符合条件的笔记全文。支持正则表达式进行复杂的文本匹配。
  • 获取笔记内容 (get_note_content): 根据指定的路径,直接获取Obsidian笔记的完整内容和元数据。
  • 浏览笔记库结构 (browse_vault_structure): 允许AI按路径浏览Obsidian笔记库的目录和文件结构,帮助AI理解知识库的组织方式。

安装步骤

  1. 在 Obsidian 中安装并配置插件:
    • 在您的Obsidian应用中,安装并启用官方的 "Obsidian Local REST API" 社区插件。
    • 在Obsidian设置中配置该插件,启用REST API,并记下API URL(通常是 'https://localhost:27124')和您设置的API密钥(如果设置了)。
  2. 安装 MCP 服务器:
    • 打开您的命令行终端。
    • 使用 pip 或 uv 安装服务器软件包:
      pip install obsidian-api-mcp-server
      # 或者使用 uv:
      uv pip install obsidian-api-mcp-server

服务器配置 (针对MCP客户端)

这个MCP服务器通常由您的MCP客户端(如支持MCP的LLM应用)自动启动和管理。您需要在MCP客户端的配置中添加该服务器的信息。以下是您可能需要添加到客户端配置文件中的 JSON 片段示例及其说明(具体配置方式请参考您的MCP客户端文档):

{
  "mcpServers": {
    // 为这个MCP服务器定义一个唯一的名称,供客户端内部识别
    "obsidian-api-mcp-server": {
      // 客户端用来启动这个服务器进程的命令
      "command": "uvx", // 如果使用 uv 安装,推荐使用 uvx 启动
      // 传递给启动命令的参数
      "args": [
        "--from",         // uvx 参数,指定从哪个包启动
        "obsidian-api-mcp-server>=1.0.1", // 包名和版本范围
        "obsidian-api-mcp" // 包内的可执行模块名
      ],
      // 启动服务器进程时设置的环境变量
      "env": {
        // **必需:** Obsidian Local REST API 的 URL
        "OBSIDIAN_API_URL": "https://localhost:27124",
        // **可选:** 如果您在Obsidian中设置了API密钥,在此填写
        "OBSIDIAN_API_KEY": "您的API密钥"
      }
    }
  }
}

重要安全提示: 切勿将敏感信息(如API密钥)直接硬编码到您公开分享或提交到版本控制的配置文件中。优先使用环境变量,并妥善管理您的API密钥。

基本使用方法

一旦MCP服务器被正确配置到您的MCP客户端中,当客户端需要访问Obsidian笔记库提供的信息或执行相关操作时,它将自动启动并连接到此Obsidian MCP服务器。您无需手动运行服务器命令。您的AI模型将通过客户端调用服务器暴露的工具('search_vault', 'get_note_content', 'browse_vault_structure')来与Obsidian笔记库进行交互。

例如,如果您的AI模型收到了一个查询,要求在您的"项目笔记"文件夹中查找包含"预算"的笔记,并总结其中的要点,AI模型会利用客户端调用此服务器的 'search_vault' 工具,并传递相应的参数(如 'search_in_path="项目笔记/"', 'query="预算"', 'include_content=True'),服务器则通过Obsidian Local REST API执行查询并将结果返回给AI模型进行处理。

信息

分类

AI与计算