{"openapi":"3.1.0","info":{"title":"Airbrake (BYOK) API","version":"0.1.0","description":"Airbrake (BYOK) lets an AI assistant read your own Airbrake data through the Airbrake API with a key you supply (user key). Read-only: 8 tools (list_projects, get_project, list_groups, get_group, list_groups_all_projects, list_group_notices, list_deploys, get_deploy). 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...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-airbrake.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-airbrake/docs"},"termsOfService":"https://connectorbay.com/byok-airbrake/terms"},"servers":[{"url":"https://byok-airbrake.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-airbrake/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_projects":{"post":{"operationId":"list_projects","summary":"List the Airbrake projects the user key can access, with total notice, deploy and resolved/unresolved group counts. Use ","description":"List the Airbrake projects the user key can access, with total notice, deploy and resolved/unresolved group counts. Use for \"Which Airbrake projects do I have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_projectsArguments","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_project":{"post":{"operationId":"get_project","summary":"Get one Airbrake project with notice, deploy, resolved and unresolved group counts and last deploy time. Use for \"How ma","description":"Get one Airbrake project with notice, deploy, resolved and unresolved group counts and last deploy time. Use for \"How many unresolved errors does Airbrake project 1 have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Airbrake project id (a number), from list_projects.","maximum":1000000000000,"minimum":1,"title":"Project Id","type":"integer"}},"required":["project_id"],"title":"get_projectArguments","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_groups":{"post":{"operationId":"list_groups","summary":"List a project's error groups with error type and message, environment, resolved flag, notice counts and last occurrence","description":"List a project's error groups with error type and message, environment, resolved flag, notice counts and last occurrence time. Use for \"What errors are happening in my Airbrake project\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Airbrake project id (a number), from list_projects.","maximum":1000000000000,"minimum":1,"title":"Project Id","type":"integer"},"order":{"anyOf":[{"enum":["last_notice","notice_count","weight","created"],"type":"string"},{"type":"null"}],"default":"last_notice","description":"Sort by last_notice, notice_count, weight or created.","title":"Order"},"muted":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to list muted groups.","title":"Muted"},"archived":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to list archived groups.","title":"Archived"},"deploy_id":{"anyOf":[{"maxLength":50,"type":"string"},{"type":"null"}],"default":null,"description":"Only groups seen in this deploy id.","title":"Deploy Id"},"start_time":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only groups created after this ISO 8601 time.","title":"Start Time"},"end_time":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only groups created before this ISO 8601 time.","title":"End Time"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items per page (1 to 100; the API default is 20).","title":"Limit"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["project_id"],"title":"list_groupsArguments","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_group":{"post":{"operationId":"get_group","summary":"Get one error group: error type and message, environment, resolved flag, notice counts, last deploy and last occurrence.","description":"Get one error group: error type and message, environment, resolved flag, notice counts, last deploy and last occurrence. Use for \"Show Airbrake error group 1 in project 1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Airbrake project id (a number), from list_projects.","maximum":1000000000000,"minimum":1,"title":"Project Id","type":"integer"},"group_id":{"description":"Airbrake group (error) id, from list_groups.","maximum":1000000000000000,"minimum":1,"title":"Group Id","type":"integer"}},"required":["project_id","group_id"],"title":"get_groupArguments","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_groups_all_projects":{"post":{"operationId":"list_groups_all_projects","summary":"List error groups across all projects of the user, newest first, with cursor paging (pass the returned end value as star","description":"List error groups across all projects of the user, newest first, with cursor paging (pass the returned end value as start). Use for \"What are the latest error groups across all my Airbrake projects\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"start":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor for the next page: the end value returned by the previous answer; leave out for the first page.","title":"Start"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many groups per page (1 to 100; the API default is 20).","title":"Limit"}},"title":"list_groups_all_projectsArguments","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_group_notices":{"post":{"operationId":"list_group_notices","summary":"List individual occurrences (notices) of an error group with time, environment, severity and error type and message. Use","description":"List individual occurrences (notices) of an error group with time, environment, severity and error type and message. Use for \"Show the latest occurrences of Airbrake error group 1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Airbrake project id (a number), from list_projects.","maximum":1000000000000,"minimum":1,"title":"Project Id","type":"integer"},"group_id":{"description":"Airbrake group (error) id, from list_groups.","maximum":1000000000000000,"minimum":1,"title":"Group Id","type":"integer"},"version":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only notices of this app version, for example '1.0'.","title":"Version"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items per page (1 to 100; the API default is 20).","title":"Limit"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["project_id","group_id"],"title":"list_group_noticesArguments","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_deploys":{"post":{"operationId":"list_deploys","summary":"List a project's deploys with environment, deploying user, repository, revision and version. Use for \"What was deployed ","description":"List a project's deploys with environment, deploying user, repository, revision and version. Use for \"What was deployed recently in my Airbrake project\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Airbrake project id (a number), from list_projects.","maximum":1000000000000,"minimum":1,"title":"Project Id","type":"integer"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items per page (1 to 100; the API default is 20).","title":"Limit"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["project_id"],"title":"list_deploysArguments","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_deploy":{"post":{"operationId":"get_deploy","summary":"Get one deploy of a project: environment, user, repository, revision and version. Use for \"Show Airbrake deploy 5 of pro","description":"Get one deploy of a project: environment, user, repository, revision and version. Use for \"Show Airbrake deploy 5 of project 1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Airbrake project id (a number), from list_projects.","maximum":1000000000000,"minimum":1,"title":"Project Id","type":"integer"},"deploy_id":{"description":"Airbrake deploy id.","maxLength":50,"title":"Deploy Id","type":"string"}},"required":["project_id","deploy_id"],"title":"get_deployArguments","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}}}}