目录
-
- 1. 环境准备
-
- 1.1 安装 Deno (Ubuntu)
- 1.2 安装 Python 依赖
- 2. 创建 MCP 客户端代码
- 3. 运行代码
- 4. 预期输出
- 5. 工作原理
下面将介绍设置和使用 PydanticAI 的 MCP (Model Context Protocol) Python 服务器,实现在隔离环境中运行 Python 代码。
1. 环境准备
1.1 安装 Deno (Ubuntu)
# 更新系统包
sudo apt update
# 安装 unzip 工具(Deno 安装需要)
sudo apt install unzip
# 下载并安装 Deno
curl -fsSL https://deno.land/install.sh | sh
安装完成后,系统会询问是否添加到环境变量,选择 ‘Yes’。
重启终端并验证安装:
deno –version
1.2 安装 Python 依赖
见:PydanticAI快速入门示例
2. 创建 MCP 客户端代码
创建 mcp_server.py 文件:
import asyncio
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client
# 要执行的 Python 代码
code = """
import numpy
a = numpy.array([1, 2, 3])
print(a)
a
"""
# 配置 MCP 服务器参数
server_params = StdioServerParameters(
command='deno',
args=[
'run',
'-N', # 允许网络访问
'-R=node_modules', # 允许读取 node_modules
'-W=node_modules', # 允许写入 node_modules
'–node-modules-dir=auto', # 自动管理 node_modules
'jsr:@pydantic/mcp-run-python', # JSR 包地址
'stdio', # 使用 stdio 通信
],
)
async def main():
try:
# 建立与 MCP 服务器的连接
async with stdio_client(server_params) as (read, write):
async with ClientSession(read, write) as session:
# 初始化会话
await session.initialize()
# 获取可用工具列表
tools = await session.list_tools()
print(f"可用工具数量: {len(tools.tools)}")
print(f"工具名称: {repr(tools.tools[0].name)}")
print(f"输入模式: {repr(tools.tools[0].inputSchema)}")
# 调用 Python 代码执行工具
result = await session.call_tool('run_python_code', {'python_code': code})
print("\\n执行结果:")
print(result.content[0].text)
except Exception as e:
print(f"发生错误: {e}")
if __name__ == "__main__":
asyncio.run(main())
3. 运行代码
# 运行 MCP 客户端
uv run mcp_server.py
4. 预期输出
成功运行后,应该看到类似以下的输出:
可用工具数量: 1
工具名称: 'run_python_code'
输入模式: {'type': 'object', 'properties': {'python_code': {'type': 'string', 'description': 'Python code to run'}}, 'required': ['python_code'], 'additionalProperties': False, '$schema': 'http://json-schema.org/draft-07/schema#'}
执行结果:
<status>success</status>
<dependencies>["numpy"]</dependencies>
<output>
[1 2 3]
</output>
<return_value>
[
1,
2,
3
]
</return_value>
5. 工作原理
参考链接:https://ai.pydantic.dev/mcp/run-python/#direct-usage
评论前必须登录!
注册