0%

MCP

简介MCP(Model Context Protocol)

MCP是OpenAI在24年提的一种协议,主要是用于解决LLM和不同外部tools没有统一通信方式的问题。具体而言,以往LLM开发会遇到一些问题:

  • 重复劳动:LangChain、LlamaIndex等生态中引入tools需要用各自的方法重复定义,工具开发者需要分别适配
  • 语义不一致:tools输入输出格式规范不统一,LLM容易出错
  • “工具发现”不够方便:需要手动在prompt里给LLM提供工具的名称和参数信息等(ad-hoc)
  • 隐私问题:典型案例如用户不可能同意将包含隐私信息的文件上传云服务器,于是RAG之类就没法简单地完成

MCP则提供一种中间层将这些tools/context/…与LLM隔开,其模型如下:

  • Server:有限度、可重用地暴露工具接口。Server可以用任意方式开发,然后需要开发者手动填写一份Server列表config.json
  • Client:一对一地维持与Server的连接(OpenAI或其他如LangChain等提供了直接支持。LangChain的支持方式其实比较简洁,就是基于原本就有的Tools改的)
  • Host:管理各个Client,汇总列表给LLM等

image-20250915201029491

于是部分地解决了以上的问题:

  • tools独立开发一次即可,最终的config.json格式都一样,各种生态都支持,各种承认MCP的LLM厂商也都支持
  • 格式自然也被MCP统一了
  • Host直接向context注入统一格式的tools,一方面不需要再重复手写Prompt,另一方面也方便LLM做针对性的Finetuning
  • Server可以运行在任何地方(比如用户本地、内网、etc),只要MCP Client能访问到即可。用户可以完全控制数据。

不过MCP尚未完全成熟,也有一些性能或者安全性的问题还在研究。

欢迎关注我的其它发布渠道