n8n-nodes-grpc-consumer
v0.0.3
Published
n8n community node to consume gRPC services with automatic discovery via Server Reflection
Maintainers
Readme
n8n-nodes-grpc-consumer
This is an n8n community node. It lets you consume gRPC services directly from your n8n workflows using automatic service discovery via gRPC Server Reflection. No .proto files needed.
n8n is a fair-code licensed workflow automation platform.
Installation Operations Configuration Usage Compatibility Resources Version history
Installation
Follow the installation guide in the n8n community nodes documentation.
npm install n8n-nodes-grpc-consumerOperations
Discover Services
Connects to a gRPC server and lists all available services and their methods using Server Reflection.
| Option | Description | | -------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | | Include Method Details | Returns full method signatures: input/output types, streaming mode (unary, server-streaming, client-streaming, bidirectional) | | Include Input Schema | Returns the message schema for each method's input type (field names, types, nesting) and a ready-to-use JSON template |
Example output:
{
"services": [
{
"name": "mypackage.UserService",
"methods": [
{
"name": "GetUser",
"fullName": "mypackage.UserService.GetUser",
"inputType": "mypackage.GetUserRequest",
"outputType": "mypackage.UserResponse",
"clientStreaming": false,
"serverStreaming": false,
"type": "unary",
"inputTemplate": { "id": 0 }
}
],
"methodCount": 1
}
],
"serviceCount": 1,
"server": "localhost:50051"
}Invoke Method
Calls a specific gRPC method on the server. Services and methods can be selected from dynamic dropdowns (populated via reflection) or entered manually.
Supports all four gRPC call types:
| Type | Description |
| --------------------------- | -------------------------------------------------------------- |
| Unary | Single request, single response |
| Server Streaming | Single request, multiple responses (collected into an array) |
| Client Streaming | Multiple requests (via items array in JSON), single response |
| Bidirectional Streaming | Multiple requests, multiple responses |
Parameters:
| Parameter | Description |
| ---------------- | --------------------------------------------------------------------------------------------- |
| Service Name | Select from dropdown or type the fully qualified service name (e.g. mypackage.UserService) |
| Method Name | Select from dropdown or type the method name (e.g. GetUser) |
| Request Data | JSON body to send. Use Discover Services with Include Input Schema to see the expected format |
Advanced options:
| Option | Description | | ---------------- | ------------------------------------------------ | | Timeout (ms) | Request timeout in milliseconds (default: 30000) | | Metadata | Key-value pairs sent as gRPC metadata headers |
Configuration
The node requires only one parameter to connect:
- Server Address: The gRPC server address in
host:portformat (e.g.localhost:50051)
Requirements
The target gRPC server must have Server Reflection enabled. This is what allows the node to discover services and methods at runtime without .proto files.
Most gRPC frameworks support reflection:
- Go (
google.golang.org/grpc/reflection) - Java/Kotlin (
io.grpc:grpc-services-ProtoReflectionService) - Python (
grpc_reflection) - Node.js (
@grpc/reflection) - C#/.NET (
Grpc.AspNetCore.Server.Reflection) - Rust (
tonic-reflection)
Authentication
This node currently connects using insecure credentials (no TLS, no authentication). It is intended for use with internal/trusted gRPC services within your network.
Usage
Step 1: Discover what's available
- Add the gRPC Consumer node to your workflow
- Set the Server Address to your gRPC server
- Select operation Discover Services
- Enable Include Method Details and optionally Include Input Schema
- Execute the node
This gives you the full API surface of the server: every service, method, input/output types, and optionally a JSON template you can copy directly into the Invoke Method operation.
Step 2: Call a method
- Change the operation to Invoke Method
- Select a Service and Method from the dropdowns (they are populated dynamically from the server)
- Paste or build your Request Data JSON
- Execute the node
Using as an AI Agent tool
The node has usableAsTool: true, which means it can be used as a tool by n8n's AI Agent node. This allows an AI agent to discover and call gRPC services autonomously.
Compatibility
- n8n: Tested with n8n v1.x
- Node.js: Requires Node.js v22 or higher
- gRPC Reflection: Supports both
grpc.reflection.v1andgrpc.reflection.v1alphaprotocols
Resources
Development
# Install dependencies
npm install
# Start n8n with the node loaded (hot reload)
npm run dev
# Lint
npm run lint
# Build for production
npm run buildVersion history
0.0.1
Initial release:
- gRPC service discovery via Server Reflection (v1 and v1alpha)
- Dynamic service and method selection via dropdowns
- Invoke gRPC methods (unary, server-streaming, client-streaming, bidirectional)
- Input schema inspection and JSON template generation
- Custom metadata and timeout support
- AI Agent tool compatibility
