Labsco
MCP SERVER

gRPC Invoke MCP

by grulex

Describe a gRPC service and call one of its unary methods with JSON, without generating a client for it first.

API Specifications & HTTP ToolingVerified
Summary
Reflection is offered, not assumed, and that is what makes this usable against services you do not control.

Both tools accept either path: use_reflection asks the server to describe itself, while proto_files and import_paths cover a target that has reflection turned off, which production services frequently do. The scope is deliberately narrow — grpc_call is documented for unary methods, so streaming is not what this is for. Within that scope the pairing is complete: grpc_describe tells you the message shape, grpc_call sends one built to match, and headers, plaintext and timeout_ms handle the parts of a real connection that a schema does not describe.

What it is

A gRPC client exposing 2 tools: one that describes services, methods and message symbols, and one that invokes a unary method from a JSON request body.

What you get
  • Discovery before invocation: grpc_describe resolves a service, a method or a message symbol so the request shape is known before anything is sent.
  • Calls written as JSON: grpc_call takes request_json and a fully qualified method, returning the response without any generated stub in between.
  • Either source of schema: both tools work from server reflection with use_reflection, or from local proto_files resolved against import_paths.
  • The connection details a real target needs: headers carries whatever metadata the service authenticates on, plaintext covers a target without TLS, and timeout_ms bounds the call.
Requirements

Nothing to configure for the server itself. Reaching a target needs either reflection enabled on it or the .proto files and their import paths present on the machine the server runs on, plus whatever credential that service expects, which travels in headers rather than in configuration.

Setup effort

One command — npx -y @grulex/grpc-invoke-mcp@latest