有用点赞收藏关注,有用继续完善
这篇文档是给有初级程序员看的文档:
1、MCP协议只是个特定的json格式,就像前后端联调约定一个请求和响应特定格式数据一样,写前后端的同学不是要经常约定字段吗,道理是一样的,MCP就是大家公认的特定的json格式。
2、官网提供了实现MCP Server的依赖库,如下,但是并不是要使用官方提供的依赖库去实现一个MCP Server,才叫一个MCP Server,只是官网的依赖封装了很多东西,包括参数校验,权限校验等等功能。但如果你自己不使用官方依赖,自己实现一个MCP Server,只要你这个MCP Server响应的数据格式跟官网一样,也叫一个MCP Server。
官方依赖
使用官网的依赖的写法
3、组成MCP协议的主体,一般分成 MCP Client(有的叫MCP Host)和 MCP Server,所谓的MCP协议(特定的json格式),就只是存在于 MCP Client 和 MCP Server 当中。
MCP Client 一般都是如下东西:
MCP Server大家应该看其他博客都知道,就是工具的集合体,这个集合体是怎么实现的不重要,是什么语言写的不重要,是否使用官网的依赖实现的也不重要。重要的是它提供了两个接口给到MCP Client端。第一个接口是返回我这个MCP Server有什么工具,也就是工具列表。第二个接口是MCP Client通过传参给MCP Server需要调用哪个方法,调用方法的时候传递什么参数。只要实现了这两个关键接口和握手接口,那就是MCP Server,符合了MCP协议。
4、网上的教程基本上都是说怎么在Cline或者Cursor怎么实现一个MCP Server,怎么对接一个MCP Server。但是你完全脱离他们,自己实现client和server,client和server之间的通讯协议是特定MCP Json格式数据,那也叫遵循了MCP协议。
5、看下面的流程图,MCP 协议仅仅存在于下面红色框,另外两边都不是。 
依照上面的流程,我打印了MCP协议启动的时候,Cline和MCP server发起了那些请求,如下
6、工具调用阶段的json格式
7、MCP client不是一定要存在,MCP client也可以是一个模型,这个模型输出的东西就是上面红色框的json。也可以是一个人,例如你可以在命令行直接写一个红色框json直接调用MCP Server,如下图所示,这时候你就是所谓的MCP Client。
红色框是cline发给MCP Server
蓝色框是MCP Server发给cline