{"openapi":"3.1.0","info":{"title":"Cockroach Cloud (BYOK) API","version":"0.1.0","description":"Cockroach Cloud (BYOK) lets an AI assistant read your own Cockroach Cloud data through the Cockroach Cloud API with a key you supply (service account API key secret). Read-only: 11 tools (get_organization, list_clusters, get_cluster, list_cluster_nodes, list_cluster_databases, list_cluster_sql_users, list_cluster_backups, get_cluster_ip_allowlist, list_available_regions, list_invoices,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-cockroach.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-cockroach/docs"},"termsOfService":"https://connectorbay.com/byok-cockroach/terms"},"servers":[{"url":"https://byok-cockroach.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-cockroach/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/get_organization":{"post":{"operationId":"get_organization","summary":"Show the organization the API key belongs to: id, name, label and creation time. Use for \"Which CockroachDB Cloud organi","description":"Show the organization the API key belongs to: id, name, label and creation time. Use for \"Which CockroachDB Cloud organization is my key for\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_organizationArguments","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_clusters":{"post":{"operationId":"list_clusters","summary":"List the organization's clusters with cloud provider, plan, version, state, regions and size. Sorted by name unless chan","description":"List the organization's clusters with cloud provider, plan, version, state, regions and size. Sorted by name unless changed. The rate limit is 10 requests per second. Use for \"What CockroachDB clusters do I have and are they running\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"show_inactive":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include deleted or failed clusters.","title":"Show Inactive"},"sort_by":{"anyOf":[{"enum":["NAME","CREATED_AT","DELETED_AT"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort by NAME, CREATED_AT or DELETED_AT.","title":"Sort By"},"sort_order":{"anyOf":[{"enum":["ASC","DESC"],"type":"string"},{"type":"null"}],"default":null,"description":"ASC (default) or DESC.","title":"Sort Order"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return per page (1 to 100).","title":"Limit"},"page":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Page token copied from pagination.next_page of the previous answer; leave empty for the first page.","title":"Page"}},"title":"list_clustersArguments","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_cluster":{"post":{"operationId":"get_cluster","summary":"Get one cluster: provider, plan, version, state, network visibility, delete protection, regions with node counts, and ha","description":"Get one cluster: provider, plan, version, state, network visibility, delete protection, regions with node counts, and hardware config. Use for \"What version and regions does my CockroachDB cluster have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"cluster_id":{"description":"CockroachDB Cloud cluster id (UUID); get it from list_clusters.","maxLength":100,"title":"Cluster Id","type":"string"}},"required":["cluster_id"],"title":"get_clusterArguments","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_cluster_nodes":{"post":{"operationId":"list_cluster_nodes","summary":"List the nodes of a cluster with region and status, optionally for one region. Use for \"Are all nodes of my CockroachDB ","description":"List the nodes of a cluster with region and status, optionally for one region. Use for \"Are all nodes of my CockroachDB cluster live\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"cluster_id":{"description":"CockroachDB Cloud cluster id (UUID); get it from list_clusters.","maxLength":100,"title":"Cluster Id","type":"string"},"region_name":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only nodes in this region, for example 'us-east-1'.","title":"Region Name"},"sort_order":{"anyOf":[{"enum":["ASC","DESC"],"type":"string"},{"type":"null"}],"default":null,"description":"ASC (default) or DESC.","title":"Sort Order"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return per page (1 to 100).","title":"Limit"},"page":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Page token copied from pagination.next_page of the previous answer; leave empty for the first page.","title":"Page"}},"required":["cluster_id"],"title":"list_cluster_nodesArguments","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_cluster_databases":{"post":{"operationId":"list_cluster_databases","summary":"List the databases of a cluster with their table counts. Use for \"Which databases exist in my CockroachDB cluster\".","description":"List the databases of a cluster with their table counts. Use for \"Which databases exist in my CockroachDB cluster\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"cluster_id":{"description":"CockroachDB Cloud cluster id (UUID); get it from list_clusters.","maxLength":100,"title":"Cluster Id","type":"string"},"sort_order":{"anyOf":[{"enum":["ASC","DESC"],"type":"string"},{"type":"null"}],"default":null,"description":"ASC (default) or DESC.","title":"Sort Order"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return per page (1 to 100).","title":"Limit"},"page":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Page token copied from pagination.next_page of the previous answer; leave empty for the first page.","title":"Page"}},"required":["cluster_id"],"title":"list_cluster_databasesArguments","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_cluster_sql_users":{"post":{"operationId":"list_cluster_sql_users","summary":"List the SQL user names of a cluster (names only, never passwords). Use for \"Which SQL users exist on my CockroachDB clu","description":"List the SQL user names of a cluster (names only, never passwords). Use for \"Which SQL users exist on my CockroachDB cluster\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"cluster_id":{"description":"CockroachDB Cloud cluster id (UUID); get it from list_clusters.","maxLength":100,"title":"Cluster Id","type":"string"},"sort_order":{"anyOf":[{"enum":["ASC","DESC"],"type":"string"},{"type":"null"}],"default":null,"description":"ASC (default) or DESC.","title":"Sort Order"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return per page (1 to 100).","title":"Limit"},"page":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Page token copied from pagination.next_page of the previous answer; leave empty for the first page.","title":"Page"}},"required":["cluster_id"],"title":"list_cluster_sql_usersArguments","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_cluster_backups":{"post":{"operationId":"list_cluster_backups","summary":"List the backups of a cluster with their ids and snapshot times, optionally within a time range. Use for \"When was my Co","description":"List the backups of a cluster with their ids and snapshot times, optionally within a time range. Use for \"When was my CockroachDB cluster last backed up\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"cluster_id":{"description":"CockroachDB Cloud cluster id (UUID); get it from list_clusters.","maxLength":100,"title":"Cluster Id","type":"string"},"start_time":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only backups at or after this ISO 8601 time, for example 2026-10-01T00:00:00Z.","title":"Start Time"},"end_time":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only backups before this ISO 8601 time.","title":"End Time"},"sort_order":{"anyOf":[{"enum":["ASC","DESC"],"type":"string"},{"type":"null"}],"default":null,"description":"ASC (default) or DESC.","title":"Sort Order"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return per page (1 to 100).","title":"Limit"},"page":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Page token copied from pagination.next_page of the previous answer; leave empty for the first page.","title":"Page"}},"required":["cluster_id"],"title":"list_cluster_backupsArguments","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_cluster_ip_allowlist":{"post":{"operationId":"get_cluster_ip_allowlist","summary":"Show the IP allowlist of a cluster: CIDR ranges, names, and whether each allows SQL and console access. Use for \"Which I","description":"Show the IP allowlist of a cluster: CIDR ranges, names, and whether each allows SQL and console access. Use for \"Which IP ranges may connect to my CockroachDB cluster\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"cluster_id":{"description":"CockroachDB Cloud cluster id (UUID); get it from list_clusters.","maxLength":100,"title":"Cluster Id","type":"string"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return per page (1 to 100).","title":"Limit"},"page":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Page token copied from pagination.next_page of the previous answer; leave empty for the first page.","title":"Page"}},"required":["cluster_id"],"title":"get_cluster_ip_allowlistArguments","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_available_regions":{"post":{"operationId":"list_available_regions","summary":"List the cloud regions a new cluster or node could be placed in, optionally for one provider or serverless only. Use for","description":"List the cloud regions a new cluster or node could be placed in, optionally for one provider or serverless only. Use for \"Which AWS regions can I put a CockroachDB cluster in\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"provider":{"anyOf":[{"enum":["AWS","GCP","AZURE"],"type":"string"},{"type":"null"}],"default":null,"description":"Cloud provider: GCP, AWS or AZURE.","title":"Provider"},"serverless":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True for regions that support serverless clusters.","title":"Serverless"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return per page (1 to 100).","title":"Limit"},"page":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Page token copied from pagination.next_page of the previous answer; leave empty for the first page.","title":"Page"}},"title":"list_available_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_invoices":{"post":{"operationId":"list_invoices","summary":"List the organization's invoices with period, status and totals, optionally by status or time range. Use for \"What did C","description":"List the organization's invoices with period, status and totals, optionally by status or time range. Use for \"What did CockroachDB Cloud cost me last month\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"enum":["FINALIZED","DRAFT"],"type":"string"},{"type":"null"}],"default":null,"description":"FINALIZED or DRAFT.","title":"Status"},"start_time":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only invoices from this ISO 8601 time.","title":"Start Time"},"end_time":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only invoices up to this ISO 8601 time.","title":"End Time"}},"title":"list_invoicesArguments","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_audit_log_events":{"post":{"operationId":"list_audit_log_events","summary":"List audit log events of the organization (who did what, when) with action, actor and cluster. Audit logs may need a pla","description":"List audit log events of the organization (who did what, when) with action, actor and cluster. Audit logs may need a plan that includes them. Use for \"Who changed my CockroachDB cluster settings recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"starting_from":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"ISO 8601 time or cursor to start from; use next_starting_from of the previous answer to page.","title":"Starting From"},"sort_order":{"anyOf":[{"enum":["ASC","DESC"],"type":"string"},{"type":"null"}],"default":null,"description":"ASC or DESC.","title":"Sort Order"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many events to return (1 to 100).","title":"Limit"}},"title":"list_audit_log_eventsArguments","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}}}}