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.