All nodes/Integrations/HTTP & Web

MCP Tool

An MCP tool via a saved workspace connection (URL, auth, mode, tool).

MCP ToolT
Run

Type in the graph: mcp_tool

ToolExec

Try it

An MCP server's tools on an agent

A connection in As tool mode: the agent receives the server's whole tool set.

Entry
AI Agent
MCP ToolT
LLM
Exit
  • Execute + Data
  • LLM
  • Extension
  • Execute + Data + Streaming
Press “Copy nodes”, open the editor and hit Ctrl+V on the canvas.

Pick your own connection or knowledge base first — the graph carries REPLACE_ME.

When to use it

This node attaches an external MCP server — the standard way to hand a model somebody else’s tool set without wrapping each tool in a node of your own. Do not confuse it with Assistant MCP: that is the opposite direction, an external agent driving Flow, while here Flow is the client. For a plain HTTP API use HTTP Request, and to turn one of your own workflows into a tool use WF tool.

How it works

The node itself holds only the MCP connection. The server address, the authorization, the operation mode and the tool name live in an MCP integration (Settings → Integrations); the transport is Streamable HTTP. The token is stored in the integration rather than in the graph, so one connection is reused by several workflows.

The operation mode chosen in the integration decides the node’s ports:

  • As tool — the node has only tool_out, which goes to the extensions port of the AI Agent. At run time the node connects to the server, reads its tool list and hands the agent all of them at once, argument schemas included. Which tool to call is the model’s decision.
  • Executable — the node becomes a regular step: a Run input, a Success output, plus Error when the integration’s “Expose error output” switch is on. This mode requires a Tool name, and the arguments come from the integration’s “Tool arguments (JSON)” field. The output carries tool_name, result and is_error.

Common mistakes

  • Changing the mode in the integration after the edges are drawn. The ports are rebuilt and the old links disappear — you have to wire them again. A step whose integration was switched back to As tool fails with an explicit message.
  • The integration’s arguments are not a template. The “Tool arguments” field is parsed as JSON and is not rendered through Jinja: you cannot substitute a value from the current run. If the arguments differ per run, use As tool mode and let the model decide.
  • Invalid JSON in the arguments. The step fails while parsing, before the server is contacted.

Inputs

PortWirePayloadNotes
RuninputExecute + Dataexecute_data

Execution trigger (executable mode)

shown when operation_mode ≠ "as_tool"

Outputs

PortWirePayloadNotes
tool_outExtensionlink_extension

Configuration

FieldTypeDefaultDescription
MCP connectionconnection_idstring""

Workspace MCP connection ID

connection: mcp