生产环境中导致 MCP 服务器故障的原因(MCP 最佳实践)... 笔记

生产环境中导致 MCP 服务器故障的原因(MCP 最佳实践)?

该团队运行两个面向全公司的多用户 MCP 服务器,以及一个分析网关和名为 AI-Lens 的 AI 编码辅助工具。生产环境的使用暴露出一些常见问题,包括无法采取行动的报错、用户断开连接、工具消失以及响应过大等。这些反复出现的问题促成了 mcp-server-standard 的制定,这是一份包含发布门禁检查清单的规范性文档。其核心原则是为模型设计错误消息,而不仅仅是为人,提供可操作的信息和修正建议。错误消息属于服务器 API 的一部分,其健壮性应与工具模式(tool schemas)相当。一次性返回所有必要的错误信息可避免浪费模型轮次。通过在工具描述或服务器指令中提供参考列表来预防错误也至关重要。该标准针对刷新令牌轮转问题,建议 MCP 客户端使用非轮转刷新令牌,以防止用户随机登出。它明确说明,若客户端持久性处理得当,服务器重新部署不会导致用户会话丢失。工具定义中无效的 JSON Schema 属性键可能导致整个工具列表失败,因此将其视为启动时的不变量检查。响应截断必须同时考虑行数与字节大小,以防止客户端错误。模型会话启动时的 instructions 字段也有严格的大小限制。mcp-server-standard 规定了核心要求,包括 OAuth、HTTP 传输以及集中式且可查询的日志记录(含秘密信息脱敏)。该标准施加的是属性要求,而非具体工具,从而允许灵活的栈选择。该标准还诚实地记录了其局限性,例如有状态服务器无法实现零停机滚动部署。完整标准共分为十个部分,并采用稳定的要求 ID 以便清晰引用。