前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片NEW
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 业务场景题真实业务问题与追问
  • 查漏补缺常见问题解析
  • AI 模拟面试NEW模拟真实面试 + 报告
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
    • AI 定制路线NEW按你的简历现排
    • AI 知识地图NEW串起全站知识点
  • 动态
    • AI 热点NEWAI 每日动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
AI 助手NEW
旧版
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片NEW
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 业务场景题真实业务问题与追问
  • 查漏补缺常见问题解析
  • AI 模拟面试NEW模拟真实面试 + 报告
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
    • AI 定制路线NEW按你的简历现排
    • AI 知识地图NEW串起全站知识点
  • 动态
    • AI 热点NEWAI 每日动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
AI 助手NEW
旧版
返回 AI 情报前线
All News · 全部资讯8626
  • 用 Claude + Headless CMS 统一内容管道
  • 如何找到真正维护中的 MCP 服务器
  • OpenAI 发布 Astra 模型:多 Agent 协同与长周期任务
  • NovelAI 自动化集成的会话数据壁垒问题
  • AI Agent 现实赋能:车联网 API 接入 MCP 生态
  • DeepMind Gemini Robotics 2:通用机器人脑的新突破
  • DeepSeek-V4-Flash 性价比秒杀:缓存命中率达 98%
  • AI 编程代理的安全发布框架:轻量级操作系统方案
  • 2026 电商自动化选型指南:n8n vs Zapier 实战对标
  • 用 AI 命令维护自研工具:系统化独立开发第 4 部
  • 谷歌地球 AI 生图功能因安全风险紧急下架
  • OpenAI 发布数学与理论计算机科学 10 项突破
  • DeepSeek V4-Flash:3040 亿参数 Agent 模型发布
  • Mission Driver:AI 任务驱动引擎的通用实现
  • 编程 Agent 的安全陷阱:Hook 不能保证安全边界
  • 代码审查成新瓶颈:AI 时代的组织适配问题
  • AGE:引力驱动的 AI 原生工程方法论
  • React 内存泄露诊断实战:从 1.4GB 到可观测性
  • 三大 AI 工程框架对比:任务级 vs 轨迹级的设计分歧
  • AI 规划系统对比:完成语义与上下文保留的权衡
  • MCP 2.0 发布:无状态协议打开新生态
  • AI Agent 架构:控制层与指导层分离设计
  • 微软承诺年底前优化 Win11 内存占用,改善 8GB 体验
  • llm-mcp-client 0.1a0 开源发布
  • OpenAI发现更多AI代理越界行为
  • 先完成再学习——AI agents改变全栈开发学习方式
  • DeepSeek V4 Flash:高性能低成本模型的实用价值
  • Claude Sonnet 5与Opus 5实战对比:如何选择合适的模型
  • DeepSeek V4-Flash编程和Agent能力重大突破
  • AI日报:ARC-AGI-3、Devin SWE等关键动态
  • 2026年最受欢迎的AI API和爬虫工具Top 10
  • AI如何赋能.NET专业工程实践
  • 开源权重模型已能对标闭源前沿模型
  • Reddit 诉讼继续:Perplexity AI 未授权爬取内容
  • smevals:轻量级模型和提示词评估框架
  • 印度应用市场转折:用户开始为应用付费
  • 生产环境 LLM 安全威胁与防护清单
  • 生产级 Agent 身份认证与权限管理
  • 提升开发效率的 Chrome 扩展榜单
  • AI Avatar 实时性能优化:流媒体传输实战
  • Google Earth AI 虚假内容问题致功能下线
  • AI 语音工具架构差异深度对比
  • Claude Agent 失控案例:主动发布恶意代码攻击真实企业
  • Google 撤回 Earth AI 卫星图生成工具
  • Gemini 2.5 Pro 和 Gemini 3 Flash 正式弃用
  • AWS Glue 数据目录新增 Agent 体验功能
  • Google Earth AI 造假工具上线即撤回
  • 虚拟 MCP 服务器:安全聚合多个工具源
  • 开源自动化平台对标:部署、安全、审计
  • 硬编码密钥的真实威胁:删除不等于修复
  • 我的调试工具反过来被 Agent 发现了 Bug
  • 已加载 51 / 8626
8.0
热点
AI SCORE
工具产品2026-08-01 07:13

MCP 2.0 发布:无状态协议打开新生态

Simon Willison#MCP#开发工具
Editor brief · 编辑速览

Model Context Protocol 2.0 引入无状态设计,标志着 MCP 规范最重要的一次迭代,催生了新工具生态。

文章思维导图
Knowledge map
拖拽缩放
Full translation

完整中文译文

Stateless MCP 重新引起了我的兴趣(并启发了 mcp-explorer 和 datasette-mcp)

周二是 Stateless MCP 日——MCP 2.0 的发布,或者按更正式但不太容易记住的名字叫 2026-07-28 Model Context Protocol 规范。这是自 MCP 首次推出以来最重大的规范变化,也重新激发了我个人对该协议的兴趣。

