先说结论, 我认为MCP并不是一个好的解决方案
MCP直觉上和Function Tool 以及 ReAct, ToolUse 几乎是一致的:
现在的解决方案是什么?
抽象出了三种主要的交互类型:
- Prompt: 主要是作为Prompt模板
- Tool: 可以被调用的函数
- Resource: 各种可以被Parse为文本的资源
其中Prompt主要是为了Claude Desktop准备
Resource和Tool没有本质的区别, 其实最终都是一个功能函数的调用.
在之前已经比较成熟的方案是什么? FC以及ReAct.
那么Claude有什么区别呢? 现在还没有进行抓包, 还不知道claude对于上下文的处理是不是还像ReAct那么丑陋, 需要巨大的上下文, 以及连续的请求.
所以我认为本质上MCP是提供了一个Proxy/SideCar 的 IDL, 将函数定义和函数调用分开.
LLM Client只和Proxy进行交互, Proxy根据LLM Client所需要的调用, 进行Remote Call
END
MCP本质上只是一个工程方案, 而且从现在的代码来看, 甚至称不上是一个优雅的方案
就现阶段而言, 我不认为MCP能够称之为是一个: protocol
, 本质上就是Proxy + Function Call
Claude最近一直再发力, 对于已经很久没有动静的产业届来说, 这不是一个好消息