README Documentation
grpcmcp
A simple MCP server that will proxy to a grpc backend based on a provided descriptors file or using reflection.
Quick Start
-
Install the binary:
go install .orgo install github.com/adiom-data/grpcmcpEnsure the go bin directory is in your PATH. -
In a terminal, run the example grpc server
go run example/main.go. This will start a grpc health service on port 8090 with server reflection enabled. Note that this runs on the default port that grpcmcp will connect to. -
SSE Transport In another terminal, run
grpcmcp --hostport=localhost:3000 --reflect. Specifyinghostportwill use SSE. The SSE endpoint will be served athttp://localhost:3000/sse. -
STDIN Transport Set up the MCP config. e.g.
"grpcmcp": {
"command": "grpcmcp",
"args": ["--reflect"]
}
Options / Features
grpcmcp --help for a full list of options.
-
hostportstring - When set, use SSE, and this serves as the server host:port. -
descriptorsstring - Specify file location of the protobuf definitions generated frombuf build -o protos.pborprotoc --descriptor_set_out=protos.pbinstead of using gRPC reflection. -
reflect- If set, use reflection to retrieve gRPC endpoints instead of descriptor file. -
urlstring - Specify the url of the backend server. -
servicesstring - Comma separated list of fully qualified gRPC service names to filter. -
bearerstring - Token to attach in anAuthorization: Bearerheader. -
bearer-envstring - Environment variable for token to attach in anAuthorization: Bearerheader. Overridesbearer. -
headerstring (repeatable) - Headers to add inKey: Valueformat.
Help
Join our Discord at https://discord.gg/hDjx3DehwG