无状态 MCP 2.0 发布:Simon Willison 重燃兴趣并推出三款新工具
评分
77无状态 MCP 的规范细节、前后对比以及三个新工具均为首次系统性呈现,信息增量高。
作者提供了可直接运行的命令、HTTP 示例与真实会话,技术内容严谨清晰。
mcp-explorer 等工具和 TIL 教程可被开发者立即采用,降低接入 MCP 的门槛。
针对 2026-07-28 新规范发布后的及时实践反馈,时效性强。
Simon Willison 是 MCP 生态重要参与者和 Datasette 作者,信源具有高可信度。
基础分 85.5 × T2 信源权重 ×0.9 = 77
精选线 70已入选精选
精选理由
内容来自 MCP 生态核心开发者的一线实践,包含新规范解读、代码示例与安全观点,信息密度高。
AI 点评
「作为 MCP 生态的早期布道者和 Datasette 作者,Simon Willison 的这次转向很有信号意味:无状态规范让工具接入门槛大幅降低,也让我更看好 MCP 重回主流 Agent 工具协议。对正在做 Agent 基础设施或 LLM 应用安全设计的人来说,他给出的三个工具和安全性观点都值得直接参考。」
速览
MCP 2.0(2026-07-28 规范)引入无状态调用,将原本需要两次 HTTP 请求、维护会话 ID 的流程简化为一次请求,显著降低客户端与服务器实现复杂度。Simon Willison 由此重燃对 MCP 的兴趣,并发布 mcp-explorer、datasette-mcp 与 llm-mcp-client 三款工具。他还认为,相比开放 shell 与 curl 的通用 Agent,MCP 工具更易审计和控制,更适合构建敏感应用。
- 无状态 MCP 2.0(2026-07-28 规范)将工具调用简化为一次 HTTP 请求,不再需要会话 ID 和服务器端状态。
- Simon Willison 用 mcp-explorer、datasette-mcp 和 llm-mcp-client 三个项目验证新规范。
- datasette-mcp 可让 ChatGPT/Claude 对 Datasette 实例执行只读 SQL 查询。
- 他认为相比开放 shell/curl 的 Agent,MCP 工具更容易审计,更安全可靠。
正文
星期二正是无状态MCP日——即MCP 2.0的发布,或者用更正式但更难记的名字来说,是2026-07-28版Model Context Protocol规范。这是MCP规范自首次发布以来最重大的一次变更,也重新点燃了我对这套协议的个人兴趣。
背景补充:MCP即Model Context Protocol(模型上下文协议),描述了一种向基于LLM的智能体框架暴露新工具的标准方式。它由Anthropic于2024年11月推出,在2025年大部分时间经历了巨大的关注激增,之后便有些被Skills(Anthropic的另一项发明)所掩盖,因为情况越来越明显:一个能访问终端和curl的智能体框架,可以用更灵活的方式完成MCP的大部分工作。我在2025年度回顾中写过这件事。
我现在重新回归MCP。给智能体一个能访问互联网的shell环境充满风险,而且需要一个能有效驾驭这种环境的强大模型。MCP工具更容易审计和控制,而且足够简单,即使是运行在笔记本上的较小模型也能比较好地使用它们。
新的无状态MCP规范还大大降低了为协议实现客户端和服务器的复杂度。本周我就构建了三个这样的东西!
无状态MCP带来了哪些便利
介绍新规范RC的这篇5月21日博客文章,最清晰地展示了有状态与无状态MCP之间的区别。其中包含一个明确的改进前后示例。
较旧的有状态MCP(我将其称为“传统MCP”)需要两个HTTP请求——第一个用于初始化会话并获取Mcp-Session-Id,第二个才真正调用工具:
POST /mcp HTTP/1.1
Content-Type: application/json
{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2025-11-25",
"capabilities": {
},
"clientInfo": {
"name": "my-app",
"version": "1.0"
}
}
}
POST /mcp HTTP/1.1
Mcp-Session-Id: 1868a90c-3a3f-4f5b
Content-Type: application/json
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "search",
"arguments": {
"q": "otters"
}
}
}
新的无状态方式只需一个HTTP请求,如下所示:
POST /mcp HTTP/1.1
MCP-Protocol-Version: 2026-07-28
Mcp-Method: tools/call
Mcp-Name: search
Content-Type: application/json
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search",
"arguments": {
"q": "otters"
},
"_meta": {
"io.modelcontextprotocol/clientInfo": {
"name": "my-app",
"version": "1.0"
}
}
}
}
从客户端和服务器端实现的角度来看,这都干净得多。它也更适合构建可扩展的Web应用,因为现在无需维护服务器端状态来跟踪那些会话ID,也不用担心将同一会话路由到同一后端机器。
mcp-explorer
我找不到一款能交互式探查MCP服务器的好用CLI工具,于是让Codex帮我构建了一个。
mcp-explorer就是这个成果。它是一个无状态Python CLI工具,所以你甚至无需安装即可试用——它可以配合uvx使用,如下所示:
uvx mcp-explorer list https://agentic-mermaid.dev/mcp
这会查询Ade Oshineye的agentic-mermaid.dev演示MCP。上述命令返回以下工具列表:
execute(code: string, timeoutMs?: integer) - Execute Mermaid SDK code
Run JavaScript in an isolated sandbox; return a value.
describe_sdk(family: string, detail?: string) - Describe Mermaid SDK operations
Return version-matched mutation operations for one diagram family.
render_svg(source: string, options?: object) - Render Mermaid as SVG
Render a Mermaid source string to themeable SVG. Returns { ok, svg }.
render_ascii(source: string, useAscii?: boolean, targetWidth?: integer, options?: object) - Render Mermaid as text
Render a Mermaid source string to text. Returns { ok, text }.
render_png(source: string, scale?: number, background?: string, fitTo?: object, options?: object) - Render Mermaid as PNG
Rasterize a Mermaid source string to PNG. Returns { ok, png_base64 }.
...
然后检查某个工具:
uvx mcp-explorer inspect render_svg
这会输出大量信息,包括输入和输出的JSON schema。
调用该工具并传入参数:
uvx mcp-explorer call \
https://agentic-mermaid.dev/mcp \
render_svg \
-a source 'graph TD; A-->B' \
-a options '{"padding":24}'
返回结果:
{"ok":true,"svg":"<svg xmlns=\"http://www.w3.org/2000/svg\" width=...
若只想获取原始SVG,可尝试在该命令后加上| jq .svg -r。我得到了这张图片:
README中还有几个其他命令,但你已经明白大致用法了。我发现,即使大部分代码由智能体编写,亲手构建这样的CLI工具也是熟悉规范的一种非常高效的方式。
datasette-mcp
第二个项目是datasette-mcp,这是一个Datasette插件,可为任何Datasette实例添加/-/mcp端点。
这大概是我第四次尝试构建这个插件,但多亏了新的无状态MCP规范,我终于有了一个适合发布的版本。
它只提供三个工具:list_databases()、get_database_schema(database_name)和execute_sql(database_name, sql)。它们做的事正如你所预期——不过execute_sql()目前是只读的。
将这些接入智能体,或接入ChatGPT或Claude等聊天工具后,它们就能针对你托管的Datasette实例运行SQL查询。
目前我正把它运行在我博客的 Datasette 镜像上,地址是 datasette.simonwillison.net/-/mcp。琢磨了一番才弄明白如何把它接入 ChatGPT 和 Claude,不过最后还是成功了。这是 一篇新的 TIL,里面详细介绍了具体做法。
这是 一段共享的 Claude 会话,我在其中提问:
列出 simonwillison.net 中的表
然后:
Simon 最近关于 MCP 说了什么?
它运行了 7 条独立的 SQL 查询才得出答案。
llm-mcp-client
我的 LLM 工具早就该有一个官方的 MCP 集成了。新的 alpha 版插件 llm-mcp-client 正是我为此做的尝试:
llm install llm-mcp-client
llm -T 'MCP("https://datasette.simonwillison.net/-/mcp")' 'count the notes'
这是输出(包括推理痕迹,我正在使用 LLM 0.32rc2):
正在统计笔记数量 我看到“统计笔记”这个问题可能是在要求我汇总博客笔记的数量。也可能是指已发布的笔记或草稿,所以存在一些歧义。我需要弄清楚笔记的总数,很可能要通过查询已发布笔记和草稿的数量来得出明确答案。让我来执行这个统计! 共有 151 条笔记。
以及该提示对应的 llm logs 的输出。
一旦这个功能完全成熟,我考虑直接把它整合进 LLM 核心。我也很期待在 Datasette Agent 和 llm-coding-agent 中尝试 MCP。
MCP 是一种更安全的构建智能体方式
MCP 发布几个月后,我写了 《Model Context Protocol 存在提示注入安全漏洞》,文中指出,让终端用户自行混搭工具这种模式,将避免数据外泄攻击的责任推给了用户自己。那时我还没有提出 “致命三角” 这个概念,但我心里想的正是它。
后来出现了拥有任意 shell 和 curl 访问权限的通用智能体,这让安全保障变得困难得多!
我逐渐体会到 MCP 的一个优点:相比在开放式网络环境中执行任意命令(这是当今大多数通用智能体和编程智能体工具的默认方式),基于 MCP 更容易推演智能体的能力边界以及可能出问题的地方。
在基于 LLM 构建敏感应用时,我打算更多地采用 MCP。
标签:projects、ai、datasette、mermaid、generative-ai、llms、llm、anthropic、model-context-protocol
相关条目
89
精选OpenAI研究:AI正在重新定义工作边界
如果你关心AI对实际工作的影响,这篇研究不容错过。它不讨论理论,而是用数据展示ChatGPT用户如何使用AI扩展自己的任务范围,这对HR、管理者以及每个希望提升技能的职场人都有直接启发。
87
精选OpenAI CFO 分享构建 AI 原生财务职能的五大经验
作为编辑,我认为这篇文章的价值在于它来自 AI 领军企业的财务一把手,而非外部咨询机构,因此更具实践参考性。推荐给财务数字化负责人、CFO 以及对 AI 转型感兴趣的从业者阅读。
87
精选智能体AI时代下的科学计算:OpenAI发布新领域报告
这份报告是当前AI agent热潮中最务实的应用分析之一,尤其适合计算生物学和药物研发领域的从业者阅读。它回答了“AI agent除了写代码还能干什么”这个关键问题,直接展示了在复杂科学计算中的生产力提升。
87
精选Real World VoiceEQ:量化语音AI的人类自然度
值得关注的是,这个基准真正聚焦'人类自然度'这个软指标,而不是传统的语音识别率或MOS评分。对从事语音合成、语音克隆或语音交互的团队来说,这是一个非常实用的参考工具,可以快速定位模型在情感、韵律等层面上的不足。不过目前支持语言有限,期待后续扩展。
85
精选OpenAI 推出AI时代记分卡:衡量投资回报的新方法
这篇博文直击当前AI行业的软肋——如何量化投入产出。对于正在或计划大规模部署AI的企业决策者而言,它能帮助避免盲目跟风。我个人建议结合自身业务场景尝试定义“有用工作”,避免指标设计流于形式。
85
精选代理时代如何管理AI投资:聚焦每美元有用功与高价值工作流
这篇文章对正在大规模部署AI代理的企业尤为重要。它提醒我们:单纯盯着API价格下降会陷入误区,真正要管理的是每单位工作的投资回报率。建议CTO和CFO联合阅读,并在内部建立量化评估机制。
85
精选设计能跟上AI的组织:组织延迟成为最大障碍
这篇文章真正值得关注的是提出了一个被忽视的瓶颈:技术再强,组织跟不上也是白搭。对CTO、CIO和转型负责人来说,这是比技术选型更重要的思考框架。
84
精选Ruff v0.16.0 发布:默认规则从59条激增至413条,CI工作流需关注
对于 Python 开发者来说,这是一个不容错过的更新信号。Ruff 的默认规则大幅增加意味着我们不能再忽视代码中潜在的问题,而 AI 修复工具正好可以降低升级成本。尤其值得关注的是 Astral(OpenAI)正在将 AI 编码能力与静态分析工具深度整合,这可能是未来工程实践的常态。