Skip to content
Worfilo

Blog

How to give a Claude agent tools: HTTP, apps and MCP

By Oshadha Vimukthi ·

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> }}:

HTTP Request as a tool
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:

Structured output (JSON Schema)
{
  "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.

Build it on the canvas

Create a free account, describe the workflow or wire it yourself, and run it in the browser.