前言
最近看到很多文章都在谈mcp,但是很多文章都会给人一种感觉------看了,也好像啥也没看。本质上还是没懂,今天我们一起来学习下啥是mcp,让我们在一个极短的时间内,以说人话的方式,快速吃透它,让它为您所用。
起源
随着ai大模型的逐步崛起,各大ai大模型都已经变得非常厉害,它拥有很多知识,能写文章、能写代码、能识图。但是它们有一个局限性,就是在自己的圈子里很厉害,出了这个圈子啥也干不了。
啥意思? 给你举一个例子您就懂了。
-
比如,在我们的电脑上有一个文件夹,里面放着开发相关的资料,你可以轻易的读取和修改这里的资料,但是对于ai来说就很为难,因为它无法直接读取、修改你的文件。于是,你不得不,手动复制粘贴后告诉ai,是不是很麻烦
-
又比如,你有一个项目的原型设计放在
figma
上的,你可以自己拿着它做开发设计,但是ai也看不了;于是你只能,截图的方式告诉ai你的设计 -
再比如,在你电脑的本地运行这一个
mysql
数据库,对你来说要查找users
表里一个叫张三
的用户非常easy,但是ai它无法直接读取你的数据库。
看到了吧~,说起ai很厉害,但是一遇到具体点的事,ai
还得靠人,本质上就是大模型虽然智商很高,但是没有自己的手足,很多东西落不了地。
在没有mcp
的情况下,为了解决上面的问题有两种办法:
- 人工处理(比如手动复制粘贴,很繁琐)
- 使用大模型的一个叫函数调用的功能(但是每次都要针对某个大模型做定制,存在大量重复开发的问题)
在这种情况下,Anthropic
公司,也就是在代码编写方面拥有最强大模型Claude 3.7 sonnet
的那家公司提出了mcp
的概念。
为了解决这种混乱的局面,制定了mcp
协议,统一ai大模型与各种外部工具的通信方式
原理
这里大致说下原理,首先mcp
是一种协议 ,既然是一种协议它其实没什么神秘的,和我们常说的http
协议这些常见协议没有什么不同,只不过它是用于ai大模型与外部工具通信的协议
另外,它的是一个client和server端通信的协议,server端提供具体的服务,这是不是和我们熟悉的http差不多呢,下面是运行交互的图,你看一眼就明白了。
这里着重说明下,通常我们在使用时是在一个工具里面使用比如cursor
、windsurf
、vscode
里,在这些工具里使用时,本质是同时整合了ai大模型和mcp client端的。
mcp server
目前官方为python、typescript、java、c#都提供了mcp sdk,直接集成去写也比较简单。限于篇幅,就不展开了,如果您比较感兴趣,可以到[这里]看看(modelcontextprotocol.io/introductio...)
目前市面上,大部分mcp
的server都是通过python
或者typescript
写的。你想用mcp也不用自己去从头开始开发,因为大部分常用功能,已经有人开发好了。
去哪里获取mcp server呢? 主要有两个:
- mcp.so/ 非常全啊,目前显示有4880个啦
- mcp.composio.dev/ 这里要少一点,但是如果你使用cursor、windsurf会非常友好,它提供命令行直接复制运行就装上了很省事啊。
实操
前面说了那么多,总算来到实战了。说了那么多理论,那还不是为了我们更好的理解然后使用嘛,为了方便说明,我这里以windsurf
演示说明
PS: 如果在
cursor
中安装更简单。如果你使用的是vscode
可以通过cline
插件去体验安装,安装好后您可以看到一个mcp市场直接搜就行,也支持手动安装。
step1: 打开上面我们提供的任意一个mcp server网站,比如**mcp.so/** 然后搜索我们需要的mcp server名,比如这里我需要安装一个playwright
------它是一个自动运行浏览器的mcp server.
step2:
- 点击进去后,切换到content tab,
- 然后下拉找到对应的example config位置,复制mcpservers 内部的这个json参数备用。
- 然后打开你的编辑器我这里打开的是windsurf(你打开你的编辑器找到对应配置位置就行) 在windsurf中打开聊天框,下面有一个类似锤子的按钮,点击它然后在配置文件中,把你第二部分的复制内容粘贴进行,然后点击聊天按钮下的一个刷新按钮就行,激活以后可以看到当前有几个mcp server,并且可以看到每个mcp下有哪些工具。
好啦现在你已经安装完毕了,剩下的事你就可以直接在聊天框里告诉ai要做什么事,然后ai会决定什么时候使用mcp server的
PS: 大部分mcp
的安装都非常简单,就是类似复制上面的配置json,粘贴,然后保存的事;要么就是一个命令行,直接粘贴到终端运行就行了。
最后,快去发现你想要的mcp server并安装它吧。