项目简介
'obsidian-local-rest-api-mcp' 是一个基于 Model Context Protocol (MCP) 构建的 AI 原生服务器。它将您的 Obsidian 笔记库转换为一个智能上下文服务,旨在向大型语言模型(LLM)提供高度抽象和任务导向的工具,以便LLM能够更有效地理解和操作您的笔记内容。通过封装底层复杂的API调用,该服务器使得LLM能够执行如分页浏览目录、智能创建/更新笔记、按日期获取日记、进行高级搜索和发现关联笔记等复杂任务。
主要功能点
- 智能文件和目录操作:
- 支持分页浏览目录内容('list_directory'),有效防止上下文溢出。
- 灵活的文件写入模式('write_file'),可选择覆盖、追加或预置内容,简化了创建和更新操作。
- 轻松读取文件内容('read_file')及删除文件或目录('delete_item')。
- AI原生笔记管理:
- 提供“智能插入/更新”功能('create_or_update_note'),自动判断笔记是否存在并进行创建或更新,无需LLM进行额外判断。
- 支持按日期快速获取日记笔记('get_daily_note'),理解多种日期表达(如“今天”、“昨天”或特定日期)。
- 快速获取最近修改的笔记列表('get_recent_notes'),符合用户“最近做了什么”的查询习惯。
- 高级搜索与发现:
- 允许在笔记库中进行多范围(内容、文件名、标签)的精确搜索('search_vault'),并支持路径过滤以缩小搜索范围。
- 能够根据共享标签或链接发现笔记间的概念关联('find_related_notes'),有助于知识发现和组织。
- 与Obsidian本地REST API集成: 作为中间层,将LLM发出的抽象指令转化为对 Obsidian 本地 REST API 的具体请求,无缝连接您的知识库。
安装步骤
- 安装 Node.js: 确保您的系统已安装 Node.js 18+ 或 Bun 运行时环境。
- 安装并运行 Obsidian 本地 REST API: 本 MCP 服务器依赖于 Obsidian Local REST API 作为后端服务。请确保该 REST API 已在本地运行,并可从 'http://obsidian-local-rest-api.test'(默认)或您配置的地址访问。
- 运行 MCP 服务器:
- 推荐方式(使用 npx): 在终端中直接运行以下命令。首次运行会自动下载并启动。
npx obsidian-local-rest-api-mcp - 从源代码安装:
如果您希望从源代码构建和运行,可以按照以下步骤操作:
git clone https://github.com/j-shelfwood/obsidian-local-rest-api-mcp.git cd obsidian-local-rest-api-mcp bun install # 或使用 npm install / yarn install bun run build # 或使用 npm run build / yarn build bun run start # 或直接运行 node build/index.js
- 推荐方式(使用 npx): 在终端中直接运行以下命令。首次运行会自动下载并启动。
服务器配置
在您的 MCP 客户端(如 Claude Desktop, VS Code MCP Extension, Cherry Studio 等)中配置此服务器。通常,您需要在客户端的配置文件中添加一个 MCP 服务器条目,包含以下信息:
- 服务器名称: 您可以为这个服务器指定一个易于识别的名称,例如 'obsidian-vault'。
- 启动命令 (command): 'npx'。
- 命令参数 (args): 'obsidian-local-rest-api-mcp'。
- 环境变量 (env):
- 'OBSIDIAN_API_URL': 设置为您的 Obsidian 本地 REST API 的运行地址,例如 'http://obsidian-local-rest-api.test' (对于 Laravel Valet 用户) 或 'http://localhost:8000' (对于非 Valet 设置)。
- 'OBSIDIAN_API_KEY': 如果您的 Obsidian 本地 REST API 需要 API 密钥进行认证,请在此处填写对应的密钥。如果不需要,可以省略此项。
基本使用方法
启动此 MCP 服务器并配置您的 MCP 客户端后,您的 LLM 助手即可通过内置的工具与您的 Obsidian 笔记库进行交互。您只需向 LLM 发出自然语言指令,它将自动选择并调用相应的 MCP 工具来完成任务。
例如,您可以让 LLM:
- “列出我的‘项目’文件夹下的所有文件和子目录。” (LLM将调用 'list_directory' 工具)
- “帮我创建一个名为‘2024年回顾’的笔记,内容是‘总结今年的成就和教训’,并添加‘回顾’和‘计划’标签。” (LLM将调用 'create_or_update_note' 工具)
- “搜索笔记库中所有包含‘机器学习’并且在‘研究’路径下的笔记。” (LLM将调用 'search_vault' 工具)
- “找出与‘AI研究’笔记相关的其他笔记。” (LLM将调用 'find_related_notes' 工具)
信息
分类
AI与计算