ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

企业级MCP部署三大坑(身份授权 / 预算管控 / 错误处理)

企业级MCP部署三大坑(身份授权 / 预算管控 / 错误处理)

配套:篇(十三)多租户隔离
定位:篇13 解决了"一个网关服务多团队"的隔离与 RBAC——这是企业就绪的第一块。但企业真正把 MCP 推到生产,还会被另外三件事放倒:身份怎么跨系统传、花了多少钱说不清、错误看不出门道。本篇是篇13 的实战补完。


坑一 · 身份与授权(篇13 未竟之处)

篇13 的 RBAC 解决的是"这个租户的用户能看哪些工具"。但企业里还有一层更棘手的:用户身份怎么从上游一路带到 MCP 服务端。

  • 过渡方案:X-User-Id头声明(见篇九 L3)——但它是"断言不是验证",伪造、委托链、凭证轮换、audience/issuer 校验都防不住,仅限内部可信网络。
  • 生产方案:对接企业 IdP(Entra ID / OIDC),走OAuth 2.1,用可验证令牌带issuer + audience;或等ID-JAG / DPoP落地(篇九已详述迁移路径)。
  • 跨系统更尖锐:Agent 代表用户去调另一个 Agent / 另一个服务时,confused deputy(权威误用)和token passthrough(令牌透传)会比单跳更危险——令牌被带到不该去的地方,或agent 用自己的身份"顶替"用户干了越权的事。这正是 2026-07-28 规范列为 MUST 缓解的陷阱,只能靠含 audience 校验的可验证令牌根治。

相关阅读 → 篇(九) L3:本坑的"过渡→生产"升级路径在那里讲透了,本篇不重复,只点出"多跳场景下更危险"。


坑二 · 预算 / 资源管控(财务黑洞)

这是企业最痛苦、篇13 完全没覆盖的坑。

现象:MCP 网关一开,全公司都来调工具,月底老板问"花了多少、谁花的",答不上来。根因是计量计费 metadata 缺失——协议层没强制带成本归属信息。

怎么做(按租户 / 按工具计量):

// 每次工具调用记一笔:租户 + 工具 + token + 单价(demo 用 mock 单价)Stringkey="cost:"+tenantId+":"+toolName+":"+day;redis.opsForHash().increment(key,"calls",1);redis.opsForHash().increment(key,"tokens",promptTokens+completionTokens);// 定时聚合出"某租户某工具本月成本"

再叠上配额 / 限流 / 熔断(篇十一 L5 已讲),避免单个租户把额度刷爆。

⚠️待实测:本机跑通后补"某租户某工具本月成本"查询示例与聚合脚本。单价用 mock 值,真实单价以云厂商账单为准,别用 demo 数当财务依据。

相关阅读 → 篇(十一) L5 限流:预算管控的"闸"那一半在那里。


坑三 · 错误处理

工具一多,错误就五花八门。裸抛500在生产里等于没说。

  • 工具级错误码体系:别只抛异常,定义一套McpBizErrorCode枚举(如TOOL_NOT_FOUND / PARAM_INVALID / UPSTREAM_TIMEOUT / RATE_LIMITED),让调用方和日志都能区分"谁的错"。
  • 重试 / 退避 + 幂等协同:瞬时失败靠篇十一的退避重试;有副作用的工具靠篇八的幂等键——两者必须一起设计,否则"重试两次 = 下两次单"。
  • 结构化错误日志:沿篇九 L6,错误也打结构化日志(含租户、工具、错误码、耗时),排查才快。
  • 跨 Agent 错误传播:当 A2A 多 Agent 协作(篇十七)时,错误会跨 Agent 边界传播,需要在边界处统一错误模型,避免下层细节泄漏成上层事故。

相关阅读 → 篇(八)幂等、篇(十一)退避重试、篇(九) L6 审计。


隐藏坑 · 工具级 Schema 版本治理

升级困难是另一个隐形杀手:一个工具改了入参结构,老客户端全挂。

  • 版本号 + 兼容策略:工具 manifest 带schemaVersion,破坏性变更升主版本并灰度(呼应篇十二工具治理 / 状态机)。
  • 破坏性变更灰度:新版本先对白名单租户开放,观察错误率再全量——和篇八的"老客户端兼容端点"是同一思路。

企业部署自查清单

线检查项必做?
身份用户身份从上游到 MCP 服务端可验证(非 X-User-Id 裸声明)必做(公网)
身份audience/issuer 校验,防 confused deputy / token passthrough必做(多跳)
预算按租户/工具的成本计量已落地必做(企业)
预算配额/限流/熔断已配置必做
错误工具级错误码体系必做
错误重试+幂等协同、结构化错误日志必做
版本工具 schema 版本号 + 破坏性变更灰度建议

诚实边界

  • 预算计量用 mock 单价演示,真实成本口径以云账单为准,避免财务误导。
  • 本篇是篇13 的实战补完,不重复篇13 已讲的租户隔离与 RBAC。
  • 真实聚合脚本、跨 Agent 错误传播示例为待实测项,占位待补。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进