正在加载视频...
视频章节
这场由微软 VSCode 团队的 Harald Kirschner 带来的演讲,讨论的不是如何快速搭建一个 MCP Server,而是为什么只有“完整支持 MCP 规范”,你才能真正释放它的能力。从动态发现、工具控制到采样与有状态工具,演讲揭示了许多开发者忽略却至关重要的设计初衷。
全量MCP规范的隐藏力量:为何“跑得起来”还不够
这场由微软 VSCode 团队的 Harald Kirschner 带来的演讲,讨论的不是如何快速搭建一个 MCP Server,而是为什么只有“完整支持 MCP 规范”,你才能真正释放它的能力。从动态发现、工具控制到采样与有状态工具,演讲揭示了许多开发者忽略却至关重要的设计初衷。
为什么“能跑”的 MCP Server 还远远不够
这一段演讲一开始就直击痛点。Harald 先抛出一个问题:“who built an MCP server and it didn't work?” 现场立刻有人举手,这个开场本身就是一个真实的行业缩影。很多团队按照示例把 MCP Server 跑了起来,却很快发现行为诡异、能力受限,甚至难以调试。
他明确指出,这些问题往往不是实现错误,而是只实现了“最小可用子集”。基础教程已经覆盖了 schema、消息格式、最简单的工具调用,但 MCP 的设计目标并不只是“让模型能调用你”。如果你只实现了表层能力,模型就只能表现得像一个受限的 API 客户端,而不是一个真正的协作代理。
Harald 用一句话点明主题:“we're here to commiserate on how to actually build with the full spec.” 这场分享不是教你入门,而是解释为什么完整规范才是 MCP 真正的价值所在。
工具不是静态清单:被忽视的动态发现能力
在谈到 tools 时,Harald 特别强调了一个被大量忽略的能力:动态发现(dynamic discovery)。很多开发者把 MCP 的工具支持理解为“提前声明一组函数”,然后等待模型调用。但他指出,规范本身并不是这样设想的。
在演讲中他提到,“that spec has dynamic discovery built in”,也就是说,工具的可用性本身是上下文相关、可变化的。模型并不是面对一个永远不变的工具列表,而是可以随着状态、用户操作或外部条件变化,看到不同的能力暴露。
这背后的设计意义非常现实:它允许开发者把用户控制、安全边界、资源状态直接编码进工具可见性中。Harald 在举例时提到“these are all user controls”,强调 MCP 并不是要让模型无所不能,而是让模型在合适的时间,看到合适的能力。这种设计,比单纯的权限校验更贴近真实产品需求。
Sampling:不是每一次调用都该你来决定
在中段,Harald 抛出了另一个让现场停顿的问题:“Sampling. Who has heard about sampling?” 这个能力在很多 MCP 实现中完全缺席,但它却是规范里非常关键的一环。
他解释,采样并不只是模型内部的随机性,而是 MCP 允许客户端请求“由语言模型执行的一次运行”。换句话说,并非所有逻辑都必须由 Server 硬编码完成,有些决策可以安全地交还给模型来探索。
这一点的价值在于,它为复杂交互提供了弹性空间。Harald 特别提到,“one run via the LM from the client”,强调这是一个明确、受控的机制,而不是放任模型自由发挥。忽略采样能力,意味着你把 MCP 降级成了一个确定性 RPC 系统,错失了与语言模型协作的核心优势。
从无状态到有状态:工具之上的下一层抽象
在演讲后半段,Harald 把视角从单次调用,拉到了更长时间尺度。他提到规范的最新演进已经开始讨论“statefulness in the tools on top”。这是一个很多开发者下意识回避的话题。
传统工具调用往往被设计成无状态的:输入、输出、结束。但在真实应用中,许多能力天然具有生命周期,例如会话、编辑流程、分阶段操作。MCP 并没有禁止这种模式,相反,它正在为“有状态工具”提供结构化支持。
Harald 的核心提醒是,如果你只把 MCP 当作一次性调用接口,就会不断在应用层打补丁;而当你理解规范对状态的支持时,很多复杂逻辑可以自然地落在 MCP 的设计范围内。这也是他反复强调“full MCP spec support”的原因。
总结
这场分享的价值,不在于教会你某个技巧,而在于校准你的认知:MCP 不是一个“把模型接进系统”的快捷方式,而是一套为长期演进设计的协作协议。动态发现、采样、有状态工具,这些看似“高级”的能力,其实是规范的本意。如果你正在构建 MCP Server,这场演讲最大的启发或许是:不要急着问模型能做什么,先问问自己,是否真正尊重了这份规范的完整设计。
关键词: MCP规范, Model Context Protocol, 动态发现, Sampling, 有状态工具
事实核查备注: 演讲者:Harald Kirschner(Microsoft / VSCode);视频标题:Full Spec MCP: Hidden Capabilities of the MCP spec;提及的技术概念:MCP spec、tools、dynamic discovery、sampling、statefulness;引用原话包括“who built an MCP server and it didn't work?”、“if you go with full MCP spec support”、“Sampling. Who has heard about sampling?”、“statefulness in the tools on top”。