项目简介

'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 的具体请求,无缝连接您的知识库。

安装步骤

  1. 安装 Node.js: 确保您的系统已安装 Node.js 18+ 或 Bun 运行时环境。
  2. 安装并运行 Obsidian 本地 REST API: 本 MCP 服务器依赖于 Obsidian Local REST API 作为后端服务。请确保该 REST API 已在本地运行,并可从 'http://obsidian-local-rest-api.test'(默认)或您配置的地址访问。
  3. 运行 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

服务器配置

在您的 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与计算