深度剖析 / MCP
MCP
构建、测试、保护与运维模型上下文协议服务器——mcp-architecture 概念介绍之上的实践层。
- 实操构建 MCP 服务器超越 hello-world 的地道服务器构建——FastMCP 装饰器、TypeScript Standard Schema、何时把能力做成 tool 与 resource 与 prompt 之分,以及一台中位数五工具的服务器里到底该放什么。
- 设计 MCP 工具MCP 工具与其说是 API 不如说是提示词——描述措辞决定选择、粒度决定 token 成本,而 search-then-fetch 模式每一次都胜过"把整份文档丢给模型"。
- 测试 MCP 服务器进程内测试依然是对的,但两个 SDK 都换了门——而在握手已经不存在之后,你要断言的变成了:每一次请求都能独立成立。
- Streamable HTTP:MCP 的当前传输在会话头、GET 流与可恢复性统统被移除之后的单端点传输——每个 POST 如今必须携带什么,以及 subscriptions/listen 取代了什么。
- MCP 鉴权:OAuth 2.1 配置强制 PKCE、RFC 8707 资源指示、用于 AS 发现的 Protected Resource Metadata、以及优于动态客户端注册的 Client ID Metadata Documents——OAuth 中面向 MCP 的那一子集,以及为何 39% 的生产服务器一个都不用。
- MCP 安全反模式2025-11-25 规范逐一点名禁止的六种模式——confused deputy、令牌透传、会话劫持、通过发现的 SSRF、javascript-URL 注入、启动命令执行——每一种都给出轨迹指纹与机械修法。
- 经由 MRTR 的采样与征询服务器发起的请求已被删除:如今服务器把问题返回,客户端再带着答案重试同一次调用——而它在两程之间交出去的那份状态,是攻击者可控的输入。
- 工具毒化:经工具描述实施的提示词注入工具描述就是模型会读的提示词——当它们来自一个也接受不受信输入的下游数据源时,就变成了间接提示词注入的攻击面(CVE-2025-54136,MCPTox)。
- MCP 生产运维逐工具的 kill switch、按参数形状(而非值)记录的审计日志、从被验证的令牌 claim(而非请求体)取得的租户隔离,以及按 agent 流量规模化的限流。
- MCP 注册表与分发注册表仍处于预览阶段:用 mcp-publisher 与 server.json 清单发布、六种包类型、2026 年两项会让现有发布者失败的变更,以及为何该清单无法告诉宿主你支持哪个协议修订版。
- 2026-07-28 修订版删掉握手,等于删掉了协商、身份与服务器发起请求原本唯一的落脚点——于是这三者都改为在每一次请求上重新出现,而不再逐次声明的服务器,如今就是格式错误的。