{"openapi":"3.1.0","info":{"title":"Shortcut Config (BYOK) API","version":"0.1.0","description":"Shortcut Config (BYOK) lets an AI assistant read your own Shortcut Config data through the Shortcut Config API with a key you supply (Shortcut API token). Read-only: 10 tools (list_custom_fields, get_custom_field, list_labels, get_label, list_repositories, list_entity_templates, get_entity_template, list_documents, get_workflow, get_team). The BYOK key travels with each request, is used for that...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-shortcut-config.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-shortcut-config/docs"},"termsOfService":"https://connectorbay.com/byok-shortcut-config/terms"},"servers":[{"url":"https://byok-shortcut-config.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-shortcut-config/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_custom_fields":{"post":{"operationId":"list_custom_fields","summary":"List the custom fields defined in the Shortcut workspace with type, the story types they apply to, enabled flag and allo","description":"List the custom fields defined in the Shortcut workspace with type, the story types they apply to, enabled flag and allowed values. Use for \"Which custom fields does our Shortcut workspace define\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_custom_fieldsArguments","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_custom_field":{"post":{"operationId":"get_custom_field","summary":"Get one Shortcut custom field with its type, applicable story types and the list of allowed values. Use for \"What values","description":"Get one Shortcut custom field with its type, applicable story types and the list of allowed values. Use for \"What values does Shortcut custom field 0000aaaa allow\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"custom_field_id":{"description":"UUID of a Shortcut custom field (see list_custom_fields).","maxLength":200,"title":"Custom Field Id","type":"string"}},"required":["custom_field_id"],"title":"get_custom_fieldArguments","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_labels":{"post":{"operationId":"list_labels","summary":"List Shortcut labels with color, archived flag and usage statistics (story, epic and point counts by state). Use for \"Wh","description":"List Shortcut labels with color, archived flag and usage statistics (story, epic and point counts by state). Use for \"Which Shortcut labels are used most\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"slim":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to leave out the usage statistics and return a smaller list.","title":"Slim"}},"title":"list_labelsArguments","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_label":{"post":{"operationId":"get_label","summary":"Get one Shortcut label with its description and counts of stories, epics and points by state. Use for \"How many stories ","description":"Get one Shortcut label with its description and counts of stories, epics and points by state. Use for \"How many stories carry Shortcut label 12\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"label_id":{"description":"Numeric Shortcut label id, for example 12 (see list_labels).","minimum":1,"title":"Label Id","type":"integer"}},"required":["label_id"],"title":"get_labelArguments","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_repositories":{"post":{"operationId":"list_repositories","summary":"List the code repositories linked to the Shortcut workspace with name, type (for example github) and URL. Use for \"Which","description":"List the code repositories linked to the Shortcut workspace with name, type (for example github) and URL. Use for \"Which repositories are linked to our Shortcut workspace\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_repositoriesArguments","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_entity_templates":{"post":{"operationId":"list_entity_templates","summary":"List Shortcut story templates with their default story type, estimate, project, team, workflow state, labels and custom ","description":"List Shortcut story templates with their default story type, estimate, project, team, workflow state, labels and custom field values. Use for \"What story templates exist in Shortcut\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_entity_templatesArguments","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_entity_template":{"post":{"operationId":"get_entity_template","summary":"Get one Shortcut story template with its default story type, estimate, project, team, workflow state and labels. Use for","description":"Get one Shortcut story template with its default story type, estimate, project, team, workflow state and labels. Use for \"Show the Shortcut template 0000bbbb\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"template_id":{"description":"UUID of a Shortcut entity (story) template (see list_entity_templates).","maxLength":200,"title":"Template Id","type":"string"}},"required":["template_id"],"title":"get_entity_templateArguments","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_documents":{"post":{"operationId":"list_documents","summary":"List the Shortcut Docs in the workspace as id, title and link (no document text). Use for \"Which Docs exist in our Short","description":"List the Shortcut Docs in the workspace as id, title and link (no document text). Use for \"Which Docs exist in our Shortcut workspace\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_documentsArguments","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_workflow":{"post":{"operationId":"get_workflow","summary":"Get one Shortcut workflow with its workflow states (name, type, position and number of stories in each) and default stat","description":"Get one Shortcut workflow with its workflow states (name, type, position and number of stories in each) and default state. Use for \"Which states does Shortcut workflow 500000006 have and how many stories are in each\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workflow_id":{"description":"Numeric Shortcut workflow id, for example 500000006 (see list_workflows in the Shortcut connector).","minimum":1,"title":"Workflow Id","type":"integer"}},"required":["workflow_id"],"title":"get_workflowArguments","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_team":{"post":{"operationId":"get_team","summary":"Get one Shortcut team (group): archived flag, default workflow, story and epic counts, and workflow ids (member lists ar","description":"Get one Shortcut team (group): archived flag, default workflow, story and epic counts, and workflow ids (member lists are left out). Use for \"How many stories does the Shortcut team 0000cccc have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"group_id":{"description":"UUID of a Shortcut team (group) (see list_teams in the Shortcut connector).","maxLength":200,"title":"Group Id","type":"string"}},"required":["group_id"],"title":"get_teamArguments","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}}}}