让服务器的 AI 读写你的 Obsidian 笔记库:从自建同步到 MCP 集成
我的主力笔记工具是 Obsidian,本地通过插件直接管理文件,体验很好。但有一个问题:服务器上跑着 AI Agent(Hermes),它需要读写我的笔记库,而 Linux 服务器装不了 Obsidian 桌面客户端。Fast Note Sync 的 MCP 接口解决了这个问题——AI Agent 通过 MCP 协议直接操作笔记,本地依然用 Obsidian 管理,数据在两端实时同步。
两条路径,一个笔记库
整套方案的逻辑很简单:
1 | 本地(有 Obsidian) 服务器(无 Obsidian) |
本地通过 Obsidian 客户端直接管理笔记,实时同步到服务端。服务器上的 AI Agent 通过 MCP 协议读写同一个笔记库。两条路径操作的是同一份数据,通过 WebSocket 保持实时一致。
为什么选 Fast Note Sync
| 方案 | 同步延迟 | 私有部署 | AI 可操作 | 本地体验 |
|---|---|---|---|---|
| Obsidian Sync | 毫秒级 | 否 | 否 | 完整 |
| iCloud / 坚果云 | 秒~分钟 | 否 | 否 | 完整 |
| Git 同步 | 手动 | 是 | 否 | 完整 |
| Fast Note Sync | 毫秒级 | 是 | MCP 原生 | 完整 |
关键差异:Fast Note Sync 是唯一同时满足「自托管」「实时同步」「AI 可操作」三个条件的方案。原生 MCP 支持意味着不需要额外写胶水代码,配置即用。
部署服务端
服务端用 Golang 编写,Docker 部署最省事。
Docker Compose
1 | # /vol1/docker/fast-note-sync/docker-compose.yml |
服务端配置
config/config.yaml 关键参数:
1 | server: |
webgui-login-token-bind-ip: false是关键——使用反向代理时客户端 IP 会变化,开启此项会导致频繁掉线。
反向代理与 SSL
飞牛 OS 的 80/443 端口被 trim_nginx 占用,用 Caddy 监听空闲端口做 SSL 终结:
1 | { |
两个容易踩的坑:
auto_https off必须加——否则 Caddy 尝试监听 80 端口,跟现有服务冲突。- WebSocket 升级需要单独匹配——FNS 的
/api/user/sync使用 WebSocket,Caddy 需要通过@websocketsmatcher 正确转发Upgrade头。
证书自动续期
飞牛 OS 的 SSL 证书路径含时间戳目录,每次续期会变。用符号链接 + systemd timer 解决:从系统配置读取当前活跃证书路径,每 6 小时检测一次,证书更新时自动重建符号链接并通知 Caddy 重载。
本地配置 Obsidian 客户端
这是日常使用的主路径:
- 访问
https://your-nas.example.com:自定义端口/webgui注册管理员账号 - 在 Web UI「笔记库」中创建或选择默认笔记库
- 点击「一键授权 Obsidian」获取授权配置
- 各端 Obsidian 安装 Fast Note Sync 插件,粘贴授权配置
插件自动监听 Vault 内所有笔记的创建、更新、删除,通过 WebSocket 实时同步。离线期间的操作在重连后自动合并,不会丢数据。日常写笔记、整理知识库,全程在 Obsidian 里完成,同步是无感的。
接入 AI Agent(MCP)
这是解决服务器端问题的关键——服务器没有 Obsidian,但 AI Agent 需要读写笔记。Fast Note Sync 原生支持 MCP 协议,StreamableHTTP 传输,开箱即用。
获取 API Token
Web GUI → 设置 → API Token → 创建新 Token,权限选 p:rest。
安装 MCP SDK
Hermes Agent 的 venv 默认不含 MCP SDK:
1 | uv pip install --python ~/.hermes/hermes-agent/venv/bin/python mcp |
配置 Hermes
编辑 ~/.hermes/config.yaml,添加:
1 | mcp_servers: |
重启后自动注入 25 个 mcp_fns_* 工具:
| 类别 | 工具示例 |
|---|---|
| 笔记读写 | note_list, note_get, note_create_or_update, note_append |
| 文件操作 | file_list, file_read, file_write |
| 笔记库管理 | vault_list, vault_create_or_update |
| 回收站 | note_restore, file_restore |
使用效果
配置完成后,AI Agent 可以直接操作笔记库:
- “列出 wiki 库所有笔记”
- “读取某篇笔记并总结要点”
- “在 daily 目录创建今天的日程”
- “把这篇文章追加到项目日志末尾”
通过 MCP 修改的笔记实时同步到所有 Obsidian 客户端,本地打开 Obsidian 就能看到 AI 写入的内容。反过来,本地编辑的笔记也能被 AI 读取。
注意事项
- MCP 工具在新会话中注入,配置完成后需要新开会话才能使用
- 本地 Obsidian 操作和服务器 MCP 操作是两条独立路径,但操作同一份数据
- WebSocket 端点
/api/user/sync需要在反向代理中正确处理 Upgrade 头 - Token 仅本地使用,不暴露公网
user-database配置中port字段必须是整数,留空字符串会导致启动报错
总结
这套方案的核心思路:本地用 Obsidian 管理笔记(完整体验),服务器通过 MCP 让 AI 操作笔记(无桌面环境),Fast Note Sync 作为中间层提供实时同步。两条路径各取所长,数据始终一致。
参考资料
- Fast Note Sync Plugin — Obsidian 插件源码
- Fast Note Sync Service — 服务端源码与部署文档
- Fast Note Sync - Obsidian Community Plugins — 官方插件页面

