List tool

Lists every tool the caller's org and project can reach, from every source, each flagged with whether it is activated.

GET /v1/tool

Addresshttps://api.hanzo.ai/v1/tool
MethodGET
Operationget_tool
AuthAuthorization: Bearer $HANZO_API_KEY

Lists every tool the caller's org and project can reach, from every source, each flagged with whether it is activated. This is the discovery surface: one flat set of names spanning connector actions, user functions, zap-service routes, agents, skills and the org's own external MCP servers, deduplicated by name so the highest-precedence source wins a collision. It lists; it does not call — dispatch is POST /v1/tool/call.

Request

2 fields.

FieldInTypeRequiredDescription
sourcequerystring—Source keeps only tools from one source — connector, function, zap-service, agent, skill or mcp.
activatedquerystring—Activated keeps only the tools activated for the caller's org and project, and only when it is exactly the string "true".

Response

StatusBodyMeaning
200tool.toolListok
defaultproblem-detailsrefused

200 body — 11 fields.

FieldInTypeAlwaysDescription
toolsbodytool.Tool[]—Tools is every tool the caller may see, deduplicated by name with source precedence applied.
tools[].activatedbodyboolean—Activated is filled by the registry from the activation store for the requesting (org,project); providers leave it zero.
tools[].descriptionbodystring—Description is the prose a model reads to decide whether to call the tool.
tools[].dispatchablebodyboolean—Dispatchable is whether the tool can be CALLED.
tools[].inputSchemabodyany—Schema is the JSON Schema of the call arguments — the MCP inputSchema.
tools[].namebodystring—Name is the tool's id in the flat, fleet-wide tool namespace — the value a tools/call passes.
tools[].pricebodytool.Price—
tools[].price.amountbodyany—Amount is what ONE call costs, EXACTLY: an 18-decimal USD value, so a per-call price of 0.0025is0.0025 is 0.0025 and not a cent-floored zero.
tools[].price.currencybodystring—Currency is the ISO 4217 code, e.g. "USD".
tools[].price.recipientbodystring—Recipient is the payout wallet ref the marketplace seller is paid at.
tools[].sourcebodystring—Source is where the tool comes from: connector, function, zap-service, agent, skill or mcp.

Failure carries the platform error shape — see Errors.

Examples

hanzo tool get
import { Configuration, ToolApi } from 'hanzoai';

const api = new ToolApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.getTool();
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import ToolApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = ToolApi(client).get_tool()
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.ToolAPI.GetTool(context.Background()).Execute()
if err != nil {
	return err
}
use hanzo_client::apis::{configuration::Configuration, tool_api};

let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();

let result = tool_api::get_tool(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.ToolApi;

ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));

var result = new ToolApi(client).getTool();
curl https://api.hanzo.ai/v1/tool \
  -H "Authorization: Bearer $HANZO_API_KEY"

MCP reaches tool through the tool tool, which names its 17 operations with its own verbs — this one among them, under a name only MCP declares. describe explains any of them:

curl -X POST https://api.hanzo.ai/v1/mcp \
  -H "Content-Type: application/json" \
  -d '{
       "jsonrpc": "2.0",
       "id": 1,
       "method": "tools/call",
       "params": {
         "name": "describe",
         "arguments": {
           "op": "list_tools"
         }
       }
     }'

Tool API · All Hanzo APIs · Interactive reference

Was this page useful?