Hanzo
OpenapiTools

Gives the caller's org one more external MCP server, so its tools join the…

Gives the caller's org one more external MCP server, so its tools join the org's tool plane and the fleet's MCP door.

POST /v1/tools/mcp/servers

Addresshttps://api.hanzo.ai/v1/tools/mcp/servers
MethodPOST
Operationpost_tools_mcp_servers
AuthAuthorization: Bearer $HANZO_API_KEY

Gives the caller's org one more external MCP server, so its tools join the org's tool plane and the fleet's MCP door. It is the ONE way an org gains a server, whether it typed the URL in or enabled a catalog listing: both write the SAME record, and source says which it was. A second registration path would be a second place for a server to exist, and then a second place to forget to check the credential.

The credential VALUE is sealed in KMS under a per-org ref; the row keeps only the URL, the header name to inject it into, and a has-secret flag — so a secret with no KMS configured is refused 503 rather than stored in the clear. The URL is SSRF-validated here and re-checked by the dialer at connect time, which is the DNS-rebinding defense.

Enabling a listing the org already enabled REVISES that server rather than adding a near-duplicate beside it, so a retried enable is the same one server. Answers 201 with the stored record.

Request

5 fields, body application/json (required).

FieldInTypeRequiredDescription
authHeaderbodystringAuthHeader is the request header the credential is injected into, e.g.
listingbodystringListing enables a CATALOG entry instead — the id from GET /v1/tools/catalog.
namebodystringName labels the server for the org.
secretbodystringSecret is the credential VALUE.
urlbodystringURL is the server's JSON-RPC endpoint. It must be an http(s) URL naming a PUBLIC host: loopback, link-local, private and cloud-metadata addresses are refused…

Response

StatusBodyMeaning
201MCPServercreated

201 body — 9 fields.

FieldInTypeAlwaysDescription
authHeaderbodystringAuthHeader is the request header the KMS-held credential is injected into, e.g.
createdAtbodyintegerCreatedAt is when the server was registered, Unix seconds.
hasSecretbodybooleanHasSecret is whether a credential is sealed in KMS for this server.
idbodystringID is the server's id within the org.
listingbodystringListing is the catalog entry this server was enabled from, when it was.
namebodystringName is the org's label for the server.
orgbodystringOrg is the org that registered the server — the validated caller's.
sourcebodystringSource is where the registration came from: "catalog" when it was enabled off the shelf, "org" when the org registered the URL itself.
urlbodystringURL is the server's JSON-RPC endpoint.

Failure carries the platform error shape — see Errors.

Examples

hanzo has no subcommand for this operation — the CLI serves only what cloud's live route table confirms. Use HTTP or an SDK.


Tools API · All Hanzo APIs · Interactive reference

How is this guide?

On this page