背景介绍:MCP 是 Model Context Protocol,描述了一种向 LLM 驱动的 Agent 框架公开新工具的标准方式。它由 Anthropic 在 2024 年 11 月引入,在 2025 年大部分时间内引发了巨大的关注热潮,后来当人们发现一个能访问终端和 curl 的 Agent 框架可以用更灵活的方式做大部分 MCP 能做的事情时,被 Skills(另一项 Anthropic 发明)所掩盖。我在 2025 年的总结文章中写过这个。

我现在又回到了 MCP。给一个 Agent 提供一个有网络访问能力的 shell 环境风险重重,需要一个强大的模型来有效驱动这样的环境。MCP 工具更容易审计和控制,足够简单,以至于在笔记本上运行的较小模型仍然能相当好地驱动它们。

新的 stateless MCP 规范也大大降低了为该协议实现客户端和服务器的复杂性。我这周就构建了三个!

演示有状态和无状态 MCP 之间区别的最好例子在 5 月 21 日的博文中,它介绍了新规范的 RC 版本。它包含了一个清晰的前后对比示例。

较旧的有状态 MCP(我将其称为"legacy 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"
      }
    }
  }
}

从客户端和服务器实现的角度来看,这干净得多。它也更适合构建可扩展的网络应用程序,因为现在你不需要维护服务器端状态来跟踪那些会话 ID,也不用担心把相同的会话路由到相同的后端机器。

我找不到一个很好的 CLI 工具来交互式地探测 MCP 服务器,所以我让 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。我获得了这个图像:

SVG of as A box on top of a B box with an arrow from A to B

README 中还有几个命令,但你能理解基本思想。我发现构建这样的 CLI 工具是熟悉规范的一种真正高效的方式,即使大部分实际代码是由 Agent 编写的。

第二个项目是 datasette-mcp,一个 Datasette 插件,为任何 Datasette 实例添加了一个 /-/mcp 端点。

这可能是我第四次尝试构建这个插件,但感谢新的 stateless MCP 规范,我终于有了一个感觉很好可以发布的版本。

它只提供三个工具:list_databases()、get_database_schema(database_name) 和 execute_sql(database_name, sql)。它们的功能完全符合你的预期——尽管 execute_sql() 目前是只读的。

把这些接入一个 Agent,或者像 ChatGPT 或 Claude 这样的聊天工具,它们就能获得针对你托管的 Datasette 实例运行 SQL 查询的能力。

到目前为止,我在我的博客的 Datasette 镜像上运行它,地址是 datasette.simonwillison.net/-/mcp。需要花一些工夫才能弄清楚如何把它附加到 ChatGPT 和 Claude 上,但我最终还是做到了。这是一篇新的 TIL,展示了确切的做法。

这是一个共享的 Claude 会话,我在其中问了它:

list tables in simonwillison.net

what has Simon said recently about MCP?

它运行了 7 个单独的 SQL 查询来找出答案。

我的 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):

Considering note count

I see the question "count the notes" is probably asking me to tally up blog notes. It could also mean published notes or drafts, so there's some ambiguity there. I'll need to figure out the total number of notes, likely by querying the count for both published notes and drafts to get a clear answer. Let's execute that count!

以及该提示的 llm logs 的输出。

一旦这个完全成熟,我考虑将其直接引入 LLM core。我还兴奋地期待在 Datasette Agent 和 llm-coding-agent 中试验 MCP。

在 MCP 首次发布的几个月后,我写了《Model Context Protocol has prompt injection security problems》,其中我指出了让最终用户混搭工具的模式把避免数据泄露攻击的责任推给了用户自己。我还没有创造"Lethal Trifecta"这个术语,但那绝对是我想表达的。

然后通用 Agent 带着任意的 shell 和 curl 访问权限出现了,这要安全得多才行!

我对 MCP 的一个越来越欣赏的地方是,相比在开放网络环境中任意执行命令(这是今天大多数通用和编码 Agent 工具的默认方式)来说,更容易推理 Agent 的能力和可能出错的地方。

当我在 LLM 之上构建敏感应用程序时,我计划大力倾向于使用 MCP。

OpenAI's accidental cyberattack against Hugging Face is science fiction that happened - 2026 年 7 月 22 日

A Fireside Chat with Cat and Thariq from the Claude Code team - 2026 年 7 月 21 日

这是 Simon Willison 在 2026 年 7 月 31 日发布的《Stateless MCP has recaptured my interest (and inspired mcp-explorer and datasette-mcp)》。

前篇:OpenAI's accidental cyberattack against Hugging Face is science fiction that happened

赞助我每月 $10,获得每月最重要的 LLM 发展的精选电邮摘要。

付钱让我给你发更少的邮件!

Original source

本文由 AI 翻译整理自 Simon Willison,原文版权归原作者所有。

阅读英文原文
上一篇
AI 规划系统对比:完成语义与上下文保留的权衡
下一篇
AI Agent 架构:控制层与指导层分离设计