Skip to content

搞英语 → 看世界

翻译英文优质信息和名人推特

Menu
  • 首页
  • 作者列表
  • 独立博客
  • 专业媒体
  • 名人推特
  • 邮件列表
  • 关于本站
Menu

MCP 没有必要

Posted on 2025-04-28

我想不出MCP存在的任何强有力的技术理由。有很多微弱的技术原因,也有很强的社会学原因。讽刺的是,我仍然强烈地感到这是必要的。我写这篇文章是为了强迫自己理清自己的想法,并听取其他人的意见。

误解:MCP 不进入提示

您绝对可以直接将 MCP 工具声明中的 JSON 粘贴到提示中。它会起作用,而且可以说比使用 OpenAPI 做同样的事情更好。但它是 JSON,是一种非常易于解析的结构化信息,并且大多数法学硕士都接受过使用某些类似 XML 的变体进行函数调用的培训。

LLM 工具声明可以如下所示:

  • 原始 MCP/OpenAPI JSON
  • 格式化为 XML
  • 使用调用 API 的工具(例如OpenAI 、 Ollama )
  • 格式化为 Python 代码(例如smolagents )

MCP 并不关心您的提示符是什么样子。这不是 MCP 的功能。

工具库

MCP 有两个主要功能:

  1. 广告工具
  2. 调用工具

它还执行许多其他操作(日志记录、采样等),但工具调用是最常实现和使用的部分。

您可以使用 OpenAPI 完成同样的事情:

  1. 广告工具:始终将openapi.json文件发布在同一位置
  2. 调用工具:OpenAPI标准化了这部分

这比您想象的还要容易。 OpenAPI 操作有一个operationId ,通常设置为服务器 API 的函数名称。

Steelman:OpenAPI API 过于细化

这是一个很好的论点,至少从表面上看是这样。以下是代表异步任务的典型 API 示例:

图 TD c((client))–>start_job c–>poll_status c–>get_result

您可以将所有这些包装到一个 MCP 操作中。一次操作比 3 次操作更好,因为它消除了 LLM 表现错误的可能性。

图 TD 子图 MCP c end client((client))–>cc[do_job]–>start_job c–>poll_status c–>get_result

好的,但为什么一定是 MCP?为什么不能使用 OpenAPI 做同样的事情?

Steelman:MCP 针对 LLM 进行了优化

是的,大多数 API 不能直接在 LLM 提示中正常工作,因为它们的设计或记录不完善。

MCP 生态系统中有用于构建服务器和操作、增强文档等的出色工具。因此从表面上看,MCP 似乎是 API 设计和文档方面的进步。

但话又说回来,为什么 OpenAPI 不能同样进步呢?没有技术原因。

Steelman:MCP 是一种社会学进步

事情是这样的。您可以使用 MCP 完成的所有操作也可以使用 OpenAPI 完成。但..

  1. 这还没有完成
  2. 有太多方法可以做到

为什么不做呢?在异步 API 的示例中,操作可能需要很长时间,因此它是异步 API。没有任何技术原因可以解释为什么 API 不能花费很长时间。事实上,MCP通过服务器发送事件(SSE)来实现工具调用。 OpenAPI可以代表SSE。

我们不这样做 OpenAPI 的原因是因为工程团队已经习惯于密切关注操作延迟。如果 API 操作花费的时间超过几百毫秒,则应该有人在图表上发现这一点并诊断原因。造成这种情况的原因有很多,但从根本上来说是社会学的。

SSE 是一项较新的技术。当我们测量 SSE 操作的延迟时,我们测量第一个字节的时间。所以它是 100% 可解决的,但异步 API 更熟悉,所以我们就这样做。

Steelman:一种做事方式

MCP 最有力的论据是,做事的方法大多只有一种。

如果您想浪费工程团队一整天的时间,请查找任意 API POST操作并询问,“但这不应该是PUT吗?”您很快就会发现 HTTP 有很多歧义。即使事情很清楚,它们也并不总是能很好地符合我们通常的想法,因此它的实施不一致。

MCP 开放API
函数调用 资源, PUT / POST / DELETE
功能参数 查询参数、路径参数、正文、标头
返回值 SSE、JSON、网络套接字等

结论:标准化很有价值

标准主要是社会学的进步。是的,它们关注技术,但它们控制着社会如何与它们互动。 MCP 的最大原因很简单,就是其他人都在这样做。当然,您可以是一个纯粹主义者并要求 OpenAPI 足够,但是有多少客户端支持它?

大家都同意 MCP 的原因是它比 OpenAPI 小得多。 MCP 服务器工具部分中的所有内容都与 OpenAPI 中的其他内容直接同构。事实上,我可以轻松地从openapi.json文件生成 MCP 服务器,反之亦然。但 MCP 比 OpenAPI 规模小得多,而且目标明确。

讨论

  • 蓝天
  • 叽叽喳喳
  • 领英
  • 黑客新闻

原文: http://timkellogg.me/blog/2025/04/27/mcp-is-unnecessary

本站文章系自动翻译,站长会周期检查,如果有不当内容,请点此留言,非常感谢。
  • Abhinav
  • Abigail Pain
  • Adam Fortuna
  • Alberto Gallego
  • Alex Wlchan
  • Answer.AI
  • Arne Bahlo
  • Ben Carlson
  • Ben Kuhn
  • Bert Hubert
  • Bits about Money
  • Brian Krebs
  • ByteByteGo
  • Chip Huyen
  • Chips and Cheese
  • Christopher Butler
  • Colin Percival
  • Cool Infographics
  • Dan Sinker
  • David Walsh
  • Dmitry Dolzhenko
  • Dustin Curtis
  • Elad Gil
  • Ellie Huxtable
  • Ethan Marcotte
  • Exponential View
  • FAIL Blog
  • Founder Weekly
  • Geoffrey Huntley
  • Geoffrey Litt
  • Greg Mankiw
  • Henrique Dias
  • Hypercritical
  • IEEE Spectrum
  • Investment Talk
  • Jaz
  • Jeff Geerling
  • Jonas Hietala
  • Josh Comeau
  • Lenny Rachitsky
  • Liz Danzico
  • Lou Plummer
  • Luke Wroblewski
  • Matt Baer
  • Matt Stoller
  • Matthias Endler
  • Mert Bulan
  • Mostly metrics
  • News Letter
  • NextDraft
  • Non_Interactive
  • Not Boring
  • One Useful Thing
  • Phil Eaton
  • Product Market Fit
  • Readwise
  • ReedyBear
  • Robert Heaton
  • Ruben Schade
  • Sage Economics
  • Sam Altman
  • Sam Rose
  • selfh.st
  • Shtetl-Optimized
  • Simon schreibt
  • Slashdot
  • Small Good Things
  • Taylor Troesh
  • Telegram Blog
  • The Macro Compass
  • The Pomp Letter
  • thesephist
  • Thinking Deep & Wide
  • Tim Kellogg
  • Understanding AI
  • 英文媒体
  • 英文推特
  • 英文独立博客
©2025 搞英语 → 看世界 | Design: Newspaperly WordPress Theme