@supernova123/grpc-mcp-server
This server enables AI agents to connect to and interact with any gRPC service that supports server reflection — no proto files or code generation required.
Connect to gRPC endpoints: Establish a connection to any gRPC server by providing a host:port address, with optional TLS and custom timeout configuration
List available services: Auto-discover and list all gRPC services exposed by the connected server via server reflection
List service methods: Retrieve all RPC methods for a specific service, including unary, server-streaming, client-streaming, and bidirectional streaming methods
Inspect service descriptors: Fetch the full schema for a service, including all methods, request/response types, and streaming modes
Invoke RPC methods: Call any RPC method using a JSON-serialized request body, with support for optional metadata headers and custom timeouts
Health checks: Query the standard gRPC Health Checking Protocol to check the health status of the overall server or a specific service
Disconnect: Cleanly terminate the connection and clear all cached service data
Allows inspecting live Istio service meshes and invoking RPCs on Istio components via gRPC server reflection.
Enables debugging Kubernetes microservices by invoking gRPC RPCs directly from AI agents without kubectl.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@supernova123/grpc-mcp-serverconnect to localhost:50051 and list all services"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@supernova123/grpc-mcp-server
Connect AI agents to any gRPC service — no proto files needed.
Most gRPC services are invisible to AI tools. This MCP server uses gRPC Server Reflection to auto-discover services, methods, and types at runtime, then exposes them as callable tools for Claude, Cursor, and any MCP-compatible agent.
Why This Matters
gRPC powers Kubernetes, Istio, Envoy, and thousands of microservices — but AI agents can't talk to any of them. Until now, you'd need to manually define proto schemas, generate clients, and wire everything together. This server does it automatically: point it at any gRPC endpoint with reflection enabled, and it discovers everything.
Use cases:
Debug microservices by invoking RPCs directly from Claude
Inspect live service meshes (Istio, Envoy) without kubectl
Build AI-powered ops tools that query gRPC health endpoints
Prototype API integrations without writing client code
Test gRPC services during development with natural language
Related MCP server: gRPC Invoke MCP
Tools
Tool | Description |
| Connect to a gRPC server and auto-discover all services via reflection |
| List every gRPC service on the connected endpoint |
| List all RPC methods for a service (unary, server-stream, client-stream, bidi) |
| Get full service schema: methods, request/response types, streaming modes |
| Call any RPC method with a JSON-serialized request body |
| Standard gRPC Health Checking Protocol (v1) |
| Clear cached service data and disconnect |
Quick Start
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"grpc": {
"command": "npx",
"args": ["-y", "@supernova123/grpc-mcp-server"],
"env": {
"GRPC_ENDPOINT": "localhost:50051"
}
}
}
}Cursor / VS Code
{
"mcp": {
"servers": {
"grpc": {
"command": "npx",
"args": ["-y", "@supernova123/grpc-mcp-server"],
"env": {
"GRPC_ENDPOINT": "localhost:50051"
}
}
}
}
}Direct
npx @supernova123/grpc-mcp-serverExample Usage
Connect to a gRPC server:
connect_endpoint(endpoint="localhost:50051")Discover available services:
list_services()Inspect a service's methods:
list_methods(service_name="grpc.health.v1.Health")Invoke an RPC:
invoke_rpc( service_name="grpc.health.v1.Health", method_name="Check", request={"service": ""} )
Environment Variables
Variable | Description | Default |
| Target gRPC endpoint (host:port) | (none — use |
| Request timeout in milliseconds |
|
| Enable TLS connections |
|
Requirements
Node.js 18+
Target gRPC server must support gRPC Server Reflection (v1)
Most gRPC servers have reflection enabled in development. For production servers, ensure grpc.reflection.V1Reflection is registered.
How It Works
Connects to your gRPC endpoint via the reflection API
Fetches the full service descriptor (services → methods → types)
Dynamically generates MCP tool definitions from the schema
Invokes RPCs by serializing JSON requests to protobuf and back
No proto files. No code generation. No compile step.
License
MIT
Available Tools
7 toolsconnect_endpointB
Connect to a gRPC server endpoint and discover available services via server reflection
| Name | Required | Description | Default |
|---|---|---|---|
| endpoint | Yes | gRPC endpoint address (e.g. localhost:50051) | |
| use_tls | No | Whether to use TLS (default: false) | |
| timeout_ms | No | Connection timeout in ms (default: 10000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions connecting and discovering services but lacks details on return values, side effects (e.g., persistent connection state), error handling, or authentication needs. The timeout behavior is implied by the schema but not elaborated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the main action ('Connect') and includes the key purpose ('discover available services'). It contains no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite good conciseness, the description lacks crucial context for a tool with no output schema and no annotations. It does not explain the return value (e.g., list of services?), connection state persistence, or how to handle errors. This leaves significant gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters are well-described in the input schema (endpoint, use_tls, timeout_ms). The description adds no additional meaning beyond what the schema already provides. With 100% schema coverage, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: connecting to a gRPC server endpoint and discovering available services via server reflection. It uses a specific verb (connect) and resource (gRPC server endpoint), and differentiates from sibling tools like 'disconnect' (opposite) and 'list_services' (which may require prior connection).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some usage context (connecting and discovering services) but does not explicitly state when to use this tool versus alternatives like 'health_check' or 'list_methods'. No when-not or prerequisite guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disconnectA
Disconnect from the current gRPC endpoint and clear cached service data
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It clearly states the primary action (disconnect) and a side effect (clear cached data). While it could mention safety aspects (e.g., pending requests), for a simple tool it is sufficiently transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the key action and includes the important side effect. Every phrase adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, no output schema, and a simple action, the description fully covers what the tool does. It explains both the disconnect action and the cache clearing, which is sufficiently complete for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and schema coverage is 100%, so the description has no additional parameter info to add. The baseline of 4 applies as the description does not need to go beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Disconnect' and states the resource ('current gRPC endpoint') and additional action ('clear cached service data'). It clearly distinguishes from sibling tools like 'connect_endpoint'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context (when disconnecting is needed) but does not provide explicit guidance on when not to use or mention alternatives. It is adequate but lacks explicit when-to-use/when-not-to-use instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_service_descriptorA
Get the full descriptor for a gRPC service including all methods, request/response types, and streaming modes
| Name | Required | Description | Default |
|---|---|---|---|
| service_name | Yes | Full service name (e.g. grpc.health.v1.Health) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It states the tool returns a descriptor, but does not disclose that it is read-only, requires an active connection, or any other behavioral traits (e.g., rate limits, auth needs). Incomplete for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with clear subject, verb, and scope. No unnecessary words; every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple lookup tool but missing context about prerequisites (e.g., requiring an active connection via connect_endpoint). No output schema exists, so description could mention return format more explicitly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter 'service_name' with schema description providing example format. Tool description does not add additional parameter guidance beyond what schema already provides. Schema coverage is 100%, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it retrieves the full descriptor for a gRPC service, listing what's included (methods, types, streaming modes). Distinguishes from siblings like list_services (which lists names only) and list_methods.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies use when full descriptor is needed, but no explicit guidance on when to use this vs alternatives like list_services or list_methods. No when-not-to-use or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
health_checkB
Check gRPC server health using the standard Health Checking Protocol
| Name | Required | Description | Default |
|---|---|---|---|
| service | No | Service name to check (empty string = overall server health) | |
| timeout_ms | No | Timeout in ms (default: 5000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavioral traits. It does not state that this is a read-only operation, what happens on failure (e.g., exception or status), or any side effects. The description is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, no filler, front-loaded with key information. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description does not explain return values or error handling. For a health check tool, agents need to know what the response looks like (e.g., status string). Also, parametric guidance on when to use empty string vs specific service is only in schema, not in description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with clear parameter descriptions. The tool description adds no additional meaning beyond what the schema provides, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (check), resource (gRPC server health), and method (standard Health Checking Protocol). It effectively distinguishes from sibling tools like invoke_rpc or get_service_descriptor.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. Does not mention when-not-to-use or prerequisites. Given sibling tools like connect_endpoint or invoke_rpc, an agent may need context on when health checking is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoke_rpcC
Invoke a gRPC method with a JSON-serialized request body
| Name | Required | Description | Default |
|---|---|---|---|
| service_name | Yes | Full service name (e.g. grpc.health.v1.Health) | |
| method_name | Yes | Method name (e.g. Check) | |
| request | No | JSON-serialized request body as an object | |
| timeout_ms | No | Call timeout in ms (default: 10000) | |
| metadata | No | Optional gRPC metadata as key-value pairs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It mentions no side effects, authorization requirements, error handling, or idempotency. The tool is for invoking methods, which may be destructive or have side effects, but nothing is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that conveys the core purpose without redundancy. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (5 parameters, no output schema, no annotations) the description is too brief. It omits context like the need for a prior connection, return value structure, or error handling, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all parameters with descriptions (100% coverage), so the description adds no value. It does not clarify the exact format of the 'request' parameter or how to use 'metadata' beyond what the schema already says.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('invoke a gRPC method') and format ('JSON-serialized request body'). It distinguishes the tool from siblings that manage connections or list services, but does not explicitly differentiate from similar tools like health_check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus others, nor any prerequisites (e.g., need to connect first) or caveats. The description only states what it does, not when or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_methodsB
List all methods for a specific gRPC service
| Name | Required | Description | Default |
|---|---|---|---|
| service_name | Yes | Full service name (e.g. grpc.health.v1.Health) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility. It only states the basic action, failing to disclose behavioral traits such as whether the service must be connected, error cases, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It is front-loaded and immediately conveys the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one parameter and no output schema, the description is adequate but incomplete. It does not explain what 'methods' refers to or what the output format is, which could be important given sibling tools like invoke_rpc.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema already describes the parameter. The description adds no extra meaning beyond 'Full service name (e.g. grpc.health.v1.Health)', so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List all methods for a specific gRPC service' clearly states the action (List), the resource (methods), and the scope (for a specific service). It effectively distinguishes from sibling tools like list_services and get_service_descriptor.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, exclusions, or context for choosing list_methods over sibling tools like get_service_descriptor or invoke_rpc.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_servicesA
List all gRPC services discovered via server reflection on the connected endpoint
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full responsibility for behavioral disclosure. It mentions 'discovered via server reflection' which hints at dynamic discovery, but does not clarify what happens if no endpoint is connected (e.g., empty list vs error), whether results are cached, or any performance implications. This leaves significant ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence with no wasted words. It front-loads the key action and resource, achieving maximum conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (zero parameters, no output schema), the description is mostly complete. It explains the source ('server reflection') and scope ('all gRPC services'). However, it could mention the return format (e.g., list of service names) or error cases (e.g., not connected). Overall adequate but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the schema coverage is 100%. The description adds no additional parameter information, but none is needed. A baseline score of 4 is appropriate since there is nothing missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'List' and specifies the resource 'gRPC services discovered via server reflection on the connected endpoint'. It clearly distinguishes from sibling tools like get_service_descriptor (which retrieves details for a specific service) and list_methods (which lists methods within a service).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It does not state prerequisites (e.g., a connected endpoint) or that it only works after connect_endpoint has been called. The context of sibling tools implies differentiation but the description fails to make it explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
7 tool updates
v0.1.0- First observed
connect_endpoint - First observed
disconnect - First observed
get_service_descriptor - First observed
health_check - First observed
invoke_rpc - First observed
list_methods - First observed
list_services
TDQS
Each tool has a clear, distinct purpose: connection management, service discovery, health checking, and invocation. There is no overlap in functionality.
All tools use consistent snake_case with a verb_noun pattern (e.g., connect_endpoint, list_services, invoke_rpc). The pattern is uniform and descriptive.
Seven tools is an ideal size for a gRPC MCP server, covering all core operations without being excessive or insufficient.
The tool set covers the full lifecycle: connect, discover, inspect, health check, invoke. Minor gap: explicit support for streaming modes could be clarified, but overall complete.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for building and testing AI agents with multi-model experimentation and insights.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
Related MCP Servers
- FlicenseAqualityFmaintenanceMCP server that exposes 300+ AI agents as tools via a single API key. Supports listing agents, invoking any agent with chat-completion style messages, checking agent health, and retrieving platform statistics.53-
- AlicenseNot gradedqualityDmaintenanceAn MCP server for calling gRPC methods from AI agents, enabling them to inspect gRPC APIs and invoke unary RPCs using server reflection or local .proto files.591MIT
- AlicenseNot gradedqualityDmaintenanceMCP Server for agent and service discovery — register, search, rate, and manage AI agents and services in a local directory.13MIT
- AlicenseAqualityCmaintenanceMCP server for API discovery from .mind spec files, enabling AI assistants to list, inspect, and call APIs defined in OpenAPI specs.423MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/friendlygeorge/grpc-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server