Start an OpenAI plugin-directory readiness run
Grades the saved server against OpenAI’s plugin-directory requirements and returns 202 with a run id. submissionMode is required and never inferred: inferring it would read a forgotten package as mcp-only and report the package lane not-applicable, turning a missing input into a clean bill of health. Hosted runs grade the two wire-safe shapes; the package shapes need an upload this API cannot receive and are available from the CLI.
Authorizations
MCPJam API key (sk_…). Create one at Settings → API keys. Guest sessions cannot use the API, and API keys cannot manage other API keys.
Path Parameters
ID of the hosted project that contains the server.
ID of the server inside the project.
Body
The declared submission shape.
mcp-only, mcp-imported-skills Deduplicates a retried POST. More load-bearing here than usual: a readiness run dials a third party's server, and a retried start that created a second run would do that twice.
200Add model-backed experience observations. Consumes MCPJam credits. Off by default, and deliberately: a billed opt-in that defaulted on would start charging every existing caller on the day it shipped. Observations are non-dispositive and can never make a server not-ready; a refused reservation makes no provider call and completes the run with llmObservations.reason set to billing_limit_reached.
Response
The run was accepted and is executing.
The 202 receipt. Poll the run detail; do not re-POST.
claude, openai The run's status when the start returned. pending for a fresh start; for a deduped start, whatever the existing run is already at — which may be completed, because a replayed idempotency key can name a run that finished long ago.
pending, running, completed, failed, cancelled This request replayed an existing run rather than starting one.

