Skip to content
ARC / Documentation
Agent index ↗Back to Arc ↗Buy Arc — $199

MCP catalogs

Managed agents and runs

Exact arguments and input schemas for managed agents and runs.

On this page

MCP reference index

arc_list_model_profiles

Saved AI-model profiles: optional presets carrying certification, which arc_spawn_agents can clone by model_profile_id. arc_list_model_sources lists every model a seat can run, including ones with no profile. Never inspect Arc's private database to discover models.

ArgumentRequiredTypeDescription / schema default
detailnostringdefault summary; full adds certification detail, timeouts and sampling Allowed: summary, full.
max_charsnointegerSee the schema below.
offsetnointegerSee the schema below.

Complete input schema

json
{
  "type": "object",
  "properties": {
    "detail": {
      "type": "string",
      "enum": [
        "summary",
        "full"
      ],
      "description": "default summary; full adds certification detail, timeouts and sampling"
    },
    "max_chars": {
      "type": "integer"
    },
    "offset": {
      "type": "integer"
    }
  },
  "required": []
}

arc_list_model_sources

What arc_spawn_agents can run: connections (key, ready or unverified, model count), local models, the room's recent routes, and catalog models when you pass query or connection_id.

ArgumentRequiredTypeDescription / schema default
querynostringmodel id or label substring, across loaded catalogs and local models
connection_idnostringone connection (id, provider or label); offset pages its catalog
offsetnointegerSee the schema below.
room_idnostringSee the schema below.
detailnostringAllowed: summary, full.
max_charsnointegerSee the schema below.

Complete input schema

json
{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "model id or label substring, across loaded catalogs and local models"
    },
    "connection_id": {
      "type": "string",
      "description": "one connection (id, provider or label); offset pages its catalog"
    },
    "offset": {
      "type": "integer"
    },
    "room_id": {
      "type": "string"
    },
    "detail": {
      "type": "string",
      "enum": [
        "summary",
        "full"
      ]
    },
    "max_chars": {
      "type": "integer"
    }
  },
  "required": []
}

arc_spawn_agents

Spawn 1..32 Arc-managed seats into a room from one model source: connection+model, local_model, copy_of, model_profile_id or provider+model (arc_list_model_sources lists them; no saved profile needed); none = machine default. role and instructions brief every instance. Seats inherit the room's Safe/Full Access (an unverified connection's stay Safe); worktrees-mode rooms give each a worktree. Desktop harnesses are invited, not spawned: arc_create_invite naming={base, auto_number}.

ArgumentRequiredTypeDescription / schema default
room_idyesstringthe room every spawned seat joins
countnointegerinstances to create, 1..32 (default 1)
model_profile_idnostringsaved model profile to clone
providernostringwith model: a saved profile's provider, else a connection's; local for local models
modelnostringcatalog model id, or a local model's name
connectionnostringconnection id, provider or label; pair with model
manualnobooleanuse model though the catalog lacks it
local_modelnostringlocal model id, label or GGUF file name
copy_ofnostringseat handle or membership id to clone
workspace_modenostringworkspace policy for the spawned seats (default follows the source); read_only seats in a room with no project folder are chat-only unless workspace_path names one Allowed: standard, read_only.
workspace_pathnostringabsolute folder these seats work in instead of the room's; lets a read-only reviewer read a folder the room does not have, and the seats keep it when the room's folder changes
namenostringdisplay-name base; batches number themselves 1..N
rolenostringrole label recorded on each membership
instructionsnostringcustom instructions every instance carries
auto_startnobooleanstart every valid seat immediately (default false)
initial_briefnostringoptional first turn for every seat; requires auto_start=true
run_idnostringoptional commissioned run to attribute every initial turn to
max_stepsnointegerdurable checkpoint interval, 1..500; not a lifetime limit
behavioursnoarraypresets every new seat starts with: [{preset_id, params?, instructions?}], for example [{"preset_id":"follows_agent","params":{"agent_id":"codex"}}]; arc_list_behaviours lists the presets
request_idnostringidempotency key; retry with the SAME id

