MCP Tool

MCP Tool node allows you to create custom tools that AI assistants can invoke to perform specific tasks. These tools can do anything a Node-RED flow can do - from querying databases and calling APIs to controlling IoT devices and processing data. The AI assistant decides when to call your tool based on the description and input schema you provide.

Flow Requirements

MCP Tool nodes must be connected to a flow that ends with an MCP Response node to send results back to the MCP client.

Configuration

Name

string - Optional

Optional display name for this node in the flow. This helps you identify the node in your Node-RED editor but is not visible to MCP clients.

Server

mcp-server - Required

The MCP server configuration this tool will be registered with. Select from your configured MCP server instances.

Tool Name

string - Required

Unique identifier for the tool used by MCP clients to call this tool. Should be written in snake_case.

Examples:

  • get_weather
  • send_email
  • query_database
  • control_lights

Title

string - Required

Human-readable name shown to users in MCP clients. This is what users see when browsing available tools.

Examples:

  • "Send Email"
  • "Control Smart Lights"

Description

string - Required

Detailed description of what this tool does and when to use it. Be specific to help AI assistants understand when to invoke this tool.

Input Schema

JSON - Required

JSON schema defining the expected arguments for this tool. This tells the AI assistant what parameters to provide when calling your tool.

Input Schema

The input schema uses JSON Schema format to define the structure and validation rules for tool arguments.

Basic Example

{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name to greet",
"minLength": 1
}
},
"required": ["name"]
}

Complete Example with Multiple Types

{
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "City name or ZIP code",
"minLength": 1
},
"units": {
"type": "string",
"description": "Temperature units",
"enum": ["celsius", "fahrenheit"],
"default": "celsius"
},
"days": {
"type": "number",
"description": "Number of days to forecast",
"minimum": 1,
"maximum": 7,
"default": 1
},
"include_hourly": {
"type": "boolean",
"description": "Include hourly breakdown",
"default": false
}
},
"required": ["location"]
}

Output

When the tool is called by an MCP client, the output msg.payload contains the arguments passed according to your input schema.

Example

If your input schema defines:

{
"type": "object",
"properties": {
"city": { "type": "string" },
"units": { "type": "string" }
}
}

The AI assistant calls your tool with:

{
"city": "London",
"units": "celsius"
}

You can then use these values in subsequent nodes to perform your tool's logic.

Example Flow