自建 MCP 服务端:认证、冒充与删除端点的坑
给一套老系统接 MCP(Model Context Protocol),让 AI 客户端能直接读写业务数据,是这两年被问得很多的需求。真正做起来会发现:协议本身不难,难的是”人”——谁在操作、怎么证明是他、出了问题怎么追溯。
本文记录一次自建 MCP 服务端的完整过程,重点在认证设计上翻过的车。
给一套老系统接 MCP(Model Context Protocol),让 AI 客户端能直接读写业务数据,是这两年被问得很多的需求。真正做起来会发现:协议本身不难,难的是”人”——谁在操作、怎么证明是他、出了问题怎么追溯。
本文记录一次自建 MCP 服务端的完整过程,重点在认证设计上翻过的车。
有个常见需求:上游桌面应用只发 macOS 和 Windows,但你需要在 Linux(以及 FreeBSD)上用。直接 fork 改源码最省事,代价是每次上游发版都要解一遍冲突,很快就不想维护了。
本文记录另一种做法:把平台支持做成一层 overlay 补丁,上游源码一个字节都不改,构建时拉官方发布包、叠上补丁再打包。顺带记录 FreeBSD 移植里几个完全出乎意料的问题。
在 Wayland 上跑虚拟机的桌面集成(剪贴板同步、拖放、指针注入、分辨率自适应),常会遇到一种尴尬处境:功能看着有、实际不工作;翻文档,上游明确写着”不支持 Wayland,请用 X11”。
本文记录一次完整的补全过程。结论先放这里:这类问题很少是”缺一段代码”,多数是”架构上刻意绕开了 Wayland”,所以第一步永远不是写代码,而是搞清楚上游到底绕在哪。
接手一套跑了十多年的 PHP 系统,第一件事往往不是加功能,而是”让它在新版 PHP 上别崩”。这类迁移的坑特别有迷惑性:有些是直接白屏,有些是页面看起来正常、数据悄悄错了,还有些是”只有某一个入口才会踩”。
本文记录一次从 PHP 5/7 时代代码迁到 PHP 8 的实战,包括几类反复出现的问题和一套可复用的排查方法。
本文汇总开源项目打包分发(RPM / DEB / Arch PKGBUILD / Electron / AppImage)、GitHub Actions CI 流水线以及桌面系统集成中积累的踩坑记录。适用于需要同时发布多个平台产物的个人与团队项目。
本文汇总多个 Rust 桌面工具(余额监控、壁纸应用、命令行 AI 助手)开发中积累的踩坑记录,覆盖 TLS 与网络、MSRV 兼容性、Win32/系统集成、SQLite 与进程管理几个方向。这些项目普遍有”支持老旧系统”与”跨 Windows/Linux”的硬约束,坑尤其密集。
本文汇总 AI 应用集成类项目(图像/视频生成服务、Web 聊天应用、模型代理插件)对接多家大模型 API 时积累的踩坑记录,覆盖配置加载、多厂商 API 差异、并发语义、数据落库与安全五个方向。
本文汇总 Vue 3 中后台前端、Taro/uni-app 小程序以及 Canvas 小游戏开发中积累的踩坑记录,覆盖构建与缓存、Element Plus 组件、接口数据层、小程序容器限制四个方向。
本文汇总多个中后台系统(OA、进销存、ERP 类)开发过程中积累的服务端踩坑记录,技术栈为 NestJS + Prisma + MySQL 8 + Redis。内容集中在参数校验、并发事务、序列化、数据库结构管理与安全五个方向。
在多项目、长时间使用 AI 编程助手协作开发的过程中,一些同类型的坑反复出现——它们跨越技术栈与业务领域,几乎每个项目都要踩一遍。本文汇总其中最高频的 8 类问题,附具体现象、根因与修复方法。