一、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

④配置客户端
在这里插入图片描述

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