get_v1_tools_catalog_id
GetListing returns one catalog entry in full: the publisher's description, its repository and site, every package form with the runtime that launches it, and every hosted endpoint.
GetListing returns one catalog entry in full: the publisher's description, its repository and site, every package form with the runtime that launches it, and every hosted endpoint. It is what a branding page renders, and what tells a caller whether the listing can be enabled here and now (a streamable-http remote) or needs somewhere to run first (a stdio package).
A HIDDEN listing is not served to an org — a shelf that renders what it does not list would be a way around the shelf — but is served to a SuperAdmin, who is the one deciding whether to put it back.
| Tool | get_v1_tools_catalog_id |
| Door | https://api.hanzo.ai/v1/mcp |
| Method | tools/call (JSON-RPC 2.0) |
| Arguments | 1, 1 required |
| Operation | GET /v1/tools/catalog/{id} |
| Product | tools |
Arguments
| Field | Type | Required | Default | Values | Description |
|---|---|---|---|---|---|
id | string | yes | — | — | ID is the listing, from the path. It is the publisher's reverse-DNS name with its one slash written as an underscore — "com.stripe_mcp". |
tools/list declares a type and a description for each field and nothing further. The Required column is taken from GET /v1/tools/catalog/{id}, the operation this tool dispatches to — the same declaration the REST API validates against. A — means neither the door nor that operation constrains the field.
Call it
A tools/call carries every argument in one flat object — nothing binds to a path or a query string. This call carries exactly the arguments the operation requires, so it is the smallest one that can run.
curl -X POST https://api.hanzo.ai/v1/mcp \
-H "Authorization: Bearer $HANZO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_v1_tools_catalog_id",
"arguments": {
"id": "<id>"
}
}
}'Values are the operation's own defaults and enumerated values where it declares them, and a <placeholder> where neither source declares one. tools/list needs no credential; tools/call does — called without one the door answers HTTP 200 with a JSON-RPC result whose isError is set and whose text says what was missing. How to get a key →
The operation behind it
| Operation | Route | Product | Summary |
|---|---|---|---|
cloud_get_v1_tools_catalog_id | GET /v1/tools/catalog/{id} | tools | GetListing returns one catalog entry in full: the publisher's description, its repository… |
The same capability over plain HTTP is in the tools API reference, on https://api.hanzo.ai.
All 833 tools · The door · API reference
Generated from tools/list on https://api.hanzo.ai/v1/mcp — 833 tools captured 2026-08-01 (this build read the vendored copy; the door was unreachable).
How is this guide?
get_v1_tools_catalog
ListCatalog lists the MCP servers the public registries publish, as we hold them: our canonical copy of registry.modelcontextprotocol.io, plus what we decided about each entry.
patch_v1_tools_catalog_id
CurateListing sets what WE say about one catalog entry — hidden, featured, official, logo — and answers with the stored listing. SuperAdmin only; every other caller is refused.