projects
projects: 37 operations.
projects: 37 operations. Name one in "op" and pass that operation's own arguments in "input". describe returns an operation's input schema.
| Tool | projects |
| Door | https://api.hanzo.ai/v1/mcp |
| Method | tools/call (JSON-RPC 2.0) |
| Arguments | 2, 1 required |
| Operation | none in the OpenAPI document |
| Product | — |
Arguments
| Field | Type | Required | Default | Values | Description |
|---|---|---|---|---|---|
input | object | — | — | — | arguments for the chosen op |
op | string | yes | — | — | delete_project — Deletes a project and takes its site off the internet. delete_project_domain — Gives a custom hostname back, so the name is free to reuse. list_projects — Returns every project your org owns. get_project — Returns one project of yours by slug — its settings, its live URL and the deployment currently serving it. list_project_deployments — Returns a project's deploy history, newest version first. get_project_deployment — Returns one deployment of a project by id. list_project_domains — Returns every custom hostname this site holds: the live ones, plus any pending claim with the DNS records it still owes. update_project — Changes a project's settings, and only the settings you send. create_project — Creates a project — the handle a site is deployed and served under — and answers 201 with it in draft. complete_project_deployment — CompleteDeployment is the CI completion hook that flips a queued git deployment to live (or error) once CI has synced… create_project_domain — Attaches one or more CUSTOM public hostnames to this org's site. verify_project_domain — Checks the DNS challenge for a pending custom hostname and, when it passes, promotes the host so it begins routing at… purge_project — Flushes the site's edge cache without redeploying anything. create_project_fork — Creates a project seeded from a PUBLISHED EXAMPLE — either a starter-kit template from the ONE embedded gallery… |
tools/list declares a type, a description, which fields are required and an enumerated value set for each field and nothing further, and the OpenAPI document describes no operation for this tool. A — above means neither source constrains the field, not that it is unconstrained in practice.
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": "projects",
"arguments": {
"op": "list_projects"
}
}
}'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
The door exposes projects, but the copy of the OpenAPI document this build holds (pinned at c95fb15e1) describes no operation for it — neither under that name nor at the route the name implies. That is either a route the document has yet to declare, or one the door has renamed since the pin. Everything on this page comes from tools/list; there is no REST reference to link to until the two agree.
How is this guide?