/api/mcp/ that shares its services with the REST API and the Console. A coding agent connected to it can inspect health and failures, land and shape datasets, author evaluators and run evals, launch and follow training, schedule optimisation runs, and drive connectors and instrumentation — everything except the steps that need your filesystem, which it hands to the CLI.
Setup
overmind init --ide <client> writes the entry and overmind sync fills in the project key, which is what the Quickstart prompt does for you. The entry is a streamable-HTTP server with an X-Api-Key header:
.codex/config.toml. Claude Code keeps the key in local scope (~/.claude.json), outside the repository. Self-hosted: replace the URL with your API host plus /api/mcp/, for example http://localhost:8000/api/mcp/ (overmind init --env local, or --api-url).
Optional plugin
The Cursor, Claude Code and Codex plugins bundle the MCP connection, Overmind branding and the workflow skills. MCP alone is the complete integration: tool descriptions, operating guidance, resources and prompts reach every client, with or without a plugin. Install it from theovermind-core/overmind repository:
The plugin’s MCP entry points at the hosted API and signs in with OAuth. The connection reaches every active project your account can access, including projects you join later. For a self-hosted deployment, run
overmind init --env local --ide <client> and overmind sync instead. Keep one active Overmind MCP connection per client.
Start with list_projects. To see a project in the browser, read overmind://project/current?project_id=ID and open its console_url, which the server builds from FRONTEND_URL. The browser needs its own Console sign-in, and opening a page grants no write access.
Authentication
Account connections. OAuth connections and account API keys find the projects you can access withlist_projects. Pass the chosen project_id to every project tool, and as a query parameter on resource URIs. Membership is checked on every operation, and there is no shared “current project”, so parallel work cannot switch another request’s project. Returned resource links keep the project id.
Project API keys reach only their own project and can omit project_id.
Permissions. Read access exposes the read-only tools; writes need write access. API keys keep their expiry, active-user and IP-allowlist checks, and authenticate as X-Api-Key or Authorization: Bearer.
OAuth. A grant asks for overmind:read and/or overmind:write, and needs Console sign-in and explicit consent. Tokens use S256 PKCE, exact redirect matching, one-time codes and resource binding, and only MCP accepts them. Access tokens expire after one hour. A connection stays authorized until it is revoked: refresh tokens have no time limit, but they rotate, and reusing an old one revokes the connection. A disabled account or a lost project membership ends access.
Hosting. On a public deployment, set MCP_SERVER_URL to the HTTPS /api/mcp/ endpoint and FRONTEND_URL to the Console. Plain HTTP is accepted only on local loopback. The server then advertises OAuth discovery, public-client registration (token_endpoint_auth_method: none), and the authorization, token and revocation endpoints. To publish the server as an OpenAI app, set OPENAI_APPS_CHALLENGE to the portal’s ownership token; the API serves it at /.well-known/openai-apps-challenge.
Transport. Requests are POST with application/json, from an allowed host and origin, within the protocol’s body limit. Authentication failures return 401 and authorization failures 403. Tool errors are structured results: {"error": {code, message, retryable, fields}}.
The public surface is read and write only. There are no delete, cancel or generic API tools; retry_deployment is the one lifecycle exception and covers exactly the failed-or-deleted deployment case.
Tools
Thirty-six tools, each with a strict input and output schema the client reads at call time. Every result carries the same object twice — asstructuredContent and as compact JSON text — plus resource links for the entities it touched. Arguments marked ? are optional.
Project tools also accept project_id, required for account connections. list_projects and get_model_catalog do not need a project.
Projects
Observability
Datasets
Evaluation
Training and serving
run_inference uses the production serving output reservation when max_tokens is omitted or null (currently 8,192 tokens). Explicit positive integer budgets have no MCP-specific ceiling. The model server validates the templated input plus reserved output against the deployment’s context; an oversized request returns context_length_exceeded without silently reducing its budget. Generation exhaustion is reported by finish_reason and truncated. The MCP response’s content is separately bounded to 32,000 characters, with content_clipped indicating any response clipping.
Optimisation
Connectors
A connector is created with its provider credentials through
overmind connector add or the Console under Integrations; until then the tools answer with the connector_setup_required action.
Instrumentation
Jobs
Background work returns a job receipt —kind, id, status and an overmind://jobs/{kind}/{id} resource — that get_job reads back. Kinds: dataset_run, connector_sync, eval_run, training_preparation, finetune (alias finetune_job), optimizer (aliases optimizer_run, optimizer_experiment), deployment and model_activation.
Names resolve within the project: capability arguments take an id, key or name; connectors take an id or name; dataset tools prefer the UUID list_datasets returned because dataset names are not unique.
Prompts
Twelve prompts compose the tools into multi-step workflows with human checkpoints:Resources
Read-only project entity state underovermind://. Account connections add ?project_id=ID; follow returned links to preserve scope. Static:
Templates:
overmind://capabilities/{capability}, overmind://traces/{trace_id}, overmind://sessions/{session}, overmind://datasets/{dataset}, overmind://eval-runs/{eval_run}, overmind://eval-sets/{eval_set}, overmind://finetunes/{job_id}, overmind://deployments/{deployment}, overmind://optimizer-runs/{experiment}, overmind://connectors/{connector}, overmind://jobs/{kind}/{id}.
Deployment resources accept ?period=1h|24h|7d|30d|all&source=application|all (defaults: all time and all traffic). For example, overmind://deployments/{deployment}?period=24h&source=application returns the selected metrics and activity, including failures and end-to-end response percentiles, from the same services used by the Console.
Each deployment resource also includes a current worker section: state (warm, warming, asleep, or unknown), measurement available, runner/input/backlog counts and recent-activity/warming signals. These use the Console’s cached measurements and do not wake the model. Worker state is independent of the historical metrics filters, deployment readiness (status) and the capability’s routing selection (active_model). Unavailable counts are null, not zero; recent successful traffic can still establish warmth when provider measurements are unavailable.
The CLI boundary
Three things never cross MCP: file bytes, repository edits, and provider secrets. A dataset file goes up withovermind dataset upload; a dataset or checkpoint comes down with overmind dataset export and overmind model download-checkpoint; repository discovery is /overmind setup then overmind sync; an optimisation run’s candidates are generated and replayed by overmind optimise in your checkout; a model swap is a prompt (get_model_swap_prompt) the agent applies with its own editing tools; a connector’s provider key is entered with overmind connector add in a terminal. The prompts above name the exact command at each handoff, and --json on the CLI returns the ids the agent needs to continue.
Workflow skills
overmind init installs the workflow skills next to the MCP entry, and the optional plugin bundles the same files. The main overmind skill covers setup, repository discovery and work that spans several surfaces. Each focused skill covers one surface:
overmind skills list --verbose prints the installed catalog. overmind skills sync <names> --ide <client> refreshes the named skills, and overmind init --ide <client> installs the full set.
/overmind onboard, setup, ensure-tracing, dataset, finetune, optimise and backtest load the main skill’s references: Cursor through command files, Claude Code through the skill itself. In OpenCode and Codex, ask for the step by name. The main skill is the only place the local scan (/overmind setup) lives; the native prompts cover the server-side workflows.