MCP 2.0(2026-07-28规范)最大的变化:干掉状态,变成一个POST请求。Simon Willison说这让他重新对MCP产生了兴趣,一周内用AI辅助构建了mcp-explorer、datasette-mcp和llm-mcp-client三个项目。
事件回顾
7月28日,MCP(Model Context Protocol)发布了2.0规范——官方称之为"2026-07-28 Model Context Protocol Specification"。Simon Willison,这位LLM工具生态中最具影响力的独立开发者之一,在7月31日的博客中写道:"Stateless MCP has recaptured my interest"(无状态MCP重新赢得了我的兴趣)。
为什么这件事值得关注?因为Simon Willison在2025年底曾明确表示对MCP失去兴趣——他认为一个带有终端和curl的Agent就能完成MCP能做的所有事情,而且更灵活。但随着无状态MCP的发布,他改变主意了。
核心变化:从"两次HTTP请求"到"一次POST"
旧版MCP(现在被称为"legacy MCP")需要两步:
1. 初始化会话,获取 Mcp-Session-Id
2. 携带Session ID调用工具
新版无状态MCP一步到位:
POST /mcp HTTP/1.1
MCP-Protocol-Version: 2026-07-28
Mcp-Method: tools/call
Mcp-Name: search
Content-Type: application/json
{...}
这带来的直接好处:
- 客户端实现简单了:不需要管理会话生命周期
- 服务端实现简单了:不需要维护服务端状态,天然支持无状态扩展
- 运维简单了:可以用现有的负载均衡器、API网关、渐进式部署,不需要担心会话粘性
Simon Willison一周内构建的三个项目
1. mcp-explorer:MCP服务器的CLI探测工具
Simon找不到好用的MCP CLI工具,于是让Codex帮他写了一个。通过uvx即可运行,无需安装:
uvx mcp-explorer list-tools https://agentic-mermaid.dev/mcp
返回该MCP服务器暴露的所有工具列表,包括每个工具的JSON Schema。然后可以:
- describe-tool 查看工具的完整参数定义
- call-tool 直接调用工具并传入参数
- 用 | jq .svg -r 提取原始输出
2. datasette-mcp:让任何Datasette实例变成MCP服务器
这是一个Datasette插件,在数据库上添加 /-/mcp 端点,暴露三个工具:
- list_databases()
- get_database_schema(database_name)
- execute_sql(database_name, sql) (目前只读)
接入ChatGPT或Claude后,可以直接用自然语言查询数据库。Simon演示了用Claude查询自己的博客数据库:先问"列出simonwillison.net的表",再问"Simon最近关于MCP说了什么?"——Claude自动执行了7个SQL查询来回答。
3. llm-mcp-client:LLM工具的MCP集成
Simon自己的LLM CLI工具(llm.datasette.io)的MCP插件。目前是alpha版本,计划成熟后合并到LLM核心。输入"count the notes",Agent自动连接Datasette MCP服务器,执行COUNT查询,返回"151条笔记"。
为什么MCP重新变得重要?
1. 安全性:比给Agent一个Shell安全得多
Simon在博客中回顾了自己之前的担忧——给Agent一个可以访问互联网的Shell环境"风险极大"。MCP工具更容易审计和控制,而且简单到笔记本电脑上跑的小模型也能驱动。
这个判断很重要:不是所有场景都需要Claude Opus级别的Agent。如果你的工具只需要查数据库、调API,MCP提供的是一个更安全、更可控的方案。
2. 无状态化降低了门槛
HN上有评论一针见血:"我们发明了一个有状态协议,发现状态很难扩展,把状态去掉,最后变成了'就发一个POST请求'。REST那帮人已经得意洋洋地等了这一刻20年。"
无状态MCP本质上就是REST API with JSON-RPC。这意味着:
- 任何会写REST API的开发者都能在几小时内构建一个MCP服务器
- 可以用现有的API基础设施(网关、限流、监控)
- 不需要学习新的协议范式
3. MCP不等于放弃Skills
HN讨论中一个重要观点:MCP和Skills各有适用场景。Skills有渐进式披露(progressive disclosure),不会污染上下文窗口。MCP工具响应会完整进入上下文。两者互补——Skills更适合纯文本指示,MCP更适合结构化API调用。
对AI创业者的启示
AI Agent工具的下一波:MCP标准化
Simon Willison的回归是一个信号:MCP正在从"实验性协议"走向"实用基础设施"。如果MCP成为Agent工具调用的标准协议,会出现一系列机会:
- MCP服务器市场:类似GitHub Actions的生态——给各种SaaS/SaaS内部工具提供MCP接口
- MCP网关/管理平台:统一管理、监控、审计多个MCP服务器的调用
- MCP安全审计工具:专门检查MCP服务器的安全配置和调用日志
实现一个MCP服务器比你想象的简单
Simon的例子证明了:在AI辅助下,一个人一周能做三个MCP相关项目。如果你有一个API或数据库,暴露一个MCP端点只需要:
1. 实现 POST /mcp 端点
2. 在HTTP Header中声明协议版本和方法
3. 返回JSON-RPC格式的响应
仅此而已。
但要注意上下文膨胀问题
HN评论中有人指出:MCP服务器仍然会"塞满上下文窗口"。如果你的MCP工具有100个参数,即使不用也会占用token。解决方案是参考Skills的"渐进式披露"——只在需要时才加载详细信息。
