{"openapi":"3.1.0","info":{"title":"AppVeyor (BYOK) API","version":"0.1.0","description":"AppVeyor (BYOK) lets an AI assistant read your own AppVeyor data through the AppVeyor API with a key you supply (API token). Read-only: 7 tools (list_projects, get_project_last_build, get_project_branch_build, get_project_build_by_version, get_project_history, list_environments, list_project_deployments). The BYOK key travels with each request, is used for that one call only and is never stored,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-appveyor.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-appveyor/docs"},"termsOfService":"https://connectorbay.com/byok-appveyor/terms"},"servers":[{"url":"https://byok-appveyor.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-appveyor/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 AppVeyor projects of the account with repository, privacy flag and its most recent build (status, branch, commi","description":"List the AppVeyor projects of the account with repository, privacy flag and its most recent build (status, branch, commit message). Use for \"Which projects do I have on AppVeyor and did their last builds pass\".","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_last_build":{"post":{"operationId":"get_project_last_build","summary":"Get an AppVeyor project's most recent build: status, version, branch, commit, author, times and its jobs. Use for \"What ","description":"Get an AppVeyor project's most recent build: status, version, branch, commit, author, times and its jobs. Use for \"What is the status of the latest AppVeyor build of my project\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_name":{"description":"AppVeyor account name that owns the project, as returned by list_projects (accountName).","maxLength":100,"title":"Account Name","type":"string"},"project_slug":{"description":"Project slug, as returned by list_projects (slug).","maxLength":200,"title":"Project Slug","type":"string"}},"required":["account_name","project_slug"],"title":"get_project_last_buildArguments","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_branch_build":{"post":{"operationId":"get_project_branch_build","summary":"Get the most recent AppVeyor build of one branch of a project. Use for \"Did the last AppVeyor build of the develop branc","description":"Get the most recent AppVeyor build of one branch of a project. Use for \"Did the last AppVeyor build of the develop branch pass\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_name":{"description":"AppVeyor account name that owns the project, as returned by list_projects (accountName).","maxLength":100,"title":"Account Name","type":"string"},"project_slug":{"description":"Project slug, as returned by list_projects (slug).","maxLength":200,"title":"Project Slug","type":"string"},"branch":{"description":"Branch name, for example 'master'.","maxLength":200,"title":"Branch","type":"string"}},"required":["account_name","project_slug","branch"],"title":"get_project_branch_buildArguments","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_build_by_version":{"post":{"operationId":"get_project_build_by_version","summary":"Get one AppVeyor build of a project by its version string, for example '1.0.45'. Use for \"Show AppVeyor build 1.0.45 of ","description":"Get one AppVeyor build of a project by its version string, for example '1.0.45'. Use for \"Show AppVeyor build 1.0.45 of my project\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_name":{"description":"AppVeyor account name that owns the project, as returned by list_projects (accountName).","maxLength":100,"title":"Account Name","type":"string"},"project_slug":{"description":"Project slug, as returned by list_projects (slug).","maxLength":200,"title":"Project Slug","type":"string"},"build_version":{"description":"Build version, for example '1.0.45'.","maxLength":100,"title":"Build Version","type":"string"}},"required":["account_name","project_slug","build_version"],"title":"get_project_build_by_versionArguments","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_history":{"post":{"operationId":"get_project_history","summary":"List the recent AppVeyor builds of a project (newest first), optionally for one branch or starting after a build id, wit","description":"List the recent AppVeyor builds of a project (newest first), optionally for one branch or starting after a build id, with status, version, commit and times. Use for \"What were the last 10 AppVeyor builds of my project\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_name":{"description":"AppVeyor account name that owns the project, as returned by list_projects (accountName).","maxLength":100,"title":"Account Name","type":"string"},"project_slug":{"description":"Project slug, as returned by list_projects (slug).","maxLength":200,"title":"Project Slug","type":"string"},"records_number":{"description":"How many builds to return.","maximum":50,"minimum":1,"title":"Records Number","type":"integer"},"start_build_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Return builds older than this build id (for paging).","title":"Start Build Id"},"branch":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only builds of this branch.","title":"Branch"}},"required":["account_name","project_slug","records_number"],"title":"get_project_historyArguments","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_environments":{"post":{"operationId":"list_environments","summary":"List AppVeyor deployment environments with name, provider and dates. Settings and credentials are not returned. Use for ","description":"List AppVeyor deployment environments with name, provider and dates. Settings and credentials are not returned. Use for \"Which deployment environments do I have in AppVeyor\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_environmentsArguments","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_project_deployments":{"post":{"operationId":"list_project_deployments","summary":"List recent deployments of an AppVeyor project with environment, status and build version. At most 20 per call. Use for ","description":"List recent deployments of an AppVeyor project with environment, status and build version. At most 20 per call. Use for \"What did AppVeyor deploy for my project recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_name":{"description":"AppVeyor account name that owns the project, as returned by list_projects (accountName).","maxLength":100,"title":"Account Name","type":"string"},"project_slug":{"description":"Project slug, as returned by list_projects (slug).","maxLength":200,"title":"Project Slug","type":"string"},"records_number":{"anyOf":[{"maximum":20,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many deployments to return (1 to 20, default 20).","title":"Records Number"},"start_deployment_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Return deployments older than this deployment id.","title":"Start Deployment Id"}},"required":["account_name","project_slug"],"title":"list_project_deploymentsArguments","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}}}}