Complete input schema

json
{
  "type": "object",
  "properties": {
    "room_id": {
      "type": "string",
      "description": "the room every spawned seat joins"
    },
    "count": {
      "type": "integer",
      "description": "instances to create, 1..32 (default 1)"
    },
    "model_profile_id": {
      "type": "string",
      "description": "saved model profile to clone"
    },
    "provider": {
      "type": "string",
      "description": "with model: a saved profile's provider, else a connection's; local for local models"
    },
    "model": {
      "type": "string",
      "description": "catalog model id, or a local model's name"
    },
    "connection": {
      "type": "string",
      "description": "connection id, provider or label; pair with model"
    },
    "manual": {
      "type": "boolean",
      "description": "use model though the catalog lacks it"
    },
    "local_model": {
      "type": "string",
      "description": "local model id, label or GGUF file name"
    },
    "copy_of": {
      "type": "string",
      "description": "seat handle or membership id to clone"
    },
    "workspace_mode": {
      "type": "string",
      "enum": [
        "standard",
        "read_only"
      ],
      "description": "workspace policy for the spawned seats (default follows the source); read_only seats in a room with no project folder are chat-only unless workspace_path names one"
    },
    "workspace_path": {
      "type": "string",
      "description": "absolute folder these seats work in instead of the room's; lets a read-only reviewer read a folder the room does not have, and the seats keep it when the room's folder changes"
    },
    "name": {
      "type": "string",
      "description": "display-name base; batches number themselves 1..N"
    },
    "role": {
      "type": "string",
      "description": "role label recorded on each membership"
    },
    "instructions": {
      "type": "string",
      "description": "custom instructions every instance carries"
    },
    "auto_start": {
      "type": "boolean",
      "description": "start every valid seat immediately (default false)"
    },
    "initial_brief": {
      "type": "string",
      "description": "optional first turn for every seat; requires auto_start=true"
    },
    "run_id": {
      "type": "string",
      "description": "optional commissioned run to attribute every initial turn to"
    },
    "max_steps": {
      "type": "integer",
      "description": "durable checkpoint interval, 1..500; not a lifetime limit"
    },
    "behaviours": {
      "type": "array",
      "items": {
        "type": "object"
      },
      "description": "presets every new seat starts with: [{preset_id, params?, instructions?}], for example [{\"preset_id\":\"follows_agent\",\"params\":{\"agent_id\":\"codex\"}}]; arc_list_behaviours lists the presets"
    },
    "request_id": {
      "type": "string",
      "description": "idempotency key; retry with the SAME id"
    }
  },
  "required": [
    "room_id"
  ]
}

arc_list_seats

Arc-managed seats of a room (default: joined room) or project: model, enabled, state (idle|running|waiting|stopped), active turn, queue depth; plus open runs.

ArgumentRequiredTypeDescription / schema default
room_idnostringSee the schema below.
project_idnostringSee the schema below.
max_charsnointegerSee the schema below.
offsetnointegerSee the schema below.

Complete input schema

json
{
  "type": "object",
  "properties": {
    "room_id": {
      "type": "string"
    },
    "project_id": {
      "type": "string"
    },
    "max_chars": {
      "type": "integer"
    },
    "offset": {
      "type": "integer"
    }
  },
  "required": []
}

arc_create_run

Commission a durable run in a room: it groups seat turns, wakeups, usage, events and stop/completion. It runs until arc_complete_run or arc_stop_run. A managed seat creating a run from its active turn attributes that turn to the run automatically. usage_target is advisory and never blocks work — keys tokens, steps, elapsed_minutes; unknown keys are refused.

ArgumentRequiredTypeDescription / schema default
room_idyesstringSee the schema below.
titlenostringSee the schema below.
briefnostringSee the schema below.
conductor_membership_idnostringSee the schema below.
run_sheet_artifact_idnostringSee the schema below.
usage_targetnoobjectSee the schema below.
metadatanoobjectSee the schema below.
auto_completenobooleanno conductor: complete ~120 s after the last turn completes if idle and Done-when passes
request_idnostringidempotency key; retry with the SAME id

