项目简介
'proto-to-mcp' 是一个开源工具,旨在简化将现有基于 Protobuf/gRPC 的服务集成到 Model Context Protocol (MCP) 生态系统的过程。它通过解析 '.proto' 文件并自动生成 Python 语言的 MCP 服务器实现代码,让大型语言模型 (LLM) 能够标准化地访问结构化数据和调用 gRPC 服务定义的功能。
主要功能点
- 自动代码生成: 直接从 '.proto' 文件生成功能完整的 Python MCP 服务器代码。
- Protobuf转MCP: 智能地将 Protobuf 定义的数据类型和服务方法映射为 MCP 兼容的格式和工具。
- gRPC集成: 生成的 MCP 服务器可以无缝连接到后端的 gRPC 服务,并将 MCP 请求转发给对应的 gRPC 方法。
- 易于使用: 提供命令行界面 (CLI) 和编程接口,方便集成到开发流程中。
- 可定制性: 允许配置生成的服务器名称和连接的 gRPC 服务地址。
安装步骤
-
安装 Python: 确保您的系统安装了 Python 3.9 或更新版本。
-
安装 Protobuf 编译器: 安装 'protoc' (Protocol Buffers compiler)。您可以从 Protobuf 官方网站或通过包管理器获取它。
-
安装 proto-to-mcp: 使用 pip 或 uv 进行安装。
使用 pip:
pip install proto-to-mcp使用 uv (推荐):
pip install uv # 如果尚未安装uv uv pip install proto-to-mcp
服务器配置
MCP 客户端(如 Claude Desktop, VS Code Copilot 等)连接到 MCP 服务器时,需要知道如何启动服务器进程。通常需要提供服务器的名称、启动命令和参数。对于使用 'proto-to-mcp' 生成的 MCP 服务器,配置信息大致如下(请根据您的生成文件名和运行环境调整参数):
{ "name": "YourServerName", // MCP服务器的显示名称,生成时可通过--name参数指定 "command": "uv", // 启动服务器的命令,通常是 'uv' 或 'python' "args": [ "run", // uv的子命令 "fastmcp", // fastmcp的子命令 "run", // fastmcp run的子命令 "generated_server.py:mcp", // 生成的Python服务器文件路径及应用入口 "--transport", "stdio", // MCP协议传输方式,通常是 stdio "--host", "127.0.0.1", // 服务器监听的IP地址 "--port", "9000", // 服务器监听的端口 "--grpc-server", "localhost:50051" // (可选) 后端gRPC服务的地址,如果生成时或环境变量未指定 ] }
请注意:'generated_server.py' 应替换为您实际生成的 Python 文件名。'--grpc-server' 参数是可选的,具体取决于您的 gRPC 服务地址如何配置(例如,是否硬编码在生成的代码中或通过环境变量提供)。MCP客户端与您启动的这个进程(例如 'uv run fastmcp run ...')通过指定的传输方式 (transport) 进行通信,而不是直接通过 '--grpc-server' 地址通信,'--grpc-server' 地址是生成的MCP服务器用于连接后端gRPC服务的。
基本使用方法
- 准备 '.proto' 文件: 确保您有定义了 gRPC 服务和消息的 '.proto' 文件。
- 生成 MCP 服务器代码: 打开终端,使用 'proto-to-mcp' 命令生成 Python 代码。
proto-to-mcp path/to/your_service.proto -o your_mcp_server.py --name YourServerName [--grpc-server localhost:50051]- 'path/to/your_service.proto': 您的 '.proto' 文件路径。
- '-o your_mcp_server.py': 指定生成的 Python 文件名。
- '--name YourServerName': 指定 MCP 服务器在客户端显示的名称(可选)。
- '--grpc-server localhost:50051': 指定后端 gRPC 服务的地址(可选,也可在运行生成的服务器时通过命令行或环境变量指定)。
- 运行生成的 MCP 服务器: 在终端中运行生成的 Python 文件。如果使用 'uv' 和 'fastmcp' (推荐):
如果您只使用 Python:uv run fastmcp run your_mcp_server.py:mcp [--grpc-server localhost:50051] [--transport stdio]python your_mcp_server.py [--grpc-server localhost:50051] [--transport stdio] - 连接 MCP 客户端: 在您的 LLM 应用或 MCP 客户端中配置服务器信息(如上文“服务器配置”所示),连接到正在运行的 MCP 服务器。LLM 客户端即可发现并使用 '.proto' 文件中定义的 gRPC 服务方法作为工具。
信息
分类
开发者工具