{"openapi":"3.1.0","info":{"title":"Cockroach Org Access (BYOK) API","version":"0.1.0","description":"Cockroach Org Access (BYOK) lets an AI assistant read your own Cockroach Org Access data through the Cockroach Org Access API with a key you supply (service account API key secret). Read-only: 10 tools (list_api_keys, get_api_key, list_service_accounts, get_service_account, list_folders, get_folder, list_jwt_issuers, get_jwt_issuer, list_workspaces, get_workspace). The BYOK key travels with each...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-cockroach-org-iam.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-cockroach-org-iam/docs"},"termsOfService":"https://connectorbay.com/byok-cockroach-org-iam/terms"},"servers":[{"url":"https://byok-cockroach-org-iam.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-cockroach-org-iam/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_api_keys":{"post":{"operationId":"list_api_keys","summary":"List the organization's API keys with id, name, owning service account and creation time. Key secrets are never part of ","description":"List the organization's API keys with id, name, owning service account and creation time. Key secrets are never part of the answer. Use for \"Which API keys exist for my CockroachDB Cloud service accounts\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"service_account_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only keys of this service account id.","title":"Service Account Id"},"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_api_keysArguments","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_api_key":{"post":{"operationId":"get_api_key","summary":"Get one API key's metadata by id: name, owning service account and creation time. The secret is not returned. Use for \"W","description":"Get one API key's metadata by id: name, owning service account and creation time. The secret is not returned. Use for \"Who owns CockroachDB API key k1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"api_key_id":{"description":"API key id, as returned by list_api_keys.","maxLength":100,"title":"Api Key Id","type":"string"}},"required":["api_key_id"],"title":"get_api_keyArguments","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_service_accounts":{"post":{"operationId":"list_service_accounts","summary":"List service accounts with description, creator, role grants (direct and from groups) and creation time. Use for \"Which ","description":"List service accounts with description, creator, role grants (direct and from groups) and creation time. Use for \"Which service accounts does my CockroachDB Cloud organization have and what roles do they hold\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"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_service_accountsArguments","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_service_account":{"post":{"operationId":"get_service_account","summary":"Get one service account by id: description, creator, role grants and creation time. Use for \"What roles does CockroachDB","description":"Get one service account by id: description, creator, role grants and creation time. Use for \"What roles does CockroachDB service account sa1 hold\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"service_account_id":{"description":"Service account id, as returned by list_service_accounts.","maxLength":100,"title":"Service Account Id","type":"string"}},"required":["service_account_id"],"title":"get_service_accountArguments","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_folders":{"post":{"operationId":"list_folders","summary":"List folders of the organization with name, parent, path, labels and resource type. Can filter by absolute folder path. ","description":"List folders of the organization with name, parent, path, labels and resource type. Can filter by absolute folder path. Use for \"Which folders organize my CockroachDB Cloud clusters\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"path":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Only the folder at this absolute path, for example '/prod/'.","title":"Path"},"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_foldersArguments","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_folder":{"post":{"operationId":"get_folder","summary":"Get one folder by id: name, parent, full path, labels and resource type. Use for \"Show the CockroachDB Cloud folder f1\".","description":"Get one folder by id: name, parent, full path, labels and resource type. Use for \"Show the CockroachDB Cloud folder f1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"folder_id":{"description":"Folder id, as returned by list_folders.","maxLength":100,"title":"Folder Id","type":"string"}},"required":["folder_id"],"title":"get_folderArguments","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_jwt_issuers":{"post":{"operationId":"list_jwt_issuers","summary":"List the JWT issuers trusted for single sign-on to CockroachDB Cloud with issuer URL, audience, claim and identity mappi","description":"List the JWT issuers trusted for single sign-on to CockroachDB Cloud with issuer URL, audience, claim and identity mapping. Key sets are not returned. Use for \"Which JWT issuers can authenticate to my CockroachDB Cloud organization\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"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_jwt_issuersArguments","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_jwt_issuer":{"post":{"operationId":"get_jwt_issuer","summary":"Get one JWT issuer by id: issuer URL, audience, claim and identity mapping. The key set is not returned. Use for \"Show C","description":"Get one JWT issuer by id: issuer URL, audience, claim and identity mapping. The key set is not returned. Use for \"Show CockroachDB JWT issuer j1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"issuer_id":{"description":"JWT issuer id, as returned by list_jwt_issuers.","maxLength":100,"title":"Issuer Id","type":"string"}},"required":["issuer_id"],"title":"get_jwt_issuerArguments","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_workspaces":{"post":{"operationId":"list_workspaces","summary":"List virtual cluster workspaces with cloud provider, regions, default CPU burst limit and dates. Use for \"Which virtual ","description":"List virtual cluster workspaces with cloud provider, regions, default CPU burst limit and dates. Use for \"Which virtual cluster workspaces do I have on CockroachDB Cloud\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"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_workspacesArguments","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_workspace":{"post":{"operationId":"get_workspace","summary":"Get one virtual cluster workspace by id: cloud provider, regions, default CPU burst limit and dates. Use for \"Show Cockr","description":"Get one virtual cluster workspace by id: cloud provider, regions, default CPU burst limit and dates. Use for \"Show CockroachDB workspace w1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace_id":{"description":"Workspace id, as returned by list_workspaces.","maxLength":100,"title":"Workspace Id","type":"string"}},"required":["workspace_id"],"title":"get_workspaceArguments","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}}}}