生产 MCP 技术栈包括传输层、协议处理、身份验证、路由、工具定义、授权策略、执行凭据、后端 API、操作状态和遥测。小型部署可以在一个进程中合并多个层次,但每项职责仍然需要明确负责人。
多数故障都来自隐藏的边界。一个处理程序同时验证 token、决定租户访问、重试提供商调用并记录结果,导致团队无法判断究竟哪条规则失败。
技术栈全景
flowchart TD
C[MCP clients] --> T[Transport edge]
T --> S[Protocol server]
S --> G[Authentication and routing]
G --> R[Tool registry]
R --> P[Authorization policy]
P --> E[Tool executor]
E --> K[Credential broker]
K --> B[Backend APIs and data]
E --> O[Operation state]
S --> X[Telemetry and evaluations]
P --> X
E --> X
B --> X
这是一张职责图,并不要求使用十一个独立产品。
传输边缘层
对于远程服务器,边缘层负责终止 HTTPS、校验请求大小和来源、限制连接并路由 Streamable HTTP 会话。本地 stdio 服务器则使用本地进程与操作系统边界。
MCP 传输规范定义了 stdio 和 Streamable HTTP 的行为,但不提供租户速率限制或应用授权。
协议服务器
服务器处理初始化、能力协商、JSON-RPC 消息、分页、取消和通知,并公开实现声明的工具、资源和提示词。
协议错误应与业务失败明确区分。无效的 tools/call 请求,与通过业务策略拒绝的有效 create_invoice 调用是两种不同情况。
身份验证与路由
身份验证确定客户端及其代表的用户,路由则选择正确的服务器、租户上下文或工具组。网关可以集中处理多台 MCP 服务器的连接限制和身份验证发现,但小型部署无需为此单独运行一项服务。
MCP 授权指南介绍了远程 OAuth 流程,以及为什么 audience 校验属于这一层。
工具注册表
注册表包含客户端可见的确切名称、描述、schema、输出契约和 annotation,也可以按租户、角色、功能或环境过滤列表。
工具选择应与资源授权分开。隐藏工具可以帮助模型正确选择,后端仍必须拒绝禁止访问的请求。
MCP 工具设计指南包含针对这一层的仅选择评估。
授权策略
策略决定当前身份此刻能否针对当前租户、资源和操作使用某项工具,以及是否需要审批。
宽泛的业务规则应保留在资源所属的服务中。中央策略层可以提前拒绝,但不应成为唯一知道“一个用户不能读取另一个用户发票”这条规则的地方。
工具执行器与凭据代理
执行器校验输入、调用内部代码或上游 API,并整理结果。凭据代理提供权限范围尽可能小的独立上游凭据。
模型不应获得该凭据。MCP 密钥处理指南介绍了如何测试提示词、日志、错误和生成产物是否存在泄露。
后端与操作状态
后端强制保证数据完整性并执行最终授权。操作状态记录逻辑写入、尝试次数、幂等键、提供商请求 ID 和结果。会话状态和聊天记录不能替代这份账本。
超时后,执行器应先读取操作状态,再决定是否重新调用提供商。
遥测与评估
遥测将用户请求与工具调用和后端影响连接起来。评估则验证模型能否在变更前后选择正确工具,并在不应调用工具时保持不调用。
记录稳定的 ID 和范围明确的结果类别,排除凭据、原始敏感数据和不受限制的提供商 payload。
只在边界确实有帮助时拆分
只有某一层需要独立的信任、扩缩容、负责人或发布行为时,才应将它拆成独立服务。不要仅仅因为架构图中有一个网关方框,就增加网关。
下方的提示词会梳理现有部署中的职责归属,并找出第一个会造成实际风险的混合职责。