Skip to content

Reference

Each row comes from the capability’s capa.manifest.json, so this table matches the code.

CapabilityEntrypointOperationsNamespacesAuthBody
githubGithubCapability1,23036BearerJSON
kubernetesKubernetesCapability1,1906BearerJSON
gitlabGitlabCapability1,07250Private-TokenJSON
jiraJiraCapability60276BasicJSON
stripeStripeCapability55975BearerForm
boxBoxCapability29556BearerJSON
discordDiscordCapability24617BearerJSON
sentrySentryCapability2456BearerJSON
twilioTwilioCapability1972BasicForm
slackSlackCapability174174BearerForm
zoomZoomCapability15514BearerJSON
twitchTwitchCapability14930BearerJSON
blooioBlooioCapability589BearerJSON
twilio-messagingTwilioMessagingCapability585BasicForm
twilio-verifyTwilioVerifyCapability575BasicForm
htmlcsstoimageHtmlcsstoimageCapability389BasicJSON

Set these on the capability Worker. Your own Worker needs none of them. When a capability runs behind capa-gateway, each user’s key comes from their vault instead.

CapabilityRequiredOptional
githubGITHUB_API_KEYNone
kubernetesKUBERNETES_API_KEYNone
gitlabGITLAB_API_KEYGITLAB_BASE_URL_OVERRIDE, CF_ACCESS_CLIENT_ID, CF_ACCESS_CLIENT_SECRET
jiraJIRA_API_KEYJIRA_BASE_URL_OVERRIDE
stripeSTRIPE_API_KEYNone
boxBOX_API_KEYNone
discordDISCORD_API_KEYNone
sentrySENTRY_API_KEYNone
twilioTWILIO_API_KEYNone
slackSLACK_API_KEYNone
zoomZOOM_API_KEYNone
twitchTWITCH_API_KEY, TWITCH_CLIENT_IDNone
blooioBLOOIO_API_KEYNone
twilio-messagingTWILIO_MESSAGING_API_KEYNone
twilio-verifyTWILIO_VERIFY_API_KEYNone
htmlcsstoimageHTMLCSSTOIMAGE_API_KEYHTMLCSSTOIMAGE_USER_ID

JIRA_API_KEY uses the format email:token. To pass a key for one call only, use options.auth. See Runtime auth.

Every method returns the same shape:

{ result: T | null; evidence: EvidenceBundle }

result is null when evidence.verdict is "fail".

Path parameters come first, then the request body, then options:

await env.STRIPE.paymentIntents.retrieve("pi_123", undefined, { auth: { apiKey } });
await env.GITHUB.repos.retrieve("cloudflare", "workers-sdk");
await env.HTMLCSSTOIMAGE.image.renderFormat(id, "png", { query: { width: 1200 } });
OptionTypeWhat it does
auth.apiKeystringUses this key for one call instead of the Worker secret.
auth.username, auth.passwordstringBasic auth for one call.
auth.headersRecord<string, string>Extra headers for one call.
queryobjectQuery string parameters. Arrays repeat the key.
type EvidenceBundle = {
capability: string;
operationId: string;
namespace: string;
method: string;
http: string;
path: string;
risk: "low" | "medium" | "high";
startedAt: string;
durationMs: number;
act: { request: { method: string; url: string }; status: number };
assert: Array<{ kind: string; expected: unknown; actual: unknown; passed: boolean }>;
verdict: "pass" | "fail";
};
FieldMeaning
operationIdThe operation ID from the OpenAPI spec.
pathThe request path with parameters filled in.
risklow for list, retrieve, and search methods. high for money-moving namespaces such as charges and refunds. medium for everything else.
actThe method, the URL, and the HTTP status. Request headers and keys are not recorded.
assertEvery check that ran. The HTTP status check always runs. Overrides add more.
verdict"pass" when every check passed.
Terminal window
cd tools/codegen
bun src/cli.ts \
--spec <url-or-path> \
--out ../../capabilities/<name> \
--name <name> \
--base-url <upstream-base-url>
FlagRequiredDefaultValues
--specYesURL or path to an OpenAPI 3 or Swagger 2 spec
--outYesOutput directory
--nameYesCapability name, for example stripe
--base-urlYesUpstream base URL
--prefixNo/v1Path prefix to strip when building method names
--authNobearerbearer, private-token, basic
--content-typeNoformform, json
--namingNopathpath, operationId

--naming operationId names methods after the spec’s operation IDs instead of the URL path. Use it when path names are unclear.

Terminal window
bun src/cli.ts \
--spec https://raw.githubusercontent.com/stripe/openapi/master/openapi/spec3.sdk.json \
--out ../../capabilities/stripe --name stripe \
--base-url https://api.stripe.com --prefix /v1 \
--auth bearer --content-type form

To add a capability to the catalog, see CONTRIBUTING.md.

PathWhat it holds
tools/codegen/The OpenAPI to capability generator
capabilities/<name>/src/generated/Generated code. Do not edit.
capabilities/<name>/src/overrides.tsExtra checks for single methods
capabilities/<name>/src/index.tsThe Worker entry
gateway/The MCP gateway for agents
docs/This site