Model Context Protocol (MCP) Python 实现
本仓库包含 Model Context Protocol (MCP) 的 Python 实现,演示如何创建基于 MCP 标准通信的服务器和客户端应用。
概述
MCP 实现包含两个主要部分:
- MCP 服务器(
server.py
) - 一个提供以下功能的服务器:- 工具:可远程调用的函数
- 资源:可获取的数据
- 提示:用于生成语言模型提示的模板
- MCP 客户端(
client.py
) - 连接服务器并使用其功能的客户端应用
功能
该实现展示了 MCP 的几个关键功能:
工具
completion
- 生成 AI 模型的文本补全(模拟)add
- 简单的加法计算器,计算两个数字之和
资源
models://
- 返回可用 AI 模型的信息greeting://{name}
- 返回针对指定名称的个性化问候
提示
review_code
- 生成代码审查的提示模板
安装
使用此 MCP 实现前,请安装所需的依赖包:
pip install mcp-server mcp-client
启动服务器和客户端
启动服务器
在一个终端窗口运行服务器:
python server.py
服务器也可以通过 MCP CLI 以开发模式运行:
mcp dev server.py
或者安装到 Claude Desktop(如果可用):
mcp install server.py
运行客户端
在另一个终端窗口运行客户端:
python client.py
这将连接服务器并演示所有可用功能。
客户端使用
客户端(client.py
)演示了所有 MCP 功能:
python client.py
这将连接服务器并调用所有功能,包括工具、资源和提示。输出将显示:
- 计算器工具结果(5 + 7 = 12)
- 对 “What is the meaning of life?” 的补全工具响应
- 可用 AI 模型列表
- 针对 “MCP Explorer” 的个性化问候
- 代码审查提示模板
实现细节
服务器使用 FastMCP
API 实现,提供了定义 MCP 服务的高级抽象。以下是定义工具的简化示例:
@mcp.tool()
def add(a: int, b: int) -> int:
"""Add two numbers together
Args:
a: First number
b: Second number
Returns:
The sum of the two numbers
"""
logger.info(f"Adding {a} and {b}")
return a + b
客户端使用 MCP 客户端库连接并调用服务器:
async with stdio_client(server_params) as (reader, writer):
async with ClientSession(reader, writer) as session:
await session.initialize()
result = await session.call_tool("add", arguments={"a": 5, "b": 7})
了解更多
欲了解更多关于 MCP 的信息,请访问:https://modelcontextprotocol.io/
免责声明:
本文件由 AI 翻译服务 Co-op Translator 翻译而成。虽然我们力求准确,但请注意,自动翻译可能包含错误或不准确之处。原始文件的母语版本应被视为权威来源。对于重要信息,建议使用专业人工翻译。对于因使用本翻译而产生的任何误解或误释,我们不承担任何责任。