1. Mcp python-sdk
从链接了解MCP的python-sdk
(1) 安装uv
uv是高效的python环境管理工具
以Windows系统为例,在PowerShell中执行 powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
安装uv
安装完成后,注意在继续运行 $env:Path = "C:\Users\你的用户名\.local\bin;$env:Path"
,将uv添加到环境变量
(2) 创建一个uv管理的项目
① 通过uv查看python版本
通过运行 uv python list
可以查看当前已经安装的python版本,以及uv提供的可通过uv命令直接下载的python版本:
> uv python list
cpython-3.14.0b3-windows-x86_64-none <download available>
cpython-3.14.0b3+freethreaded-windows-x86_64-none <download available>
cpython-3.13.5-windows-x86_64-none <download available>
cpython-3.13.5+freethreaded-windows-x86_64-none <download available>
cpython-3.12.11-windows-x86_64-none <download available>
cpython-3.12.1-windows-x86_64-none AppData\Local\Programs\Python\Python312\python.exe
cpython-3.11.13-windows-x86_64-none <download available>
cpython-3.11.7-windows-x86_64-none D:\anaconda\python.exe
cpython-3.11.4-windows-x86_64-none AppData\Local\Programs\Python\Python311\python.exe
cpython-3.10.18-windows-x86_64-none <download available>
cpython-3.10.0-windows-x86_64-none AppData\Local\Programs\Python\Python310\python.exe
cpython-3.9.23-windows-x86_64-none <download available>
cpython-3.8.20-windows-x86_64-none <download available>
pypy-3.11.11-windows-x86_64-none <download available>
pypy-3.10.16-windows-x86_64-none <download available>
pypy-3.9.19-windows-x86_64-none <download available>
pypy-3.8.16-windows-x86_64-none <download available>
graalpy-3.11.0-windows-x86_64-none <download available>
graalpy-3.10.0-windows-x86_64-none <download available>
如需下载python-3.13.5,运行 uv python install 3.13.5
即可:
> uv python install 3.13.5
Installed Python 3.13.5 in 5.55s
+ cpython-3.13.5-windows-x86_64-none
② 创建项目
新建一个文件夹命名为“MCP_Server”并在PowerShell中切换到该路径,然后依次执行:
uv init . -p 3.13.5
uv add "mcp[cli]"
分别用于初始化一个uv管理的python项目,以及添加 MCP 到项目依赖
2. 编写MCP Server
以官方提供的一个简单的MCP_Server加法运算示例
在编程IDE中打开MCP_Server文件夹并切换到 main.py
,将其中的内容清除并替换为以下内容:
# server.py
from mcp.server.fastmcp import FastMCP
# Create an MCP server
mcp = FastMCP("Demo")
# Add an addition tool
@mcp.tool()
def add(a: int, b: int) -> int:
"""Add two numbers"""
return a + b
# Add a dynamic greeting resource
@mcp.resource("greeting://{name}")
def get_greeting(name: str) -> str:
"""Get a personalized greeting"""
return f"Hello, {name}!"
if __name__ == "__main__":
mcp.run(transport='stdio')
3. 在Cherry Studio中测试
首先下载Cherry Studio
(1)Cherry Studio配置
点击左下角的设置按钮,进入配置界面
① 模型服务配置
左下角设置⚙图标 → 模型服务,配置好API
② MCP服务器配置
左下角设置⚙图标 → MCP服务器 → 右上角⚠ → 安装uv和bun
- 可点击“安装”自动安装
- 手动安装地址:
(2)使用开源的MCP Server
① 搜索:Fetch
使大模型从网页中获取并处理内容
复制:
"fetch": {
"command": "uvx",
"args": ["mcp-server-fetch"]
}
在Cherry Studio → 左下角设置⚙图标 → MCP服务器 → 铅笔icon,点击后进入编辑Json页面,插入上面的内容。
确定后,fetch被添加到列表中,点击“启用”按钮,配置成功。
② 地图:Baidu
必须认证才能拿到API,但是有点慢。高德好像也有类似的可以试试
③ 浏览器自动化:mcp-playwright
先在命令行执行下面的命令,下载包:
npm install -g @executeautomation/playwright-mcp-server
复制:
"playwright": {
"command": "npx",
"args": ["-y", "@executeautomation/playwright-mcp-server"]
}
在Cherry Studio → 左下角设置⚙图标 → MCP服务器 → 铅笔icon,点击后进入编辑Json页面,插入上面的内容。
注意:在原先的mcp server后加一个英文逗号,再在后面粘贴新的
④ 搜索:duckduckgo
注意:我自己用的时候没搜索成功过
复制:
"duckduckgo-search": {
"command": "npx",
"args": [
"-y",
"duckduckgo-mcp-server"
]
}
其他操作同上。
⑤…
原理got了后面就可以随便找然后加了
(3)测试刚才编写的简易MCP Server
先切换至Cherry Studio → 左下角设置⚙图标 → MCP服务器 → 添加服务器
然后直接调用即可。
(4)把编写的MCP Server改为SSE协议
在Server的 main.py
中,更改最后的transport为sse
在Cherry Studio中,更改MCP服务器的类型为sse
运行 main.py
后,直接在Cherry Studio中与模型对话,调用即可
(5)把MCP Server发布到公网
以打包成python包上传到Pypi为例:
- 新建一个文件夹并在命令行cd到该文件夹
- 执行
uv init . --package -p 3.13.5
和uv add "mcp[cli]"
- 用编程IDE打开文件夹中的
__init__.py
文件- 保留其内容,把之前编写好的MCP Server的
main.py
的内容粘贴在原内容上 - 剪切刚才粘贴进来的
main.py
中最后一行的mcp.run()
函数,粘贴至__init__.py
原来的main函数中。 - 删除
__init__.py
原来的main函数的内容,删除"if __name__ == "__main__":
- 注意在
mcp.run()
中,transport一定是stdio
- 保留其内容,把之前编写好的MCP Server的
- 执行
uv build
打包 - 在Pypi注册并验证邮箱,然后在"Account Settings"里点击生成恢复码"generate recovery codes",保存第一行恢复码并输入。完成后点击"Add with authentication application"
- 在手机下载"Microsoft Authenticator",登录后,点击上方+ → 个人账户 → 扫描QR Code,扫描屏幕二维码,把手机上生成的验证码填写到网站
- 在"Account Settings"里下滑找到 “Add API token”,添加名字和范围,然后生成了API(只出现一次,保存好)
- 执行
uv publish --token <your api token>
,其中<your api token>
为刚才的token - 在Pypi的"your projects"中可以找到刚才上传的MCP Server
(6)使用上传到公网的MCP Server
以刚才的Pypi为例:
在Cherry Studio → 左下角设置⚙图标 → MCP服务器 → 添加服务器
命令:uvx
参数:包名【为了避免包名冲突,建议在最开始设置包名时以自己的用户名开头】