All nodes/Integrations/HTTP & Web
MCP Tool
An MCP tool via a saved workspace connection (URL, auth, mode, tool).
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.
- Execute + Data
- LLM
- Extension
- Execute + Data + Streaming
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 theextensionsport 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
Runinput, aSuccessoutput, plusErrorwhen 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 carriestool_name,resultandis_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
| Port | Wire | Payload | Notes |
|---|---|---|---|
Runinput | Execute + Dataexecute_data | — | Execution trigger (executable mode) shown when operation_mode ≠ "as_tool" |
Outputs
| Port | Wire | Payload | Notes |
|---|---|---|---|
tool_out | Extensionlink_extension | — |
Configuration
| Field | Type | Default | Description |
|---|---|---|---|
MCP connectionconnection_id | string | "" | Workspace MCP connection ID connection: mcp |