Complete input schema

json
{
  "type": "object",
  "properties": {
    "room_id": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "brief": {
      "type": "string"
    },
    "conductor_membership_id": {
      "type": "string"
    },
    "run_sheet_artifact_id": {
      "type": "string"
    },
    "usage_target": {
      "type": "object"
    },
    "metadata": {
      "type": "object"
    },
    "auto_complete": {
      "type": "boolean",
      "description": "no conductor: complete ~120 s after the last turn completes if idle and Done-when passes"
    },
    "request_id": {
      "type": "string",
      "description": "idempotency key; retry with the SAME id"
    }
  },
  "required": [
    "room_id"
  ]
}

arc_list_runs

List durable commissioned runs. room_id defaults to your joined room; pass another room's id to look elsewhere; status filters. Rows add activity, idle_since, completable and blockers.

ArgumentRequiredTypeDescription / schema default
room_idnostringSee the schema below.
statusnostringAllowed: commissioned, running, paused, completed, stopped, failed.
max_charsnointegerSee the schema below.
offsetnointegerSee the schema below.

Complete input schema

json
{
  "type": "object",
  "properties": {
    "room_id": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "commissioned",
        "running",
        "paused",
        "completed",
        "stopped",
        "failed"
      ]
    },
    "max_chars": {
      "type": "integer"
    },
    "offset": {
      "type": "integer"
    }
  },
  "required": []
}

arc_run_status

Read a commissioned run, durable events, current run-tagged work, activity, completable, token usage, and advisory target deltas. Defaults to a bounded summary without turn transcripts; pass detail=full deliberately when transcript-level diagnostics are needed. Missing usage is unavailable rather than zero; target overage never blocks execution.

ArgumentRequiredTypeDescription / schema default
run_idyesstringSee the schema below.
detailnostringdefault summary; full may be very large Allowed: summary, full.
max_charsnointegercharacter budget; default 12000, floor 500

Complete input schema

json
{
  "type": "object",
  "properties": {
    "run_id": {
      "type": "string"
    },
    "detail": {
      "type": "string",
      "enum": [
        "summary",
        "full"
      ],
      "description": "default summary; full may be very large"
    },
    "max_chars": {
      "type": "integer",
      "description": "character budget; default 12000, floor 500"
    }
  },
  "required": [
    "run_id"
  ]
}

arc_run_seat

Start or reuse a managed seat and send it a run-tagged turn; busy and starting seats queue durably in FIFO order (see blocked_by). When the reply lands, end the run with arc_complete_run. run_id is required (a call without it is refused).

ArgumentRequiredTypeDescription / schema default
run_idyesstringSee the schema below.
membership_idnostringSee the schema below.
agent_idnostringSee the schema below.
briefnostringSee the schema below.
max_stepsnointegerdurable checkpoint interval, 1..500; Arc continues automatically
origin_idnostringoptional stable delivery key; repeats return the existing turn instead of duplicating it
request_idnostringidempotency key; retry with the SAME id

Complete input schema

json
{
  "type": "object",
  "properties": {
    "run_id": {
      "type": "string"
    },
    "membership_id": {
      "type": "string"
    },
    "agent_id": {
      "type": "string"
    },
    "brief": {
      "type": "string"
    },
    "max_steps": {
      "type": "integer",
      "description": "durable checkpoint interval, 1..500; Arc continues automatically"
    },
    "origin_id": {
      "type": "string",
      "description": "optional stable delivery key; repeats return the existing turn instead of duplicating it"
    },
    "request_id": {
      "type": "string",
      "description": "idempotency key; retry with the SAME id"
    }
  },
  "required": [
    "run_id"
  ]
}

arc_seat_status

One managed seat's work on a run: turn digests, queue, active turn (any run), blocked_by, token usage. detail=full with turn_id returns that turn's events. run_id is required (a call without it is refused).

