obsidian-local-rest-api
让 Obsidian 变身高隐私 AI 知识库,通过 REST API 和 MCP 协议供 AI Agent 直接读写笔记
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
让 Obsidian 变身高隐私 AI 知识库,通过 REST API 和 MCP 协议供 AI Agent 直接读写笔记
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
清晨,你坐在电脑前,打开 Obsidian 开始整理昨天会议纪要。写完后,你需要把关键结论同步到 Notion、把任务卡片导入 Linear、把摘要发给 AI 助手做进一步分析——于是开始在各种应用之间来回切换、复制粘贴,一条信息要操作四五次。
Obsidian Local REST API 解决的就是这个痛点。它把 Obsidian 变成一个有 HTTP 接口的服务端,让你的笔记库真正成为"数据中枢":任何支持 API 调用的工具(脚本、浏览器插件、AI Agent)都可以直接读写你的笔记,无需手动操作。
这不只是省事——它让 AI Agent 能够真正介入你的知识管理流程,而不是只能在聊天框里打打字。
这个插件由开发者 Adam Coddington 创建,最初只是给 Obsidian 社区提供基础的本地 HTTP 接口。随着 Claude Code、Cursor 等 AI 编程工具的崛起,Adam 加入了 MCP(Model Context Protocol) 支持,让这个插件从单纯的 REST API 工具升级为 AI Agent 的"知识库连接器"。
GitHub 仓库地址为 coddingtonbear/obsidian-local-rest-api,目前拥有 2429 颗星,采用 MIT 许可证,开源且免费使用。
插件暴露了标准的 REST API 端点,支持对笔记库中的所有文件进行增删改查:
GET /vault/ — 列出笔记库根目录下所有文件GET /vault/path/to/note.md — 读取指定笔记内容POST /vault/path/to/new-note.md — 创建新笔记PUT /vault/path/to/note.md — 覆盖式更新笔记DELETE /vault/path/to/note.md — 删除笔记不同于简单的文件读写,这个插件支持精准修补笔记的特定部分。通过 HTTP Header 指定目标:
curl -k -X PATCH \
-H "Authorization: Bearer ***" \
-H "Operation: append" \
-H "Target-Type: heading" \
-H "Target: 我的章节" \
-H "Content-Type: text/plain" \
--data "新内容" \
https://127.0.0.1:27124/vault/note.md
这意味着你可以在不重写整个文件的情况下,只追加内容到某个标题下。这对 AI Agent 持续更新同一篇笔记的场景特别有用。
支持基于 JsonLogic 的结构化查询,可以对 frontmatter、标签、路径、文件内容进行组合查询:
{"and": [
{"tag": {"contains": "AI"}},
{"path": {"startsWith": "Projects/"}}
]}
这比简单的全文搜索强大得多——可以精确筛选具有特定元数据的笔记。
插件内置了 MCP(Model Context Protocol)服务器,运行在 https://127.0.0.1:27124/mcp/。MCP 是 Anthropic 主导的 AI 工具集成协议,让 AI Agent 可以用标准化的方式与外部工具交互。
目前支持以下 MCP 客户端:
claude mcp add --transport http obsidian https://127.0.0.1:27124/mcp/mcp-remote 桥接这意味着 Claude Code 或 Cursor 可以直接把 Obsidian 当作"记忆层"来使用:读取笔记获取上下文、写入笔记保存结果。
所有请求强制走 HTTPS(自签名证书,监听 127.0.0.1:27124),并需要 Bearer Token 认证:
curl -k -H "Authorization: Bearer <your-api-key>" \
https://127.0.0.1:27124/vault/
插件自动生成 SHA-256 格式的 API Key,首次启用时在设置页面中获取。数据完全保存在本地,不经过任何第三方服务器,隐私性极高。
对于需要从局域网其他设备访问的场景,插件也支持配置绑定地址和主题备选名(Subject Alternative Names)。
项目采用 TypeScript 开发,核心模块包括:
| 模块 | 职责 |
|---|---|
main.ts | 插件入口,负责 HTTPS/HTTP 服务器启动、证书生成、Obsidian 生命周期管理 |
requestHandler.ts | HTTP 请求路由,处理 REST API 的各种端点 |
mcpHandler.ts | MCP 协议处理,与 @modelcontextprotocol/sdk 集成 |
vaultOperations.ts | 笔记库文件系统操作封装 |
api.ts | 公共 API 导出,供其他插件扩展 |
utils.ts | 证书校验、UUID 生成等工具函数 |
核心依赖:
构建工具:
项目有完善的测试套件,包括:
jest.config.js:单元测试jest.integration.config.js:集成测试requestHandler.test.ts:API 路由测试mcpHandler.test.ts:MCP 协议测试serverTimeouts.test.ts:超时处理测试代码质量较高,架构清晰,模块边界明确。
这是一个 Obsidian 插件,不是独立运行的 Web 应用。部署流程:
https://127.0.0.1:27124/ 启动| 用户类型 | 适合度 |
|---|---|
| 普通 Obsidian 用户 | ★★★★☆(用现成 API 脚本就够了) |
| AI Agent 开发者 | ★★★★★(MCP 集成体验极佳) |
| 程序员/脚本用户 | ★★★★☆(curl 即可调用) |
| 非技术用户 | ★★☆☆☆(需要一定 CLI 基础) |
-k 参数或信任证书,对新手有一定门槛随着 AI Agent 逐步成为主流工具,如何让 Agent 能够可靠地读写用户的个人数据成为关键问题。传统的解决方案是让 Agent 调用各种第三方 API,但这意味着用户需要把数据迁移到云端,隐私风险陡增。
Obsidian Local REST API 代表了一种新思路:数据留在本地,AI 来访问。通过 MCP 协议, AI Agent 可以像操作数据库一样操作个人笔记库,但所有数据都在用户自己设备上。这可能是未来 Personal AI 时代的一种重要架构模式。
同时,这个插件的成功也反映了 Obsidian 作为"个人知识库基础设施"的潜力——它的开放插件生态正在从笔记工具演进为个人数据平台。
分析基于 GitHub 仓库 v4.1.3 版本,数据截至 2026 年 6 月。