The Tool step is a deterministic execution node that invokes a predefined Tool and returns a schema-validated output. It enables reuse of packaged Tool logic across workflows, APIs, and other Tools without duplicating implementation details.
Use a Tool step when you want to:
-
Reuse the same logic across multiple workflows or APIs
-
Maintain consistent input and output formats
-
Centralise business logic instead of duplicating steps
-
Run the same tool with different connections
At runtime, the tool step:
-
Input validation – Incoming data is validated against the tool’s defined input schema.
-
Execution – The tool’s internal logic (including lookups, imports, branches, transformations, and hooks) is executed.
-
Output validation – The resulting data is validated against the tool’s output schema before being returned.
If the input or output does not match the defined structure, the step will stop and return an error. This prevents unexpected issues in downstream steps and ensures reliable execution.
As the Tool step enforces schema validation at runtime, it ensures data type, predictable payload structures, and improved reliability across distributed integrations.
-
The Tool step executes tools deterministically.
-
Support for using tools directly within flows/APIs will be introduced in a future release.
-
Input and output schemas are strictly enforced.
To configure a tool step:
-
Add a Tool step to your workflow.
-
Select the Tool you want to execute.
-
Override connections used by the Tool.
-
Use Run/Preview to validate behavior.
The tool step accepts JSON input that must conform to the tool’s input schema. At runtime, this schema validation ensures that the data passed into the tool has the correct structure, uses the expected data types, and includes all required fields. By enforcing these rules, the Tool step helps prevent misconfigurations and ensures predictable, reliable execution regardless of where the tool is used.
After execution, the tool step returns JSON output that is validated against the tool’s output schema. This guarantees that downstream steps and consumers always receive well-defined, consistent data. Schema-enforced outputs make tools easier to compose, safer to reuse, and more reliable when integrated into larger workflows or APIs.
The Tool step allows you to override connections at runtime. This means you can use the same tool logic across different resources without modifying the original tool configuration.For example, you can run the same tool in different agents by selecting different connections at execution time.
These connection overrides apply only to that specific tool step when it runs. They do not modify or permanently change the tool’s original configuration.
The Tool step includes a built-in Run/Preview capability that lets you safely iterate and validate during configuration. You can provide sample input data, execute the tool, and review the output before deploying changes. This preview experience helps verify that inputs are mapped correctly, schemas are satisfied, and the tool behaves as expected, reducing the risk of runtime errors.
Once you build a tool using Tool builder, it can be referenced by an AI agent. You can configure connection overrides that help you monitor the connections used at runtime. This allows the same tool to be reused across different agents and execution contexts without changing the tool logic.
Once you build a tool using Tool builder, it can be referenced by an MCP server for execution.
When attaching a tool to an MCP server, you can:
-
Configure connection overrides to control which connections are used at runtime.
-
Define annotations that guide how the tool is executed and exposed to the AI agent.
This allows you to reuse tools across different MCP servers and execution contexts without modifying the tool logic.
You must consider the following mandatory validations while defining the MCP tool name:
-
Tool names should be between 1 and 128 characters in length (inclusive).
-
Tool names should be considered case-sensitive.
-
The following should be the only allowed characters: uppercase and lowercase ASCII letters (A-Z, a-z), digits (0-9), underscore (_), hyphen (-), and dot (.).
-
Tool names should not contain spaces, commas, or other special characters.
-
Tool names should be unique within a server.
Annotations supported by Tools
|
Annotation |
Type |
Description |
|---|---|---|
|
readOnlyHint |
boolean |
If true, indicates the tool does not modify its environment |
|
destructiveHint |
boolean |
If true, the tool may perform destructive updates (only meaningful when readOnlyHint is false) |
|
idempotentHint |
boolean |
If true, calling the tool repeatedly with the same arguments has no additional effect (only meaningful when readOnlyHint is false) |
|
openWorldHint |
boolean |
If true, the tool may interact with an “open world” of external entities |