ArgumentRequiredTypeDescription / schema default
run_idyesstringSee the schema below.
membership_idnostringSee the schema below.
agent_idnostringSee the schema below.
detailnostringAllowed: summary, full.
turn_idnostringSee the schema below.
max_charsnointegerSee the schema below.

Complete input schema

json
{
  "type": "object",
  "properties": {
    "run_id": {
      "type": "string"
    },
    "membership_id": {
      "type": "string"
    },
    "agent_id": {
      "type": "string"
    },
    "detail": {
      "type": "string",
      "enum": [
        "summary",
        "full"
      ]
    },
    "turn_id": {
      "type": "string"
    },
    "max_chars": {
      "type": "integer"
    }
  },
  "required": [
    "run_id"
  ]
}

arc_seat_steps

Watch a managed seat's work: its recent tool steps and turn boundaries, newest last, as {seq, ts, turn_id, step, tool, args_summary, ok, error}. Pass membership_id or agent_id (arc_list_seats); room_id defaults to your joined room. Feed next_since back as since to read only what is new.

ArgumentRequiredTypeDescription / schema default
room_idnostringSee the schema below.
membership_idnostringSee the schema below.
agent_idnostringSee the schema below.
sincenointegerseq of the last record you read; omit for the newest records, 0 for the oldest
limitnointegerrecords to return (default 50, max 200); with since you get the oldest first
max_charsnointegerSee the schema below.
offsetnointegerSee the schema below.

Complete input schema

json
{
  "type": "object",
  "properties": {
    "room_id": {
      "type": "string"
    },
    "membership_id": {
      "type": "string"
    },
    "agent_id": {
      "type": "string"
    },
    "since": {
      "type": "integer",
      "description": "seq of the last record you read; omit for the newest records, 0 for the oldest"
    },
    "limit": {
      "type": "integer",
      "description": "records to return (default 50, max 200); with since you get the oldest first"
    },
    "max_chars": {
      "type": "integer"
    },
    "offset": {
      "type": "integer"
    }
  },
  "required": []
}

arc_cancel_seat_turn

Cancel a managed seat's running turn without its session fence: pass membership_id or agent_id (arc_list_seats); room_id defaults to your joined room. The session survives and its queued turns still run. A seat with no active turn returns cancelled=false and the next call.

ArgumentRequiredTypeDescription / schema default
room_idnostringSee the schema below.
membership_idnostringSee the schema below.
agent_idnostringSee the schema below.
request_idnostringidempotency key; retry with the SAME id

Complete input schema

json
{
  "type": "object",
  "properties": {
    "room_id": {
      "type": "string"
    },
    "membership_id": {
      "type": "string"
    },
    "agent_id": {
      "type": "string"
    },
    "request_id": {
      "type": "string",
      "description": "idempotency key; retry with the SAME id"
    }
  },
  "required": []
}

arc_stop_seat

Stop one seat's active and queued work for this run; the reusable session survives. run_id is required (a call without it is refused).

ArgumentRequiredTypeDescription / schema default
run_idyesstringSee the schema below.
membership_idnostringSee the schema below.
agent_idnostringSee the schema below.
scopenostringrun (default): this run's turns only. seat: the active turn of any run, and the whole queue Allowed: run, seat.
request_idnostringidempotency key; retry with the SAME id

Complete input schema

json
{
  "type": "object",
  "properties": {
    "run_id": {
      "type": "string"
    },
    "membership_id": {
      "type": "string"
    },
    "agent_id": {
      "type": "string"
    },
    "scope": {
      "type": "string",
      "enum": [
        "run",
        "seat"
      ],
      "description": "run (default): this run's turns only. seat: the active turn of any run, and the whole queue"
    },
    "request_id": {
      "type": "string",
      "description": "idempotency key; retry with the SAME id"
    }
  },
  "required": [
    "run_id"
  ]
}

arc_stop_run

Stop all active and queued work tagged to a commissioned run and mark the run stopped. Unrelated work in reused seat sessions is preserved. Returns the run summary.

