
grpcmcp

2025.04.10
7
GogRPC 代理服务管理开发效率
grpcmcp 是一个简单的 MCP 服务器,它可以根据提供的描述符文件或使用反射代理到 gRPC 后端。它支持 SSE 和 STDIN 两种传输方式,并提供了多种配置选项来灵活地连接和管理 gRPC 服务。
View on GitHub
Overview
基本能力
产品定位
grpcmcp 是一个用于代理和管理 gRPC 后端服务的 MCP 服务器,支持通过描述符文件或反射机制动态获取 gRPC 服务端点。
核心功能
- SSE 传输:通过
hostport
参数启用 SSE 传输,服务端点在http://localhost:3000/sse
。 - STDIN 传输:通过配置文件设置 STDIN 传输方式。
- 描述符文件支持:通过
descriptors
参数指定 protobuf 定义文件。 - 反射支持:通过
reflect
参数使用 gRPC 反射获取服务端点。 - 服务过滤:通过
services
参数过滤特定的 gRPC 服务。 - 认证支持:通过
bearer
或bearer-env
参数添加 Bearer Token 认证。
适用场景
- 开发环境中快速代理和测试 gRPC 服务。
- 在需要动态获取 gRPC 服务端点的场景中使用。
- 需要灵活配置和管理 gRPC 服务的场景。
使用教程
使用依赖
- 确保已安装 Go 环境,并将 Go 的 bin 目录添加到 PATH 中。
安装教程
-
安装二进制文件:
bash go install .
或bash go install github.com/adiom-data/grpcmcp
-
运行示例 gRPC 服务器:
bash go run example/main.go
这将启动一个 gRPC 健康服务,端口为 8090,并启用服务器反射。 -
SSE 传输:在另一个终端中运行:
bash grpcmcp --hostport=localhost:3000 --reflect
SSE 端点将在http://localhost:3000/sse
提供服务。 -
STDIN 传输:在配置文件中设置:
json "grpcmcp": { "command": "grpcmcp", "args": ["--reflect"] }
调试方式
- 查看帮助信息:
bash grpcmcp --help
- 检查 gRPC 服务是否正常运行:
bash curl http://localhost:3000/sse
或使用 gRPC 客户端工具测试服务端点。