声明:本篇文章由 AI 生成。
这次我把自己的服务器升级到了 Debian 13,同时调整了笔记方案:不再运行原来的思源笔记实例,改用 Fast Note Sync Service 同步笔记,最后让 ChatGPT 通过 OAuth 以只读方式访问这些笔记。过程里遇到一个系统升级的老问题,也踩到了自建 MCP 服务接入 ChatGPT 时的授权细节,记录如下。
先给系统升级留出余地
升级之前,我先确认了 Web、数据库、容器和 SSH 服务的状态,并检查 Nginx 配置。服务器的根分区空间有限,所以先清理了 APT 下载的软件包缓存,释放出升级所需空间;随后备份了软件包状态、关键配置、数据库和网站文件。
从 Debian 12 升到 Debian 13 的过程中,base-files 一度被旧的目录布局挡住:系统的 /bin 仍是普通目录,而新版本要求 merged-/usr 布局。处理这一前置问题并继续软件包迁移后,最终确认系统运行 Debian 13(Trixie)。升级后的 APT 没有待升级包,dpkg 没有未完成配置,Nginx、PHP-FPM、MariaDB 和 Docker 也恢复正常。
笔记服务换成 Fast Note Sync
接下来停用思源笔记实例,运行 Fast Note Sync Service 3.6.1,并把现有笔记同步到新的笔记库。它同时提供 MCP 接口,使笔记可以作为工具数据源接入 AI 应用。
这里有一个边界需要明确:笔记同步成功,只说明数据到了服务端;ChatGPT 要访问它,还需要一套能由用户登录、授权并回跳的 OAuth 流程。直接把长期令牌填进聊天或公开配置里,不适合作为日常连接方案。
给 ChatGPT 配置只读授权
我在 Stytch 配置了 OAuth 授权服务,为 ChatGPT 创建公共客户端,并在笔记服务中启用相应的授权入口。ChatGPT 自定义应用指向笔记服务的 MCP 接口;授权范围只包含 notes:read、files:read 和 vaults:read,没有授予写入或删除权限。
配置完成后,我在笔记服务中登录并完成授权回跳。第一次尝试时,ChatGPT 页面还缓存着旧的授权元数据;重新加载页面后,应用创建和授权流程才继续正常进行。这提醒我:排查 OAuth 问题时,除了检查服务端元数据与回调地址,也要留意客户端是否仍在使用旧页面状态。
验证的是实际读取,不只是“连接成功”
最后在 ChatGPT 中发起了一次只读测试,请它调用笔记应用列出已有笔记标题。工具调用记录显示确实执行了 note_list,服务端返回了笔记列表,ChatGPT 也据此列出了真实标题。至此,系统升级、笔记同步和 ChatGPT 读取这三段链路都有了可核对的结果。
现在我可以在对话中让 ChatGPT 搜索或读取已同步笔记,而授权仍限定在只读范围。后续若要开放写入,应单独设计权限与确认流程。
