1.前言
虽然这个AI已经火了很久,无论是这个智能体,还是这个MCP之类的,都是非常流行的吧,但是其实我一直想要深入的学习一下这个MCP,我之前对于这个MCP的理解仅仅停留在这个使用cursor里面的配置,结合这个高德地图,微信读书做的两个小小的工具,而且那个时候应该是4月份,也就是我们的这个MCP刚刚兴起的哪个阶段,现在这个MCP已经是非常流行的了,但是我还是决定耐着性子吧这个里面的相关的原理学习梳理一下,因为我觉得自己对于MCP的理解还不是非常的深刻,但是我知道这个MCP的重要性还是非常的。因为从这个codebuddy的最新推出来的这个IDE里面就集成了这个MCP相关的服务,所以我认为这个使用的场景,应用的市场还是非常广泛的,可能是我最近的这个自己个人的接触非常地少罢了;
教程学习来源:b站up技术爬爬虾,文章部分截图非本人原创,来自于up主的视频,侵权联系删除
2.传统方式 VS MCP
传统方式之下,我们的程序员操作这个浏览器,数据库和文件系统,以及github之类的,然后放到我们的这个AI工具客户端,比如非常流行的这个cursor,codebuddy之类的;
当我们的这个MCP出现了之后,就成为了自动化的过程,MCP可以帮助我们进行外部的工具的调用的过程,不需要我们认为的进行操作,具体的示意图如下所示:
但是实际上在我们的这个MCP servers里面是有很多的这个MCP服务的,每一个服务都是负责自己的那个部分,比如有一个是控制这个浏览器相关的,有一些适合这个文件系统相关的,有一些是和我们的数据库操作相关的,还有一些是和我们的这个Github相关的操作,这个时候我们的示意图变成了下面的这个样子:
下面的这个就是有MCP和没有MCP的这个区别:
1)没有这个MCP协议的时候,不同的这个大模型使用我们的不同的工具调用的时候这个标准可能是有所区别的;
2)有了这个MCP协议之后,所有的大模型都是通过这个协议进行工具的调用的过程,相当于是进行了这个接口的统一的过程;
3.在vscode里面如何使用MCP服务
3.1安装cline插件
我们需要在这个扩展里面去对于cline插件进行安装:
选择上面的这个free绿色的按钮,我们就会跳转到这个新的页面,千万不要选择get api key那个选项,因为那个是需要付费的现在,我已经替大家尝试了,而且不是我们国内的这个支付方式,点击这个for free直接跳转到这个cline官网,登录一下授权基本上就可以使用了;
3.2验证配置
当我们完成上面的这个操作之后,我们可以输入一个你好,这个时候我们的这个cline进行了这个相关的内容的输出,就可以证明我们的这个配置是没有问题的;
3.3关于nodejs
这个MCP本身就是运行我们的电脑上面的这个nodejs服务,因此我们需要安装这个Nodejs,我默认大家都有,没有的话可以去安装一下,如何检查自己的这个电脑上面收发存在呢,可以使用下面的这个方式进行检查:
没有的话就去官网下载,一直下一步就可以安装成功了,因此还是很简单的;
3.4使用Github的MCP服务
在下面的这个位置:
找到这个github进行安装即可,可以先按照这个star的数量进行这个MCP的排序;
3.5关于模型的选择
刚开始的时候,我选择是这个默认的模型,但是这个创建对应的配置文件的时候一直失败,花了很长的这个时间,跟我看的教程里面的内容完全不一致,因此这个时候我停止服务,重新进行这个过程;
重复额几次之后,这个提示我cline没有钱了,需要我进行充值,真的给我整笑了啊,要不是我真的就充钱了,但是这个网站不支持支付宝,哈哈哈;
我在这个github上面找到了和我一样的这个问题:这个老哥说的是可以换模型,我点进去一看,发现这个默认的模型是claude大模型,好家伙,那个是真有钱啊
最开始的时候我选择这个openrouter,是因为我看的这个教程里面的博主使用的就是这个,但是我进去之后发现这个需要付费,而且是美元,这个时候我扒拉了一下,发现了这个千问,也就选择了这个千问大模型
在千问众多的这个模型里面,我找到了这个千问code-max
然后正好在这个vscode插件里面也是存在的,所以我就选择了这个:虽然这个红色字体提示了很多这个内容,但是后来我的实践证明这个没有任何的影响,很快就把这个配置文件写出来了;
3.6新建token
在这个配置文件里面,这个token需要我们自己去账号创建;
按照下面的合格方式创建新的这个token即可:
下面的这个是填写token之后的结果
上面的这个是千问生成的,我修改的,但是这个无法生效,于是我直接使用教程里面的配置文件的内容,手敲了一下,下面的这个是可以生效的;
3.7修改配置文件
下面的这个就是教程的配置文件,你完全照抄即可,把这个token修改成为你自己的即可,其他的都不需要变化
为了大家可以直接复制,我放一下上面的这个配置文件的代码:
{ "mcpServers": { "github.com/modelcontextprotocol/servers/tree/main/src/github": { "command":"cmd", "args":[ "/c", "npx", "-y", "@modelcontextprotocol/server-github" ], "env":{ "GITHUB_PERSONAL_ACCESS_TOKEN":"*****" }, "disabled":false, "autoApprove": [] } }}
由此可见,其实这个模型生成什么不重要,我们想要调用这个MCP,最重要的就是这个配置文件,这个配置文件我们完全是可以自己去写的,这样完全是没有问题的;
相反,这个大模型写出来的这个配置文件反而可能出现一些这个潜在的问题,大家多尝试即可;
3.8查看配置生效
3.9问答测试
下面的这个就是我们的提问:这个输出的内容完全是没有问题的哈,证明我们的这个MCP就是生效的;
4.MCP本质
通过上面的过程,我们可以发现,这个MCP其实没啥神秘的,就是我们的客户端调用MCP(nodejs程序,或者是python之类的程序),这个调用的程序执行操作,返回了一些我们想要的结果,仅此而已;
除了这个cline,我们还可以使用cursor进行这个配置,本质没有区别,就是工具本身需要配置的位置有差异,但是无论如何,都是写好这个配置文件,调用服务,拿到返回的结果,这是就是全部的过程;
以上就是这个文章的全部内容,通过MCP,我们就可以命令工具帮助我们干货,例如这个例子里面的仓库的查询,其实仓库的创建之类的,这个MCP都是支持的,这个文章里面只是抛砖引玉一下,希望对于大家有所帮助;