How to build a Tool Wrapper
A Tool Wrapper is a custom tool you build by wrapping an existing tool — a built-in one like web search, or a tool from a connection — and pinning some of its arguments so the AI agent only has to supply the rest. You give the wrapper its own name, its own inputs, and a clear job, and the agent calls it instead of the more general tool underneath.
Use a Tool Wrapper when a broad tool is almost right but you want to narrow it to one repeatable task. For example, a property_search tool might take a single city input and, under the hood, call web search with the query fixed to find properties for sale in <city> on a specific set of sites. The agent only chooses the city; everything else is decided for it.
A Tool Wrapper is a good fit when the underlying tool already does the work and you mainly want to constrain, rename, or reshape it. If the task instead needs judgment over unstructured text, use a Custom AI Tool; if it is a fixed rule or calculation with no existing tool to lean on, use a Custom Code Tool. Both are covered in Custom Tools.
Before you start
The wrapper can only wrap a tool that is already available on the thunk — the same tools the AI agent can call today. If the tool you want to wrap comes from a connection, add that connection first so its tools are enabled. See Connect business applications.
Create the wrapper
In the thunk's Custom-built tools, open Add New Tool and choose Tool Wrapper. A Create tool wrapper dialog opens.
Under Tool to wrap, pick the existing tool this wrapper should call under the hood. The list shows only tools already available on the thunk.
Under Logic/Intent, describe what the wrapper should do — the inputs it should take and how it should call the underlying tool. This is the one thing you must write; the dialog suggests some ideas:
Restrict it to only some of the parameters, and fix the rest.
Transform or reshape the output before returning it.
Call it multiple times and combine the results.
Choose Create tool.
You do not name the wrapper in this dialog. From your intent, a builder writes the tool for you — it names the tool, writes its description, defines exactly the inputs you described, and writes the logic that calls the underlying tool. The new tool opens with its builder pane, where you can watch it work and refine it in plain language, exactly as with any custom tool.
Wrap a connection's tool directly
You can also start a wrapper from the tool you want to wrap. On a connection's tool — including MCP and REST tools — open the tool's detail and choose Customize this tool. This opens the same Create tool wrapper dialog with that tool already chosen as the one to wrap, so you only supply the logic/intent. This option is available to thunk admins when the tool is enabled.
After it is built
A Tool Wrapper becomes an ordinary custom code tool once the builder finishes. There is nothing special to maintain: you edit its intent, inputs, and generated code from the tool's editor, and it has the same Try it! action as every custom tool, so you can run it with test inputs and confirm it behaves before the workflow relies on it.
Because the wrapper depends on the tool it wraps, keep that underlying tool enabled on the thunk. If it is later removed, the wrapper fails the same way any custom tool does when a tool it depends on goes away.
