{"openapi":"3.1.0","info":{"title":"Civo (BYOK) API","version":"0.1.0","description":"Civo (BYOK) lets an AI assistant read your own Civo data through the Civo API with a key you supply (API key). Read-only: 8 tools (list_regions, list_sizes, list_instances, get_instance, list_volumes, get_quota, list_dns_domains, list_charges). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is only ever sent to api.civo.com....\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-civo.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-civo/docs"},"termsOfService":"https://connectorbay.com/byok-civo/terms"},"servers":[{"url":"https://byok-civo.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-civo/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_regions":{"post":{"operationId":"list_regions","summary":"List the Civo regions with code, name, country, default flag, capacity flag and supported features. Use for \"Which Civo ","description":"List the Civo regions with code, name, country, default flag, capacity flag and supported features. Use for \"Which Civo regions are available\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_regionsArguments","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_sizes":{"post":{"operationId":"list_sizes","summary":"List the Civo instance sizes with CPU cores, RAM, disk and whether each can be selected. Use for \"What instance sizes do","description":"List the Civo instance sizes with CPU cores, RAM, disk and whether each can be selected. Use for \"What instance sizes does Civo offer\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_sizesArguments","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_instances":{"post":{"operationId":"list_instances","summary":"List the Civo compute instances in a region with size, status, IP addresses, tags and resources. Initial passwords, SSH ","description":"List the Civo compute instances in a region with size, status, IP addresses, tags and resources. Initial passwords, SSH keys and scripts are not returned. Use for \"What Civo instances do I have running\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Civo region code such as LON1, NYC1 or FRA1 (from list_regions). If left out Civo picks one at random, so name it.","title":"Region"},"tags":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only instances with these tags, separated by spaces.","title":"Tags"},"page":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items per page (1 to 100, default 20).","title":"Per Page"}},"title":"list_instancesArguments","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_instance":{"post":{"operationId":"get_instance","summary":"Get one Civo instance by id: size, status, IP addresses, tags and resources. Initial passwords and SSH keys are not retu","description":"Get one Civo instance by id: size, status, IP addresses, tags and resources. Initial passwords and SSH keys are not returned. Use for \"Show details of this Civo instance\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"instance_id":{"description":"Civo instance id, as returned by list_instances.","maxLength":80,"title":"Instance Id","type":"string"},"region":{"description":"Civo region code the resource runs in, such as LON1 or NYC1 (from list_regions).","maxLength":20,"title":"Region","type":"string"}},"required":["instance_id","region"],"title":"get_instanceArguments","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_volumes":{"post":{"operationId":"list_volumes","summary":"List the Civo block storage volumes in a region with size, status and the instance each is attached to. Use for \"What Ci","description":"List the Civo block storage volumes in a region with size, status and the instance each is attached to. Use for \"What Civo volumes do I have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Civo region code such as LON1, NYC1 or FRA1 (from list_regions). If left out Civo picks one at random, so name it.","title":"Region"}},"title":"list_volumesArguments","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_quota":{"post":{"operationId":"get_quota","summary":"Show the Civo account quota limits and current usage: instances, CPU, RAM, disk, volumes, snapshots, IPs, networks and f","description":"Show the Civo account quota limits and current usage: instances, CPU, RAM, disk, volumes, snapshots, IPs, networks and firewalls. Use for \"How much of my Civo quota am I using\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_quotaArguments","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_dns_domains":{"post":{"operationId":"list_dns_domains","summary":"List the DNS domain names managed in the Civo account with id and name. Use for \"Which domains do I manage in Civo DNS\".","description":"List the DNS domain names managed in the Civo account with id and name. Use for \"Which domains do I manage in Civo DNS\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_dns_domainsArguments","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_charges":{"post":{"operationId":"list_charges","summary":"List Civo chargeable resources with code, label, period, hours billed and region. A date range of at most 31 days; defau","description":"List Civo chargeable resources with code, label, period, hours billed and region. A date range of at most 31 days; defaults to the current month so far. Use for \"What resources has Civo charged me for this month\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"start_time":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the range, RFC 3339 date-time. Defaults to the start of the current month.","title":"Start Time"},"end_time":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"End of the range, RFC 3339 date-time, at most 31 days after start_time. Defaults to now.","title":"End Time"}},"title":"list_chargesArguments","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}}}}