{"openapi":"3.1.0","info":{"title":"Hetzner Cloud Catalog (BYOK) API","version":"0.1.0","description":"Hetzner Cloud Catalog (BYOK) lets an AI assistant read your own Hetzner Cloud Catalog data through the Hetzner Cloud Catalog API with a key you supply (Cloud project API token (read-only is enough)). Read-only: 7 tools (list_server_types, get_server_type, list_load_balancer_types, list_images, get_image, list_isos, get_pricing). The BYOK key travels with each request, is used for that one call...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-hetzner-cloud-catalog.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-hetzner-cloud-catalog/docs"},"termsOfService":"https://connectorbay.com/byok-hetzner-cloud-catalog/terms"},"servers":[{"url":"https://byok-hetzner-cloud-catalog.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-hetzner-cloud-catalog/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_server_types":{"post":{"operationId":"list_server_types","summary":"List the server plans (types) with cores, memory in GB, disk in GB, CPU type, architecture, category and prices per loca","description":"List the server plans (types) with cores, memory in GB, disk in GB, CPU type, architecture, category and prices per location. Use for \"Which Hetzner Cloud server types exist and what do they cost\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only return entries with exactly this name.","title":"Name"},"per_page":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results to return (1 to 50).","title":"Per Page"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1. meta.pagination.next_page in the answer is empty on the last page.","title":"Page"}},"title":"list_server_typesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_server_type":{"post":{"operationId":"get_server_type","summary":"Get one server plan by numeric id with its resources, prices and locations. Use for \"What are the specs and price of Het","description":"Get one server plan by numeric id with its resources, prices and locations. Use for \"What are the specs and price of Hetzner server type 22\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"server_type_id":{"description":"Numeric id of the server type, as shown by list_server_types.","minimum":1,"title":"Server Type Id","type":"integer"}},"required":["server_type_id"],"title":"get_server_typeArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_load_balancer_types":{"post":{"operationId":"list_load_balancer_types","summary":"List load balancer plans with maximum connections, services, targets and certificates, and prices per location. Use for ","description":"List load balancer plans with maximum connections, services, targets and certificates, and prices per location. Use for \"Which load balancer sizes does Hetzner offer and what do they cost\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only return entries with exactly this name.","title":"Name"},"per_page":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results to return (1 to 50).","title":"Per Page"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1. meta.pagination.next_page in the answer is empty on the last page.","title":"Page"}},"title":"list_load_balancer_typesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_images":{"post":{"operationId":"list_images","summary":"List OS images, snapshots and backups with type, OS flavor and version, architecture, disk size and deprecation date. Us","description":"List OS images, snapshots and backups with type, OS flavor and version, architecture, disk size and deprecation date. Use for \"Which Ubuntu system images can I use on Hetzner Cloud\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"type":{"anyOf":[{"enum":["system","snapshot","backup","app"],"type":"string"},{"type":"null"}],"default":null,"description":"Image type: system, snapshot, backup or app.","title":"Type"},"status":{"anyOf":[{"enum":["available","creating","unavailable"],"type":"string"},{"type":"null"}],"default":null,"description":"Image status: available, creating or unavailable.","title":"Status"},"architecture":{"anyOf":[{"enum":["x86","arm"],"type":"string"},{"type":"null"}],"default":null,"description":"CPU architecture: x86 or arm.","title":"Architecture"},"name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only return entries with exactly this name.","title":"Name"},"include_deprecated":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include deprecated images.","title":"Include Deprecated"},"per_page":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results to return (1 to 50).","title":"Per Page"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1. meta.pagination.next_page in the answer is empty on the last page.","title":"Page"}},"title":"list_imagesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_image":{"post":{"operationId":"get_image","summary":"Get one image by numeric id with OS flavor, version, architecture, sizes and deprecation. Use for \"What is Hetzner image","description":"Get one image by numeric id with OS flavor, version, architecture, sizes and deprecation. Use for \"What is Hetzner image 67794396\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"image_id":{"description":"Numeric id of the image, as shown by list_images.","minimum":1,"title":"Image Id","type":"integer"}},"required":["image_id"],"title":"get_imageArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_isos":{"post":{"operationId":"list_isos","summary":"List the ISO images that can be attached to a server, with type, architecture and deprecation. Use for \"Which ISO images","description":"List the ISO images that can be attached to a server, with type, architecture and deprecation. Use for \"Which ISO images are available to boot Hetzner servers from\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only return entries with exactly this name.","title":"Name"},"architecture":{"anyOf":[{"enum":["x86","arm"],"type":"string"},{"type":"null"}],"default":null,"description":"CPU architecture: x86 or arm.","title":"Architecture"},"include_architecture_wildcard":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to also include ISOs that are not tied to one architecture.","title":"Include Architecture Wildcard"},"per_page":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results to return (1 to 50).","title":"Per Page"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1. meta.pagination.next_page in the answer is empty on the last page.","title":"Page"}},"title":"list_isosArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_pricing":{"post":{"operationId":"get_pricing","summary":"Show the full Hetzner Cloud price list: currency, VAT rate, server, load balancer, volume, image, backup and IP prices. ","description":"Show the full Hetzner Cloud price list: currency, VAT rate, server, load balancer, volume, image, backup and IP prices. Use for \"What does everything cost on Hetzner Cloud\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_pricingArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}