MCP理解笔记及deepseek使用MCP案例介绍、Cursor创建MCP介绍、python制作MCP工具
全称模型上下文协议来源由Claude母公司Anthropic于24年底开源发布简介AI大模型的标准化工具箱,大模型可以利用这些工具与外界互动。
文章目录
一、MCP介绍
-
全称
模型上下文协议 -
来源
由Claude母公司Anthropic于24年底开源发布 -
简介
AI大模型的标准化工具箱,大模型可以利用这些工具与外界互动
(1)使用MCP与之前的AI比较
①之前的AI:手动截图或者复制文本,然后粘贴到AI窗口里面对话
②MCP:通过标准化协议自动化了这一步骤,MCP服务作为AI与外部工具的中间层,每个MCP服务叫做MCP Server
MCP Server通常是运行在本地的一段nodejs或python程序,有的读写本地文件、有的负责读写浏览器、有的操作git仓库等等
(2)原理
方式:通过操作系统的stdio,也就是标准输入通道调用某个MCP Server,消息格式类似如下所示:
而MCP Server收到这些消息后调用服务器访问外部功能,比较类似function call功能
(3)优点
①整合了各家大模型不同的function call的标准,整合成了一个统一的标准协议,支持市面上大部分的大模型
二、deepseek使用MCP使用案例介绍
1)开始之前准备MCP客户端
- MCP客户端方法
①Cursor Cline
②Cline:开源免费,这次以Cline为例子
③WindSurf
④Claude App - 准备步骤
①vscode插件点击安装Cline插件
②点击选择AI模型
模型提供商先选择deepseep router(因为提供免费的DeepSeek V3)
model选择
填写路由key是点击下面的,认证后自动复制
两种模式都配置上API Key,包括Plan Mode和Act Mode
③输入测试,有结果就说明配置完成了
2)安装node.js为运行服务器做准备
安装后验证是否成功
3)创建MCP Server
①进入MCP Server市场
打开可以看到MCP Server的应用市场
这里举例使用的githubMCP Server
然后可以看到步骤:
1)创建新文件夹
2)填写github token
点击创建新token
展开权限项:
①给创建仓库权限
②给编写代码权限
③查看仓库内容权限
输入token
3)输入npx命令
- 解释
npx 命令本身用于执行 npm 包中的可执行文件,而 -y 参数的作用是自动确认执行过程中的所有交互式提示(类似于 --yes 的简写)
4)保存配置文件
上面如果是Mac电脑就完成了
下面是需要针对windows系统需要做的改变
①命令改成cmd
②npx命令写到args里面
显示绿灯,表示配置成功了
然后就可以开始询问了
4)MCP Server做了什么事情
- 用三行命令解释
①json命令:Clien往MCP Server传递的参数,使用Search_repositories工具,用户是tech-shrimp
②运行时候的环境变量,github的key是xxx
③把刚才的参数使用管道服务传递给MCP Server,也就是一个node.js程序
- 番外:Github工具的tool
有创建、删除仓库,上传代码等
三、Cursor配置MCP(cursor版本至少0.47)
1)Cursor准备工作
①升级cursor到最新版本
先设置特性为early access
设置选择check for update就可以升级cursor
②查看配置
点击cursor的MCP配置,可以看到MCP是以文件的形式配置的
2)创建cursor作为Cline类似的客户端
①先创建文件夹,再在文件夹创建mcp的json文件
②可以把上面cline的配置原封不动的搬过来,然后保存
打开cursor的mcp配置看到绿灯且有个cmd窗口表示配置也就成功了
3)创建对应的MCP Server(这里演示创建的是file system)
- 进入官方MCP Server案例展示
点击后可以看到有npx的安装方式
添加到原先的json配置里面
上面是mac系统的配置,如果是windows系统则改成
如图所示就表示配置完成了
4)测试刚刚创建MCP Server 服务
注意切换到Agent模式才能使用MCP服务
开始测试
答案及设置自动使用工具,不用点击授权
同样的配置文件也可以复制到vscode的Clien配置文件里面
四、python制作MCP server工具(stdio协议)
1)环境准备(安装uv)
MCP是推荐用python uv去管理项目,这样安装项目依赖和添加mcp服务器都很方便
且uv是目前mcp管理工具中热度最高的
uv是官方去安装,图中显示的windows安装是powershell的命令
查看python版本
uv python list
选择安装python 3.13
uv python install 3.13
新建文件夹mcp_server
把这个文件夹新建称为一个python项目,指定python版本是3.13
uv init -p 3.13
安装mcp的开发安装包安装上
uv add “mcp[cli]”
再在vscode上安装python debugger和python 插件
再用vscode打开mcp_server文件夹
- 目录介绍
①.venv是python的虚拟环境
②pyproject文件定义了项目的基本信息
③main文件是基础的代码样例,右上角有个run按钮可以执行这个python文件,能打印说明这个python文件准备好了
2)编写mcp_server
在main.py填入主体代码
# server.py
from mcp.server.fastmcp import FastMCP
# 创建一个 MCP 服务器实例
mcp = FastMCP("Demo")
# 添加一个加法工具,装饰器模式,下面“将两个数字相加“是必须写的
@mcp.tool() #声明了这是一个工具
def add(a: int, b: int) -> int: #类型修饰符也是必须得写的
"""将两个数字相加"""
return a + b
# 添加一个动态问候资源
@mcp.resource("greeting://{name}") #resouce类似http的get
def get_greeting(name: str) -> str:
"""获取个性化的问候语"""
return f"Hello, {name}!"
- 说明
①int这种类型修饰符也是必须得写的
②添加一个加法工具,装饰器模式,add函数下面“将两个数字相加“是必须写的
③resouce类似http的get,为大模型提供只读数据
④加上两行代码可以让他程序可运行的程序
3)cherry studio测试mcp_server
选择AI客户端来测试一下,这里用的是cherry studio,若有感叹号,需要安装下uv和Bun
协议选择stdio
命令填写uv
参数填写,地址选择mcp_server的地址目录
有绿灯表示配置成功
这里选择Gemini模型,就可以回答问题了
4)用cursor来测试mcp_server
点击右上角设置添加mcp server
把cherry studio的配置文件复制到cursor的json配置文件里面
cursor有绿灯显示表示配置成功了
五、python制作MCP server工具(sse协议)
mcp_server这边的main.py修改下代码
服务器启动后复制地址
更改cherry studio客户端配置
六、stdio和sse的区别,streamable-http方式使用
stdio是本机启动,sse是远程使用
- streamable-http方式使用
修改客户端
同样这个cherry studio的配置也可以复制放到cursor上使用
总结
七、mcp server发布到公网
1)法一:打包成python包发布到pypi
①新建文件夹(pypi没有命名空间)
命令行切换到对应文件夹,初始化成一个python包
uv init . --package -p 3.13
uv add mcp[init]
②原先代码放到__init__.py这个python代码里面
③打包
uv build
④注册pypi账号,这里省去注册和邮箱验证步骤,去到账号设定获得api token
uv publish --token xxxxxxx
⑤配置cherry studio的mcp客户端配置
这里就可以获得json配置发给朋友使用
2)法二:sse方式部署到云服务器
①linux系统安装uv
②创个文件夹弄mcp_server的代码
③把之前的代码复制进来,sse和地址要配置上
③配置虚拟环境
uv venv
# 安装依赖
nv pip install .
# 启动命令
uv run main.py
④配置客户端
更多推荐
所有评论(0)