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 . or go install github.com/adiom-data/grpcmcp Ensure 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. Specifying hostport will use SSE. The SSE endpoint will be served at http://localhost:3000/sse.
hostport string - When set, use SSE, and this serves as the server host:port.
descriptors string - Specify file location of the protobuf definitions generated from buf build -o protos.pb or protoc --descriptor_set_out=protos.pb instead of using gRPC reflection.
reflect - If set, use reflection to retrieve gRPC endpoints instead of descriptor file.
url string - Specify the url of the backend server.
services string - Comma separated list of fully qualified gRPC service names to filter.
bearer string - Token to attach in an Authorization: Bearer header.
bearer-env string - Environment variable for token to attach in an Authorization: Bearer header. Overrides bearer.
header string (repeatable) - Headers to add in Key: Value format.
require-method-option string - Only expose methods where a specific proto method option matches a given value. Format: fieldNumber:value (e.g. 50003:1). This filters gRPC methods by checking the raw proto extension field on the method descriptor, so no generated code for the option is needed.