Endpoints
The server identifies itself as
continuum-mcp.
Transport
Continuum speaks Streamable HTTP.Sessions
- The server returns an
Mcp-Session-Idoninitialize. Send it on every later request. - A request without a session ID that isn’t an
initializegets400. - A session with no activity and no open stream for 60 minutes is closed. If a request returns
404with “Session expired or unknown”, sendinitializeagain. - The server’s
instructionsoninitializeinclude a short guide for the assistant and the starting brand’s published pipelines. - The tool list changes with your access, and the server sends
notifications/tools/list_changedwhen it does.
Authentication
Sign-in is OAuth 2.1. There are no API keys.
What a token can do comes from the person’s brands and roles, not from OAuth scopes. Each person sees and revokes their connections under Settings → Connections.
Brand scope
Every call works on one brand.- A session starts on the brand the person last chose in their assistant, otherwise their active brand in the app, otherwise the first brand they can reach.
brands_selectswitches the brand for the rest of the session.brands_listshows the choices.- To act on another brand for one call, set
_meta.brand_id. Access is still checked. - Every result includes
_brandContext, with the brand and a link to its Planner.
Roles
A tool whose reads need a connection, such as Meta, appears only when a brand you can reach has that connection.
Confirmations
Publishing, ad and budget changes, live creative swaps, final Forge renders, and most deletions take two calls:1
Preview
The first call returns a preview, a
confirm_token (tok_…), and its expires_at. Nothing has happened yet. Tools that take a mode input use mode: "preview" for this call.2
Confirm
After the person says yes, repeat the call with the same arguments and the
confirm_token (and mode: "confirm" where the tool takes a mode).
Forge uses its own pair:
render_preview or scene_fill returns a confirmationToken, and render_confirm or scene_render redeems it. Forge set_delete is the one deletion with no preview: it deletes immediately, so call it only after an explicit yes. The tool reference lists each tool’s confirmation behavior.
Clients that support elicitation may also show a confirmation dialog for ad changes. See You stay in control for the full list of what waits and what happens right away.
Results that ask for something
These come back as normal results, not errors. Each tells the assistant what to do next.Errors
Errors setisError: true. structuredContent holds { ok: false, code, message, details }.
Limits
Limits protect your budget and your connected accounts.RATE_LIMITED includes retry_after_seconds, and per-tool limits also include tool, budget, and window_seconds.
Jobs
Reports, agent answers, and generations run as jobs and return ajob_id.
jobs_statustakes onlyjob_idand returnspending,running,completed,failed, orcancelled. Leave a few seconds between checks rather than polling in a tight loop. For an agent answer,result.statusiscompleted(it wrote a draft or plan) orneeds_followup(text only).- Pass
_meta.progressTokenon the call to receivenotifications/progress. - Pipeline runs report through
pipeline_run_status:queued,running,completed,refused,failed, orindeterminate.
Prompts
Activity log
Every tool call is logged with the tool, action, status (ok, error, denied, or rate_limited), duration, brand, and client. Arguments are stored only as a fingerprint, never in full. Each person sees their own calls under Settings → Activity, filtered by status, client, or tool.
What’s next
Tool reference
Every tool, its inputs, examples, and errors.
Agent brief
How an assistant should use these tools well.