{"openapi":"3.1.0","info":{"title":"GitHub Codespaces (BYOK) API","version":"0.1.0","description":"GitHub Codespaces (BYOK) lets an AI assistant read your own GitHub Codespaces data through the GitHub Codespaces API with a key you supply (GitHub personal access token (classic with codespace scope, or fine-grained with codespaces read permission)). Read-only: 9 tools (list_my_codespaces, get_codespace, list_codespace_machines, list_repo_codespaces, list_org_codespaces, list_repo_devcontainers,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-github-codespaces.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-github-codespaces/docs"},"termsOfService":"https://connectorbay.com/byok-github-codespaces/terms"},"servers":[{"url":"https://byok-github-codespaces.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-github-codespaces/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_my_codespaces":{"post":{"operationId":"list_my_codespaces","summary":"List the token owner's codespaces with state, repository, machine type, branch status and last-used time. Use for \"Which","description":"List the token owner's codespaces with state, repository, machine type, branch status and last-used time. Use for \"Which codespaces do I have and are they running\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"repository_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only codespaces for this numeric repository id.","title":"Repository Id"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"How many results to return (1 to 100, default 30).","title":"Per Page"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_my_codespacesArguments","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_codespace":{"post":{"operationId":"get_codespace","summary":"Get one of the token owner's codespaces by name with state, machine, git status and timeouts. Use for \"Show codespace oc","description":"Get one of the token owner's codespaces by name with state, machine, git status and timeouts. Use for \"Show codespace octocat-hello-world-g4wpq6h95q\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"codespace_name":{"description":"Codespace name, for example 'octocat-hello-world-g4wpq6h95q'.","maxLength":200,"title":"Codespace Name","type":"string"}},"required":["codespace_name"],"title":"get_codespaceArguments","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_codespace_machines":{"post":{"operationId":"list_codespace_machines","summary":"List the machine types a given codespace can be switched to. Use for \"Which machine types can codespace octocat-hello-wo","description":"List the machine types a given codespace can be switched to. Use for \"Which machine types can codespace octocat-hello-world-g4wpq6h95q change to\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"codespace_name":{"description":"Codespace name, for example 'octocat-hello-world-g4wpq6h95q'.","maxLength":200,"title":"Codespace Name","type":"string"}},"required":["codespace_name"],"title":"list_codespace_machinesArguments","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_repo_codespaces":{"post":{"operationId":"list_repo_codespaces","summary":"List the token owner's codespaces in one repository. Use for \"Do I have codespaces for octocat/hello-world\".","description":"List the token owner's codespaces in one repository. Use for \"Do I have codespaces for octocat/hello-world\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"owner":{"description":"Repository owner (user or organization login), for example 'octocat'.","maxLength":200,"title":"Owner","type":"string"},"repo":{"description":"Repository name, for example 'hello-world'.","maxLength":200,"title":"Repo","type":"string"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"How many results to return (1 to 100, default 30).","title":"Per Page"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["owner","repo"],"title":"list_repo_codespacesArguments","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_org_codespaces":{"post":{"operationId":"list_org_codespaces","summary":"List all codespaces owned or billed to an organization (requires organization admin access). Use for \"Which codespaces e","description":"List all codespaces owned or billed to an organization (requires organization admin access). Use for \"Which codespaces exist in the octo-org organization\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"org":{"description":"Organization login, for example 'octo-org'.","maxLength":200,"title":"Org","type":"string"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"How many results to return (1 to 100, default 30).","title":"Per Page"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["org"],"title":"list_org_codespacesArguments","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_repo_devcontainers":{"post":{"operationId":"list_repo_devcontainers","summary":"List the devcontainer configurations found in a repository. Use for \"Which devcontainer configurations does octocat/hell","description":"List the devcontainer configurations found in a repository. Use for \"Which devcontainer configurations does octocat/hello-world have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"owner":{"description":"Repository owner (user or organization login), for example 'octocat'.","maxLength":200,"title":"Owner","type":"string"},"repo":{"description":"Repository name, for example 'hello-world'.","maxLength":200,"title":"Repo","type":"string"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"How many results to return (1 to 100, default 30).","title":"Per Page"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["owner","repo"],"title":"list_repo_devcontainersArguments","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_repo_machine_types":{"post":{"operationId":"list_repo_machine_types","summary":"List the machine types available for new codespaces in a repository. Use for \"Which machine types can I pick for octocat","description":"List the machine types available for new codespaces in a repository. Use for \"Which machine types can I pick for octocat/hello-world\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"owner":{"description":"Repository owner (user or organization login), for example 'octocat'.","maxLength":200,"title":"Owner","type":"string"},"repo":{"description":"Repository name, for example 'hello-world'.","maxLength":200,"title":"Repo","type":"string"},"ref":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Git ref (branch, tag or commit) to evaluate, for example 'main'.","title":"Ref"}},"required":["owner","repo"],"title":"list_repo_machine_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/check_devcontainer_permissions":{"post":{"operationId":"check_devcontainer_permissions","summary":"Check whether the token owner has accepted the extra permissions requested by a devcontainer configuration. Use for \"Hav","description":"Check whether the token owner has accepted the extra permissions requested by a devcontainer configuration. Use for \"Have I accepted the devcontainer permissions for octocat/hello-world on main\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"owner":{"description":"Repository owner (user or organization login), for example 'octocat'.","maxLength":200,"title":"Owner","type":"string"},"repo":{"description":"Repository name, for example 'hello-world'.","maxLength":200,"title":"Repo","type":"string"},"ref":{"description":"Git ref (branch, tag or commit) to check, for example 'main'.","maxLength":200,"title":"Ref","type":"string"},"devcontainer_path":{"description":"Path of the devcontainer file, for example '.devcontainer/devcontainer.json'.","maxLength":300,"title":"Devcontainer Path","type":"string"}},"required":["owner","repo","ref","devcontainer_path"],"title":"check_devcontainer_permissionsArguments","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_default_codespace_attributes":{"post":{"operationId":"get_default_codespace_attributes","summary":"Get the default location and devcontainer path a new codespace in a repository would use, and who would be billed. Use f","description":"Get the default location and devcontainer path a new codespace in a repository would use, and who would be billed. Use for \"What defaults would a new codespace for octocat/hello-world get\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"owner":{"description":"Repository owner (user or organization login), for example 'octocat'.","maxLength":200,"title":"Owner","type":"string"},"repo":{"description":"Repository name, for example 'hello-world'.","maxLength":200,"title":"Repo","type":"string"},"ref":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Git ref (branch, tag or commit) to evaluate, for example 'main'.","title":"Ref"}},"required":["owner","repo"],"title":"get_default_codespace_attributesArguments","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}}}}