Skip to content

MCP 生产实践 ​

本页讨论把本地 MCP 工具带入团队或生产环境时必须补齐的工程能力。协议能统一调用格式,但不会自动赋予工具安全性。

本页属于 AI Harness 工程化专题;初次接入请先阅读 MCP 基础。

本地到远程 ​

场景推荐传输关键约束
本机开发工具stdio进程隔离、stderr 日志、工作区边界
内网共享服务Streamable HTTPTLS、身份认证、超时、限流
多租户生产服务HTTP 网关租户隔离、审计、配额、回滚

MCP 规范在 2026-07-28 版本中强化了无状态核心、授权和可缓存列表结果。升级时不要只替换 SDK:应验证初始化、列表、调用、错误、取消和重连行为。

远程 Server 的安全边界 ​

至少实现:

  • TLS 和服务身份校验;
  • 用户、服务账号或工作负载身份;
  • Tool 级别授权,而不只是 Server 级别授权;
  • 每次调用的 request id、用户、工具、参数摘要和结果状态;
  • 超时、并发上限、重试预算和熔断;
  • 外部系统失败时的清晰错误语义。

工具输入校验 ​

校验路径:

text
JSON schema -> 业务校验 -> 权限校验 -> 副作用预览 -> 执行 -> 审计

例如 write_file 至少要检查:

  • 目标路径是否在允许目录;
  • 是否命中密钥、生产配置或生成文件;
  • 是否需要用户确认;
  • 内容大小和编码;
  • 是否记录变更前后的摘要。

授权与最小权限 ​

推荐把权限拆成:

  • read_repo
  • search_code
  • run_tests
  • write_workspace
  • open_review
  • deploy_production

默认只授予前几项;最后一项必须独立审批。不要把“模型可以看到工具”误认为“模型有权执行工具”。

生产权限应至少经过三层判断:

  1. Host/Harness 根据任务、用户和当前阶段裁剪可见工具,并拦截需要审批的候选动作。
  2. MCP Gateway/Server 校验调用身份、租户、scope、资源范围和参数,不能信任 Client 已经检查过。
  3. 下游业务系统 执行最终的资源级授权与业务约束,不能因为请求来自 MCP Server 就放行。

一次审批只绑定确定的工具、参数摘要、资源、身份和有效期。参数变化、目标资源变化或审批过期后必须重新确认;审批令牌不能进入模型上下文。

审计、超时与恢复契约 ​

每次调用建议记录以下字段,并对敏感参数做脱敏或摘要:

类别最小字段
关联request id、task id、tool call id、trace id
身份user/workload、tenant、授权 scope、审批记录
能力Server 与 Tool 名称、schema/version、参数摘要
执行开始/结束时间、超时、重试次数、结果分类
副作用目标资源、幂等键、变更摘要、补偿或回滚状态

超时必须分层设置:单次下游调用超时小于 Tool 超时,Tool 超时小于 Agent 单步预算,单步预算再小于整个任务预算。Client 取消后,Server 要明确动作是“未开始”“已取消”“已完成但响应丢失”还是“状态未知”,不能简单重试一个可能已经成功的写操作。

恢复流程应依据副作用状态:

text
无副作用 -> 可在预算内重试
幂等写入且状态可查询 -> 用幂等键查询后决定是否重放
可补偿写入 -> 记录原结果,经策略或审批执行补偿
不可逆或状态未知 -> 停止自动循环,交由人工核对

Harness 负责保存任务检查点和决定是否继续,MCP Server 负责返回可判定的调用状态,下游系统负责幂等或事务保证。MCP 本身不会自动补齐这三者。

可靠性 ​

  • 幂等 Tool 使用 idempotency key;
  • 重试只用于明确的临时错误;
  • 长任务支持取消;
  • 结果带 trace id;
  • Server 重启后能恢复或明确终止任务;
  • 列表缓存失效时不会调用过期工具 schema。

迁移检查清单 ​

  1. 阅读目标协议版本的变更说明。
  2. 记录当前 Client/Server 的版本矩阵。
  3. 按协议版本运行固定任务:旧版验证 initialize、list、call、error、cancel;2026-07-28 验证无状态请求、Mcp-Method/Mcp-Name、列表缓存、call、error、cancel 和最大往返时间(MRTR)。
  4. 检查授权 scope 和审计字段。
  5. 预留回滚配置,不在高峰期首次升级。

除了协议兼容,还应在固定仓库快照或沙箱租户上运行回归任务:只读检索、越权路径拒绝、写操作审批、超时取消、重复幂等调用、Server 重启恢复、schema 变更和审计关联。比较升级前后的成功率、P95 延迟、重试率、人工介入率与权限违规数;任何权限放宽或状态未知都应阻断发布。

练习 ​

  1. 为 run_tests 设计一个允许的命令白名单。
  2. 为远程 search_repo 服务设计租户隔离方案。
  3. 写一份 MCP Server 升级前后的兼容性测试表。

参考资料 ​

AI 应用开发训练营 · 现在开始

别只收藏 AI 文章,今天就做出第一个能上线的项目

文章解决认知,项目才证明能力。把 Agent、RAG、MCP 变成可运行、可展示、可面试表达的成果,现在就从一次岗位准备度自测开始。

立即开始 AI 岗位准备度自测 查看训练营路线
真实学员成果先看成果,再决定是否开始 →
  1. 01选方向
  2. 02做项目
  3. 03出成果
  4. 04拿面试