项目简介
Obsidian MCP 服务端是一个基于 Model Context Protocol (MCP) 构建的后端应用,它使大型语言模型(LLM)能够通过 Obsidian Local REST API 插件与 Obsidian 笔记库进行交互。它不仅提供基础的文件操作和 Obsidian 命令执行能力,还特别设计了一套技术计划管理工作流,帮助LLM更好地组织和管理生成的文档。
主要功能点
- 文件操作: 支持列出、读取、创建、更新、部分更新和删除 Obsidian 笔记库中的文件。
- 当前笔记操作: 能够获取、替换、部分更新或向 Obsidian 中当前活跃的笔记追加内容。
- Obsidian 命令执行: 允许列出所有可用的 Obsidian 命令,并执行指定的命令,从而实现高级自动化。
- 技术计划管理: 提供一整套针对AI生成的“技术计划”文档的生命周期管理功能,包括创建新计划、标记计划为已审查、归档计划、列出计划,以及根据元数据(如项目、类型、优先级、来源)获取计划详情。
安装步骤
- 配置 Obsidian:
- 在 Obsidian 中安装并启用 “Local REST API” 插件。
- 在插件设置中配置一个 API 密钥(建议设置),并记下端口号(默认为 '27123')。
- 安装 MCP 服务端:
- 推荐方式(一键安装): 在终端运行以下命令,它会自动检测您的系统并下载安装最新版本:
curl -fsSL https://raw.githubusercontent.com/tlockney/obsidian-mcp/main/install.sh | sh - 手动安装: 从项目的 GitHub Releases 页面下载适用于您操作系统的最新二进制文件,解压后将其放置到您希望的位置。
- 推荐方式(一键安装): 在终端运行以下命令,它会自动检测您的系统并下载安装最新版本:
服务器配置 (用于MCP客户端)
MCP客户端(如 Claude Desktop)需要配置本MCP服务器的启动命令。以下是配置示例,您需要根据实际安装路径和API密钥进行调整。
注意: 以下是JSON格式的配置内容示例,您应在MCP客户端的配置界面或配置文件中填写这些信息,而不是在命令行中直接运行。例如,在 Claude Desktop 的 'claude_desktop_config.json' 文件中找到 '"mcpServers"' 部分并添加以下配置。
- 通过命令行参数配置 (推荐):
- 将 'command' 设置为 MCP 服务器的二进制文件路径 (例如,macOS/Linux 为 '~/.local/bin/obsidian-mcp-mac-arm64' 或 '~/.local/bin/obsidian-mcp-linux-x86_64';Windows 为 '~/bin/obsidian-mcp-windows-x86_64.exe')。
- 在 'args' 中添加 '--api-url' 和 '--api-key' 参数,并填入您的 Obsidian Local REST API 地址和密钥。
{ "mcpServers": { "obsidian": { "command": "/Users/yourusername/.local/bin/obsidian-mcp-mac-arm64", // <<<<< 替换为您的实际路径 "args": [ "--api-url", "http://localhost:27123", // <<<<< 您的Obsidian Local REST API地址 "--api-key", "your-api-key" // <<<<< 您的Obsidian Local REST API密钥 ] } } } - 通过环境变量配置:
- 同样将 'command' 设置为 MCP 服务器的二进制文件路径。
- 在 'env' 部分设置 'OBSIDIAN_API_URL' 和 'OBSIDIAN_API_KEY' 环境变量。
{ "mcpServers": { "obsidian": { "command": "/Users/yourusername/.local/bin/obsidian-mcp-mac-arm64", // <<<<< 替换为您的实际路径 "env": { "OBSIDIAN_API_URL": "http://localhost:27123", // <<<<< 您的Obsidian Local REST API地址 "OBSIDIAN_API_KEY": "your-api-key" // <<<<< 您的Obsidian Local REST API密钥 } } } }
基本使用方法
一旦 MCP 客户端配置完毕并连接到此服务器,您就可以通过 LLM 调用服务器提供的工具。例如,您可以让 LLM:
- “列出我的 Obsidian 库中的所有文件。” (将调用 'list_files' 工具)
- “读取文件 ‘My Ideas/Daily Notes/2023-10-27.md’ 的内容。” (将调用 'get_file' 工具)
- “在 Obsidian 中创建一个新的技术计划,项目名称为‘新功能开发’,内容是‘详细的需求文档...’。” (将调用 'create_technical_plan' 工具)
- “将当前活跃笔记的内容替换为一段新文本。” (将调用 'replace_active' 工具)
信息
分类
桌面与硬件