使用说明
模型上下文协议(MCP)Python实现
此存储库包含模型上下文协议(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)
- 完成工具对“生命的意义是什么?”的回应
- 可用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/
