Skip to content

use_tool

use_tool executes a tool by name, proxying the call to the owning upstream MCP and returning its output unchanged.

"Use a tool that was previously discovered with the discover_tool tool."

This description is fixed and does not change at runtime, unlike discover_tool’s dynamic description.

FieldTypeDescription
tool_namestringThe name of the upstream tool to call. Bare name in single-MCP mode (e.g. browser_navigate); namespaced in config file mode (e.g. chrome-devtools/browser_navigate).
tool_inputobjectThe input payload for that tool, matching its schema.

The expected shape of tool_input is whatever the upstream tool’s input schema declares — call discover_tool first to retrieve it.

The raw output returned by the upstream tool, passed through without modification.

use_tool is the only host-facing tool-execution surface. It routes by tool_name:

  • In single-MCP mode, there is one upstream, so routing is trivial.
  • In config file mode, the namespace prefix (<mcp-name>/) identifies the owning upstream. The rest of the name is forwarded to that upstream verbatim.
ConditionBehavior
tool_name does not exist (typo, or upstream not loaded)Returns a clear error.
tool_input does not match the upstream tool’s schemaThe upstream’s validation error is surfaced directly to the agent.
The upstream tool itself failsThe upstream error message is propagated unchanged.