ArgumentRequiredTypeDescription / schema default
run_idyesstringSee the schema below.
detailnostringAllowed: summary, full.
max_charsnointegerSee the schema below.
request_idnostringidempotency key; retry with the SAME id

Complete input schema

json
{
  "type": "object",
  "properties": {
    "run_id": {
      "type": "string"
    },
    "detail": {
      "type": "string",
      "enum": [
        "summary",
        "full"
      ]
    },
    "max_chars": {
      "type": "integer"
    },
    "request_id": {
      "type": "string",
      "description": "idempotency key; retry with the SAME id"
    }
  },
  "required": [
    "run_id"
  ]
}

arc_complete_run

Mark a finite commissioned run complete once its observable work and Done-when contract are satisfied. For Arc loops, call finish after each cycle; use arc_control_loop to pause or stop. returns the same bounded summary as arc_run_status. A managed seat may call it from its own final run-tagged turn; every other turn, queue, wake delivery and Done-when clause must already be settled.

ArgumentRequiredTypeDescription / schema default
run_idyesstringSee the schema below.
max_charsnointegersummary character budget; default 12000, floor 500
request_idnostringidempotency key; retry with the SAME id

Complete input schema

json
{
  "type": "object",
  "properties": {
    "run_id": {
      "type": "string"
    },
    "max_chars": {
      "type": "integer",
      "description": "summary character budget; default 12000, floor 500"
    },
    "request_id": {
      "type": "string",
      "description": "idempotency key; retry with the SAME id"
    }
  },
  "required": [
    "run_id"
  ]
}

arc_set_done_when

CAS-write validated structured completion clauses for a room or one managed seat. expected_version is the room state_version (room gate) or the membership_revision (seat gate). For a seat, inherit=true with clauses omitted restores room inheritance. Unknown or malformed clauses fail closed.

ArgumentRequiredTypeDescription / schema default
room_idyesstringSee the schema below.
membership_idnostringoptional seat target; omit for the room gate
clausesnoarraytask clauses name a positive task_id; verdict clauses name metric and optional exact scope
inheritnobooleanseat only: restore room-gate inheritance; omit clauses
expected_versionyesintegerroom state_version or target membership_revision from the latest read
request_idnostringidempotency key; retry with the SAME id

Complete input schema

json
{
  "type": "object",
  "properties": {
    "room_id": {
      "type": "string"
    },
    "membership_id": {
      "type": "string",
      "description": "optional seat target; omit for the room gate"
    },
    "clauses": {
      "type": "array",
      "items": {
        "type": "object"
      },
      "description": "task clauses name a positive task_id; verdict clauses name metric and optional exact scope"
    },
    "inherit": {
      "type": "boolean",
      "description": "seat only: restore room-gate inheritance; omit clauses"
    },
    "expected_version": {
      "type": "integer",
      "description": "room state_version or target membership_revision from the latest read"
    },
    "request_id": {
      "type": "string",
      "description": "idempotency key; retry with the SAME id"
    }
  },
  "required": [
    "room_id",
    "expected_version"
  ]
}

arc_run_report

Create or refresh the run's one canonical report artifact (Arc-observed events, gate edits, seat outcomes, usage, model sources, completion readiness). Call once after arc_complete_run; repeat calls update the same artifact. Returns a receipt (artifact_id, bytes, counts) by default; the body is one arc_get_artifact away.

ArgumentRequiredTypeDescription / schema default
run_idyesstringSee the schema below.
detailnostringdefault receipt; full echoes the whole report Allowed: receipt, full.
request_idnostringidempotency key; retry with the SAME id

Complete input schema

json
{
  "type": "object",
  "properties": {
    "run_id": {
      "type": "string"
    },
    "detail": {
      "type": "string",
      "enum": [
        "receipt",
        "full"
      ],
      "description": "default receipt; full echoes the whole report"
    },
    "request_id": {
      "type": "string",
      "description": "idempotency key; retry with the SAME id"
    }
  },
  "required": [
    "run_id"
  ]
}