projects
projects: 48 operations.
projects: 48 operations. Name one in "op" and pass that operation's own arguments in "input". describe returns an operation's input schema.
| Tool | projects |
| Address | 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 | — | — | one of the operations below |
op — what each one does:
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 indraft.deploy_project— Takes a built site live athttps://<slug>.hanzo.appin one call.create_project_deployment— Opens a deployment and hands back a short-lived, prefix-scoped grant to write its bytes straight to object storage.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 MCP 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
MCP exposes projects, but the copy of the OpenAPI document this build holds (pinned at 529be4ccb) 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 MCP 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.
Generated from tools/list on https://api.hanzo.ai/v1/mcp — 121 tools captured 2026-08-16.
How is this guide?