项目简介

obsidian-mcp 是一个基于 Model Context Protocol (MCP) 的服务器实现,旨在将 Obsidian 知识库的内容作为上下文信息提供给大型语言模型 (LLM) 客户端,例如 Claude Desktop。通过该服务器,LLM 可以访问和利用 Obsidian Vault 中的笔记数据,从而实现更智能的对话和任务处理。

主要功能点

  • 资源 (Resources):
    • 提供 Obsidian 服务器信息的资源接口 ('obsidian://server-info'),允许客户端查询服务器基本信息。
    • 支持获取 Obsidian Vault 内容及其元数据,使 LLM 能够理解知识库的结构和内容。
    • 资源数据以 JSON 格式返回,方便 LLM 客户端解析和使用。
  • 工具 (Tools):
    • 提供 'get_vault_contents' 工具,允许 LLM 检索 Obsidian Vault 中的内容。
    • 该工具支持指定 Vault 内的路径,灵活获取特定目录或整个 Vault 的内容。
    • 工具返回结构化的 JSON 响应,方便 LLM 处理检索结果。
  • API 集成:
    • 通过 HTTPS 安全连接与 Obsidian API 进行通信,确保数据传输安全。
    • 封装了 Obsidian API 客户端,处理错误和路径规范化等细节,简化开发。

安装步骤

  1. 安装 Node.js: 确保你的系统已安装 Node.js v18 或更高版本。
  2. 安装依赖: 克隆仓库到本地后,在项目根目录下运行 'npm install' 安装项目依赖。
    npm install
  3. 构建服务器: 运行 'npm run build' 命令编译 TypeScript 代码。
    npm run build

服务器配置

要将 obsidian-mcp 服务器添加到 MCP 客户端(例如 Claude Desktop),需要编辑客户端的配置文件。以 Claude Desktop 为例,配置文件路径如下:

  • MacOS: '~/Library/Application Support/Claude/claude_desktop_config.json'
  • Windows: '%APPDATA%/Claude/claude_desktop_config.json'

在 'claude_desktop_config.json' 文件中的 '"mcpServers"' 字段下添加 obsidian-mcp 服务器的配置信息。配置信息为 JSON 格式,示例如下:

{
  "mcpServers": {
    "obsidian-mcp": {
      "command": "/path/to/obsidian-mcp/build/index.js",
      "env": {
        "OBSIDIAN_API_KEY": "your-obsidian-api-key"
      },
      "args": []
    }
  }
}

配置参数说明:

  • server name: '"obsidian-mcp"' - 服务器名称,在客户端中用于标识该服务器。
  • command: '"/path/to/obsidian-mcp/build/index.js"' - 必需修改。指向 'obsidian-mcp' 服务器启动脚本的绝对路径。请根据实际情况修改为 'obsidian-mcp' 项目 'build/index.js' 文件的完整路径。
  • env: '{ "OBSIDIAN_API_KEY": "your-obsidian-api-key" }' - 必需修改。 环境变量配置,用于设置 Obsidian API 密钥。请将 '"your-obsidian-api-key"' 替换为你的 Obsidian API Key。你需要在 Obsidian 软件中启用并获取 API Key。
  • args: '[]' - 启动参数,当前配置为空。如有需要可以添加额外的启动参数。

注意: 请务必将 '/path/to/obsidian-mcp/build/index.js' 替换为 obsidian-mcp 项目构建后 'index.js' 文件的实际绝对路径,并将 '"your-obsidian-api-key"' 替换为你的真实 Obsidian API Key。

基本使用方法

  1. 启动服务器: 配置完成后,MCP 客户端(如 Claude Desktop)会自动尝试连接并启动 obsidian-mcp 服务器。
  2. LLM 调用工具和资源: 在 LLM 客户端中,你可以指示 LLM 使用 'get_vault_contents' 工具来检索 Obsidian Vault 的内容,或者访问 'obsidian://server-info' 资源来获取服务器信息。具体的调用方式取决于 LLM 客户端的功能和指令格式。

通过以上步骤,你就可以将 obsidian-mcp 服务器集成到支持 MCP 协议的 LLM 客户端中,使 LLM 能够利用你的 Obsidian 知识库进行更强大的上下文感知交互。

信息

分类

生产力应用