An agent without tools only knows what is in its prompt. Tools let it look things up and take actions while it works: search the web, read an order, open a GitHub issue. This guide covers the ways to give a Claude agent tools in Worfilo, and how to keep them under control.
How tools work
Every Agent node has a tools port. Connect a tool-capable node to it and the canvas draws a dashed tool edge. That node is no longer a step in the run; it becomes something the agent can call, as many times as it needs, with arguments it chooses.
- The agent calls a tool, reads the result, and decides whether to call another or answer. That loop is bounded by Max tool rounds, 6 by default.
- A tool call that fails returns an error to the model instead of failing the run, so the agent can try another way.
- Every call and its result is recorded on the run, so you can replay what the agent asked and got.
Option 1: any URL, with the HTTP Request node
The HTTP Request node calls a URL you write. As a tool, give it a description and a JSON Schema for its arguments, and read the arguments with {{ args.<field> }}:
URL: https://api.example.com/orders/{{ args.order_id }}
Tool description: Look up an order by its id.
Tool arguments: {
"type": "object",
"properties": { "order_id": { "type": "string" } },
"required": ["order_id"]
}Write the description for the model, not for a person: say what the tool returns and when to use it. It is most of what the agent has to go on when it decides whether to call it.
Option 2: connected apps and saved APIs
When a call needs a key or a sign-in, keep the secret out of the workflow. A Connector node runs a GitHub, Slack, Notion, Linear or Tavily action with your connected account, and an API node calls an API you saved with its auth.
Both follow one rule as tools: inputs you fill in stay fixed, and the agent fills the rest. Set the repository on a GitHub "create issue" action and leave the title and body empty, and the agent can only open issues in that one repository. That is how you let an agent act without handing it everything.
Option 3: a whole MCP server
An MCP node calls a tool on a Model Context Protocol server you connected. Pick one tool, or switch on Offer every tool on this server to give the agent the whole server to choose from. The server describes its own tools, so there is nothing to write by hand. See MCP servers for connecting one from the marketplace or by URL.
Turn the answer into data
After its tools, an agent usually needs to hand a decision to the next step. Set a Structured output schema on the agent and it returns an object matching it, which an If or Switch node can branch on without parsing text:
{
"type": "object",
"properties": {
"found": { "type": "boolean" },
"summary": { "type": "string" }
},
"required": ["found", "summary"]
}Tips for agents with tools
- Give an agent the fewest tools that do the job. Every extra tool is another wrong choice it can make.
- Fix every input you can, so the agent only decides what it must.
- Put a Mask PII node in front of agents that read customer text.
- Use Test this node while you tune the prompt, and open the run to read each tool call.
- For a worked example, see the web research agent, which gives Claude Tavily search as a tool.
Keep reading
- Agent node: Claude with tools and structured outputThe Agent node calls Claude with your prompt, uses attached HTTP, app, API and MCP tools in a loop, and returns text plus structured output to branch on.
- Web research agent with a search toolGive a Claude agent Tavily web search as a tool it calls on its own: a research workflow that searches the web and returns a sourced summary.
- MCP servers: a marketplace of tools for your workflowsConnect Model Context Protocol servers from the Smithery marketplace or by URL, then call their tools from a workflow node or hand them to an agent.
Build it on the canvas
Create a free account, describe the workflow or wire it yourself, and run it in the browser.