App Store Connect MCP contract.
Defines the canonical tool set exposed by ascapi --mcp. Each name is
supplied by the embedder through [crate::ascapi_mcp_tools], so the
standalone binary and any host that re-exposes this contract share one
implementation and one public surface. Same arrangement xcrs uses in
smbcloud-cli.
Two rules this server is built around
stdout belongs to the protocol. The stdio transport carries
JSON-RPC on stdout, so a stray println! anywhere beneath a tool call
corrupts the stream, and the failure surfaces as a parse error in the
client a long way from its cause. Nothing in this path may write to
stdout; diagnostics go to stderr.
Tool results are read by a model. Private keys and raw certificate
bodies never appear in a result; see
[smbcloud_ascapi_frontend] for where that is enforced.
What is deliberately absent
Certificate revocation. ascapi certificates revoke exists on the
command line and is intentionally not a tool: revoking a distribution
certificate invalidates every provisioning profile embedding it, for
every teammate and every CI job, at once and irreversibly. That is not
an action a language model should take from a prompt, and no
confirmation string typed by the model rather than the human makes it
safer. Deletes that are scoped and recreatable (a version, a
localization, a screenshot) are exposed, annotated destructive.