内容来自个人从视频/文章中的学习理解,欢迎大家指出其中错误
定义
MCP全称是Model Context Protocol(模型上下文协议),将LLM(大语言模型,如DeepSeek,openai等)应用程序与外部数据源和工具之间无缝集成,使得LLM不仅有以文字形式回答问题的能力,还有根据外部数据、工具进行动手的能力。
工作流程
与function calling的区别
这里首先引用一下b站博主九天Hector对于function calling的技术思路图
1.结构不同
MCP的架构是C/S架构,分为:MCP Client和MCP Server
MCP Client(如Cline,Cursor内置的client)提供与LLM/用户的交流服务,并向MCP Server发起调用。在MCP Client中注册好相关的MCP Server之后,就Client可以知道相关MCP Server提供的工具和调用方法,并呈现给LLM。
私认为可以理解为:MCP Server里的工具可以约等于function calling中的function
2.MCP 更为通用
在Model Context Protocol 的官方github仓库中可以看到,MCP可以使用typescript,java,python,kotlin实现。且由于MCP规定了协议规范,可以理解为输入和输出的格式固定(统一度量衡),因此MCP更为通用。
3.MCP是规范统一的function calling
由于MCP统一了MCP Client和MCP Server的书写规范和他们之间的通信信息格式,这方便了工具之间的引用和复用。比如说我想做一个消息订阅的MCP Server,我只需要将天气查询,微博热搜查询,抖音热搜查询的MCP Server引用到我的项目中,并继续进行查询结果整合和结果返回的开发即可。
从哪可以找到现有的MCP Server
modelcontextprotocol/servers: Model Context Protocol Servers