Skip to content
TriedDocs
Conversation flow

MCP node

Call one tool on an MCP server at a fixed step of a flow, with fixed arguments, optional LLM-filled arguments and response variables.

The MCP Tool node (type: "mcp", node list label MCP) calls a tool on one of the flow's MCP servers when the flow reaches it, saves values from the result, and follows its transitions. Use it to fetch or write data at a known point, the same way you would use a function node with a custom function.

Configure#

  1. Add the server under Global settings, MCP Servers (see MCP tools). If there is none, the node says "Add a server under Global Settings, MCP Servers."
  2. Add an MCP node.
  3. Pick the MCP server and the Tool name. The list comes from the server; choose Type a name if it cannot be listed.
  4. Fixed arguments (JSON): arguments always sent, for example {"customer_id": "{{customer_id}}"}. The JSON is applied when the field loses focus; invalid JSON keeps the last valid value.
  5. Optional Instruction to speak while it runs (enable with speak_during_execution through the API).
  6. Add transitions. New MCP nodes start with no transitions and an Else edge.

How it runs#

  1. If speak_during_execution is on, the instruction is spoken.
  2. Fixed arguments are rendered with {{variables}}.
  3. If parameters has properties (API only), one LLM call fills them in from the conversation. Fixed arguments win over LLM values with the same name.
  4. The worker calls tools/call on the server (protocol details on MCP tools).
  5. response_variables are saved from the result's structured content, or from its text parsed as JSON.
  6. Equation transitions, prompt transitions and global nodes (separate LLM call), then the else edge.

Fields#

Field Type Description
type "mcp"
mcp_id string References mcps[].id on the flow
mcp_tool_name string Remote tool name
arguments object Fixed arguments, rendered with variables
parameters JSON schema object API only. Arguments the LLM fills in
response_variables object of name to JSON path API only
speak_during_execution boolean
instruction {type, text} Optional
edges, else_edge
{
  "id": "node_lookup",
  "type": "mcp",
  "name": "Look up account",
  "mcp_id": "mcp_8c2f1a90",
  "mcp_tool_name": "get_account",
  "arguments": { "phone": "{{user_number}}" },
  "response_variables": { "account_tier": "$.tier" },
  "edges": [
    {
      "id": "edge_vip",
      "destination_node_id": "node_vip",
      "transition_condition": { "type": "equation", "equations": [{ "left": "{{account_tier}}", "operator": "==", "right": "gold" }], "operator": "&&" }
    }
  ],
  "else_edge": { "id": "edge_std", "destination_node_id": "node_standard", "transition_condition": { "type": "prompt", "prompt": "Else" } }
}

Gotchas#

  • An MCP error does not stop the flow: no variables are saved and transitions are evaluated, so the else edge catches failures.
  • The node's server must be in the flow's mcps[].