
[MCP系列] 之 手把手教你用Python玩转AI圈顶流MCP
近期MCP火爆AI圈,成为程序员热议焦点。本文推出Python开发简易MCP Server教程,利用uv工具搭建环境,涵盖环境准备、虚拟环境初始化、MCP工具安装及MCP Server开发全流程。开发者可借助Visual Studio Code与GitHub Copilot代理模式,轻松调用MCP服务器工具,实现AI通信。文中还分享了MCP Inspector调试方法,以及将MCP Server集
程序员圈宝子们!最近 AI 圈的顶流非 MCP 莫属啦!每天都有五花八门、覆盖各种新奇场景的 MCP 服务横空出世,看得人眼睛都花了~想要真正拿捏这个 AI 世界超重要的通信介质?那必须亲手撸一个 MCP Server 呀!别慌,今天这篇手把手教程,就照着 MCP 官网范例,带大家解锁 Python 开发 MCP Server 的正确姿势!
咱还会用超酷超新潮的 uv 搭建 Python 开发环境,分分钟码出一个简易版 MCP Server 应用。最后再把它塞进 Visual Studio Code 里,最后让 GitHub Copilot 的代理模式能丝滑调用 MCP 服务器里的定义的工具,轻松直接玩转 AI 通信!
环境准备
笔者使用的是Windows系统下使用VsCode通过Remote Explorer插件远程连接到Ubuntu服务器来开发的方式。
开始之前,请确认Ubuntu服务器上安装有如下工具:
- Git
- uv
uv是一个我最近非常喜欢的Python环境管理工具,可以快速建立虚拟环境与管理套件依赖,使用上非常方便。如果您之前没接触过,不妨参考安装指南:Installation | uv 体验下。
UV初始化Python虚拟环境
1. 列出UV支持的Python版本
$ uv python list
cpython-3.14.0a6-linux-x86_64-gnu <download available>
cpython-3.14.0a6+freethreaded-linux-x86_64-gnu <download available>
cpython-3.13.3-linux-x86_64-gnu <download available>
cpython-3.13.3+freethreaded-linux-x86_64-gnu <download available>
cpython-3.12.10-linux-x86_64-gnu <download available>
cpython-3.11.12-linux-x86_64-gnu <download available>
cpython-3.10.17-linux-x86_64-gnu <download available>
cpython-3.10.12-linux-x86_64-gnu /usr/bin/python3.10
cpython-3.9.22-linux-x86_64-gnu <download available>
cpython-3.8.20-linux-x86_64-gnu /usr/bin/python3.8
cpython-3.8.20-linux-x86_64-gnu /usr/bin/python3 -> /etc/alternatives/python3
cpython-3.8.20-linux-x86_64-gnu <download available>
cpython-3.8.2-linux-x86_64-gnu <download available>
cpython-3.7.9-linux-x86_64-gnu <download available>
这表明 uv 支持从 Python 3.7 到 3.14 的多个版本,包括最新的开发版本 3.14.0a6。您可以根据需要下载并安装这些版本。
2. 安装python环境
这里选择安装Python 3.12版本
uv python install 3.12
坐等安装完成,So easy!
3. 创建MCP服务器开发工程目录
建立工作目录
mkdir -p ~/mcp/mymcp
cd ~/mcp/mymcp
初始化python环境
uv init
初始化之后会产生以下文件:
.gitignore
.python-version
main.py
pyproject.toml
README.md
4. 测试python环境
使用以下命令第一次执行时,会增加uv venv
命令一起执行,这意味着uv
会自动帮助建立Python虚拟环境。
$ uv run main.py
Hello from mymcp!
注:执行完成后会出现.venv
文件夹,这就是虚拟环境的数据夹,后续安装的python依赖都将存放到此处,不过这个数据夹默认会被排除到Git版本控制之外。
5. 创建git仓库
为了便于管理和跟踪开发过程,观察每步执行的结果变化,建议要把git作为自己的合作伙伴。
git init -b main ; git add . ; git commit -m "Initial commit"
安装MCP开发环境
在安装uv之后,我们便可以安装MCP工具了。
1. 安装 MCP 工具
uv add "mcp[cli]"
安装完成之后,可以在.venv/bin中看到mcp相关的工具集。
- 2. 查看 MCP 工具版本
此时可以通过uv命令执行MCP工具,查看版本当前的MCP版本:
uv run mcp version
我写文章时的响应是:
MCP version 1.8.1
开发你的第一个MCP服务器
一切准备就绪,现在开始开发我们自己的MCP服务器吧。
万事俱备,终于到了最激动人心的开发环节!官方超贴心,提供了多个语言版本的MCP服务端开发SDK,Python、TypeScript、Java、Kotlin、C#、Swift都有,总有一款适合你!
找到您擅长的编程语言来开发,这里笔者以Python为例。
有兴趣的宝子们可以参考:Example Servers - Model Context Protocol
在工作目录建立一个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 personal info tool
@mcp.tool()
def personal_info() -> dict:
"""Return my personal information"""
return {
"name": "马丁解码",
"role": "攻城狮",
"location": "东大",
"skills": ["Python", "MCP", "Web Development"],
"interests": ["Programming", "AI", "Technology"]
}
# Add a dynamic greeting resource
@mcp.resource("greeting://{name}")
def get_greeting(name: str) -> str:
"""Get a personalized greeting"""
return f"Hello, {name}!"
# Start the server if this file is run directly
if __name__ == "__main__":
print("Starting MCP server on http://localhost:8080")
mcp.serve(host="0.0.0.0", port=8080)
程序代码建立了一个名为Demo
的MCP的服务器,并且透明@mcp.tool()
装饰器,定义了personal_info函数。用于获取获取个人的信息。
为便于调试,我们使用dev模式启动MCP开发的服务器
$ uv run mcp dev server.py
第一次执行需要安装 Node.js 的@modelcontextprotocol/inspector@0.7.0套件,你必须y单击程序继续执行。如下是正常运行的结果。
$ uv run mcp dev server.py
Starting MCP inspector...
⚙️ Proxy server listening on port 6277
🔍 MCP Inspector is up and running at http://localhost:6274🚀
New connection
Query parameters: [Object: null prototype] {
command: 'uv',
args: 'run --with mcp mcp run server.py',
env: '{}',
transportType: 'stdio'
}
Stdio transport: command=/usr/local/bin/uv, args=run,--with,mcp,mcp,run,server.py
Spawned stdio transport
Connected MCP client to backing server transport
Created web app transport
Set up MCP proxy
New connection
Query parameters: [Object: null prototype] {
command: 'uv',
args: 'run --with mcp mcp run server.py',
env: '{}',
transportType: 'stdio'
}
Stdio transport: command=/usr/local/bin/uv, args=run,--with,mcp,mcp,run,server.py
Spawned stdio transport
Connected MCP client to backing server transport
Created web app transport
Set up MCP proxy
这时表面你已经成功启动了一个MCP Inspector工具了,这是一个用于调试MCP服务器的页面,您可以http://localhost:6274打开这个网页,并对你刚才写的MCP Server ( server.py) 进行测试。
注:如果您的服务器环境没有web浏览器,您可以替换localhost为您的服务器的IP,然后打开它。
笔者的服务器IP是192.168.1.4,打开http://192.168.1.4:6274/的内容如下:
可以在inspector中按照如下步骤测试您写的MCP Tools:
1. 点击Connect让 MCP Inspector 连线到您的 MCP 服务器
2. 点击Tools,然后点击List Tools列出所有的工具
3. 点击personal_info工具,然后点击Run Tool按钮,执行成功后可以看到个人信息正确返回
4. 别忘了看看History区块,里面记录着 MCP Inspector 与 MCP Server 之间的通讯记录。
安装MCP Server到VsCode编辑器
首先,要先帮助Visual Studio Code 安装GitHub Copilot套件,这部分在前面的章节就已经安装过。同时安装 GitHub Copilot,也自动安装GitHub Copilot Chat补充套件,所以不用手动安装 GitHub Copilot Chat 补充套件。
在工作目录下创建文件.vscode/mcp.json,然后配置为如下内容:
{
"servers": {
"demo": {
"type": "stdio",
"command": "uv",
"args": [
"run",
"--with",
"mcp[cli]",
"mcp",
"run",
"~/mcp/mymcp/server.py"
]
}
}
}
配置完成后,可以看到servers下的节点增加了Start的按钮,点击既可以启动改MCP服务
此时 在GitHub Copilot的聊天视图切换到 Agent 模式,点击工具下图标:
如果在下拉列表看到我们的demo服务,即表示MCP 服务已被发现启动成功。
测试您的MCP Server
在测试前,请先确保MCP Server处于running状态。
如上图,在mcp文件中,如果您看到Running字样,表示服务启动正常。
在Chat对话框中,输入如下提示:
我的名字是什么
第一次调用MCP工具会请您确认是否要真正执行该工具,请点击Continue
确认执行。
Github Copilot会自动调用Demo MCP Server的personal_info工具返回我的个人信息。
结尾
这篇文章简单扼要的让大家体验整个 MCP 的开发、安装和使用的过程,你应该举一反三,想像一下 MCP 会如何改变大家未来使用 AI 的方式!👍
参考链接
- Model Context Protocol
开始使用MCP - MCP Python SDK
MCP的Python实现 - MCP Inspector
MCP inspector 开发者工具 - uv
超好用的python包管理器
更多推荐
所有评论(0)