Hanzo
OpenapiTools

Sets what WE say about one catalog entry — hidden, featured, official, logo —…

Sets what WE say about one catalog entry — hidden, featured, official, logo — and answers with the stored listing.

PATCH /v1/tools/catalog/{id}

Addresshttps://api.hanzo.ai/v1/tools/catalog/{id}
MethodPATCH
Operationpatch_tools_catalog_by_id
AuthAuthorization: Bearer $HANZO_API_KEY

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.

Curation is the half of a catalog row a sync cannot write, and this is the only thing that writes it. The upstream half is never editable here: a description that disagreed with the publisher's would be a fork of their listing, and the next sync would silently undo it.

Request

6 fields, body application/json (required).

FieldInTypeRequiredDescription
idpathstringyesID is the listing to curate, from the path.
featuredbodybooleanFeatured puts the listing on the front of the shelf, or takes it off.
hiddenbodybooleanHidden takes the listing off the org-visible shelf, or puts it back.
idbodystringID is the listing to curate, from the path.
logobodystringLogo is the brand mark to render, an https URL.
officialbodybooleanOfficial overrides the derivation: setting it makes this answer FINAL, so no later sync re-derives over it.

Response

StatusBodyMeaning
200MCPListingok

200 body — 24 fields.

FieldInTypeAlwaysDescription
descriptionbodystringDescription is the publisher's one-line summary.
featuredbodybooleanFeatured puts the listing on the front of the shelf.
hiddenbodybooleanHidden keeps the listing out of the org-visible catalog. Curation: a sync never changes it.
idbodystringID addresses the listing in a URL. It is the reverse-DNS NAME with its one slash written as an underscore — reversible, because a namespace never contains an…
logobodystringLogo is the brand mark to render for the listing — the publisher's icon when the entry carries one, or the one an admin set.
namebodystringName is the publisher's reverse-DNS name, e.g.
officialbodybooleanOfficial is whether this is the vendor's OWN server rather than someone else's copy of it.
packagesbodyMCPPackage[]Packages are the runnable package forms — npm, pypi, oci — each with the runtime that launches it and the transport it then speaks.
packages[].identifierbodystringIdentifier is the package name or download URL.
packages[].registrybodystringRegistry is where the package is fetched from: npm, pypi, oci, nuget, mcpb.
packages[].runtimebodystringRuntime is the publisher's hint for what launches it: npx, uvx, docker.
packages[].transportbodystringTransport is what the launched process speaks: usually "stdio".
packages[].versionbodystringVersion is the exact published package version.
registrybodystringRegistry is the upstream this row was synced from.
remotesbodyMCPRemote[]Remotes are the hosted endpoints the publisher serves the server at.
remotes[].transportbodystringTransport is "streamable-http" or "sse".
remotes[].urlbodystringURL is the endpoint.
repobodystringRepo is the source repository URL, when the entry names one.
sitebodystringSite is the project's homepage, when the entry names one.
syncedbodyintegerSynced is when this row was last confirmed against upstream, Unix seconds.
titlebodystringTitle is the human-readable display name, when the entry carries one.
transportsbodystring[]Transports are the distinct transports this server can be reached over, sorted: some of "stdio", "streamable-http", "sse".
vendorbodystringVendor is the namespace half of Name — the publisher, e.g.
versionbodystringVersion is the published version of this listing.

Failure carries the platform error shape — see Errors.

Examples

hanzo tools catalog update <id>

Tools API · All Hanzo APIs · Interactive reference

How is this guide?

On this page