项目简介
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 客户端,处理错误和路径规范化等细节,简化开发。
安装步骤
- 安装 Node.js: 确保你的系统已安装 Node.js v18 或更高版本。
- 安装依赖: 克隆仓库到本地后,在项目根目录下运行 'npm install' 安装项目依赖。
npm install - 构建服务器: 运行 '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。
基本使用方法
- 启动服务器: 配置完成后,MCP 客户端(如 Claude Desktop)会自动尝试连接并启动 obsidian-mcp 服务器。
- LLM 调用工具和资源: 在 LLM 客户端中,你可以指示 LLM 使用 'get_vault_contents' 工具来检索 Obsidian Vault 的内容,或者访问 'obsidian://server-info' 资源来获取服务器信息。具体的调用方式取决于 LLM 客户端的功能和指令格式。
通过以上步骤,你就可以将 obsidian-mcp 服务器集成到支持 MCP 协议的 LLM 客户端中,使 LLM 能够利用你的 Obsidian 知识库进行更强大的上下文感知交互。
信息
分类
生产力应用