使用说明
项目简介
PyMCP (Python Model Context Protocol) 是一个Python库,旨在简化将Python函数转换为MCP服务器的过程。它允许开发者轻松地将现有的Python函数封装成符合MCP协议的工具,从而使LLM(大型语言模型)客户端(如Cursor编辑器)能够直接调用这些Python函数,扩展LLM的功能。开发者无需深入了解MCP协议的细节,即可快速构建功能强大的MCP服务器。
主要功能点
- 函数到工具的转换: 将普通的Python函数一键转换为MCP服务器可以识别和调用的工具 (Tools)。
- 装饰器支持: 提供装饰器 '@mcpwrap' 和 '@PyMCP.wrap_function',简化工具注册和服务器配置。
- 多函数组合: 支持将多个Python函数组合到一个MCP服务器中,作为一个整体提供服务。
- 灵活的部署: 支持多种传输协议 (stdio, sse),方便在不同环境部署和运行MCP服务器。
- 与Cursor编辑器集成: 提供命令行和Python API,方便将PyMCP服务器集成到Cursor编辑器中,作为其AI功能扩展。
- 丰富的数据类型支持: 支持Python基本数据类型、列表、字典以及MCP定义的 'TextContent', 'ImageContent', 'EmbeddedResource' 等类型。
安装步骤
-
确保已安装Python环境 (推荐Python 3.8及以上版本)。
-
使用pip安装pymcp库:
pip install pymcp
服务器配置
MCP服务器需要配置启动命令才能被MCP客户端(如Cursor编辑器)调用。以下是针对PyMCP服务器的配置信息,通常配置在客户端的MCP服务器配置文件中(如Cursor编辑器的 'mcp.json')。
{ "mcpServers": { "your-server-name": { // 【请替换为你的服务器名称,例如:calculator-server, langchain-tools】 "command": "python", // 【MCP服务器启动命令,这里使用python解释器】 "args": [ // 【启动参数,指定运行的Python脚本路径】 "/path/to/your/server_script.py" // 【请替换为你的服务器脚本的绝对路径,例如:/Users/username/pymcp-examples/examples/calculator_server.py】 ], "cwd": "/path/to/your/server_directory", // 【请替换为你的服务器脚本所在目录的绝对路径,例如:/Users/username/pymcp-examples/examples, 可选,根据脚本需要配置】 "env": { // 【环境变量,可选,根据脚本需要配置,例如设置PYTHONPATH】 "PYTHONPATH": "/path/to/your/server_directory" // 【例如:/Users/username/pymcp-examples/examples, 可选】 } } } }
基本使用方法
-
定义Python函数: 编写你需要作为MCP工具的Python函数。例如,一个简单的加法函数:
# examples/addition_server.py from pymcp import mcpwrap @mcpwrap(name="addition_tool", description="一个加法工具") def add(a: int, b: int) -> int: """计算两个数字的和""" return a + b if __name__ == "__main__": print("加法服务器正在运行...") add.serve_mcp() -
运行MCP服务器: 在终端中,导航到你的脚本所在目录,并运行Python脚本。例如:
cd examples python addition_server.py服务器默认使用stdio传输协议,启动后会等待MCP客户端的连接和请求。
-
在MCP客户端中使用: 配置好MCP客户端(如Cursor编辑器)后,客户端即可发现并调用你定义的工具。在Cursor编辑器中,你可以在AI对话中使用 '#addition_tool(a=1, b=2)' 来调用上面定义的加法工具。
更多用法
- 组合多个函数: 可以使用 'PyMCP' 类来组合多个函数到一个服务器中,详细用法请参考仓库中的 'examples/calculator_server.py' 和 'examples/math_server.py'。
- LangChain和LangGraph集成: PyMCP可以与LangChain和LangGraph等LLM开发框架集成,将复杂的LLM应用封装成MCP工具,具体示例请参考 'examples/langchain_example.py' 和 'examples/langgraph_example.py'。
- 自定义服务器配置: 'PyMCP' 类允许自定义服务器名称、描述、传输协议等配置,详情请参考 'pymcp/converter.py' 和 'README.md'。
通过PyMCP,你可以快速将Python的功能导出为MCP服务器,为LLM应用提供强大的后端支持。
信息
分类
开发者工具