MCP catalogs
Seat conversation control
Exact arguments and input schemas for seat conversation control.
On this page
arc_seat_context
Read exactly what a managed seat's next turn will replay: the exchanges inside its replay window (newest 12 non-excluded entries), the older ones beyond it, excluded ones, the next to fall out, and history_revision — the CAS token the seat-context verbs take as expected_history_revision. Tool calls, tool results and images are never replayed. run_id is required.
| Argument | Required | Type | Description / schema default |
|---|---|---|---|
run_id | yes | string | See the schema below. |
membership_id | no | string | See the schema below. |
agent_id | no | string | See the schema below. |
max_chars | no | integer | character budget (default 24000); older entries past it are clipped to a stand-in with head + sha256 |
Complete input schema
{
"type": "object",
"properties": {
"run_id": {
"type": "string"
},
"membership_id": {
"type": "string"
},
"agent_id": {
"type": "string"
},
"max_chars": {
"type": "integer",
"description": "character budget (default 24000); older entries past it are clipped to a stand-in with head + sha256"
}
},
"required": [
"run_id"
]
}arc_seat_retry
Drop a managed seat's last exchange and re-run it with the same or an edited prompt (message); superseded rows stay in the room for audit as stubs. dry_run=true returns the plan and the side effects that STAY (files, tasks, claims, artifacts, decisions). Refused while the seat is busy; queued turns block unless drop_queued=true. Conversation only — never an undo of files, tasks, or decisions.
| Argument | Required | Type | Description / schema default |
|---|---|---|---|
run_id | yes | string | See the schema below. |
membership_id | no | string | See the schema below. |
agent_id | no | string | See the schema below. |
turn_id | yes | string | the seat's last committed turn (from arc_seat_context or arc_seat_status) |
message | no | string | edited prompt; omit to retry the original prompt |
dry_run | no | boolean | return the supersede plan and side effects without acting |
drop_queued | no | boolean | drop the seat's queued turns first instead of refusing |
expected_history_revision | no | integer | CAS token from arc_seat_context; a mismatch is refused |
supersede_request | no | boolean | also stub the operator's request row on a same-prompt retry |
source_message_id | no | integer | room message that carries the new prompt, if you posted one |
max_steps | no | integer | checkpoint interval for the replacement turn, 1..500 |
origin_id | no | string | optional stable delivery key for the replacement turn |
request_id | no | string | idempotency key; retry a timed-out write with the SAME id (never duplicates) |
Complete input schema
{
"type": "object",
"properties": {
"run_id": {
"type": "string"
},
"membership_id": {
"type": "string"
},
"agent_id": {
"type": "string"
},
"turn_id": {
"type": "string",
"description": "the seat's last committed turn (from arc_seat_context or arc_seat_status)"
},
"message": {
"type": "string",
"description": "edited prompt; omit to retry the original prompt"
},
"dry_run": {
"type": "boolean",
"description": "return the supersede plan and side effects without acting"
},
"drop_queued": {
"type": "boolean",
"description": "drop the seat's queued turns first instead of refusing"
},
"expected_history_revision": {
"type": "integer",
"description": "CAS token from arc_seat_context; a mismatch is refused"
},
"supersede_request": {
"type": "boolean",
"description": "also stub the operator's request row on a same-prompt retry"
},
"source_message_id": {
"type": "integer",
"description": "room message that carries the new prompt, if you posted one"
},
"max_steps": {
"type": "integer",
"description": "checkpoint interval for the replacement turn, 1..500"
},
"origin_id": {
"type": "string",
"description": "optional stable delivery key for the replacement turn"
},
"request_id": {
"type": "string",
"description": "idempotency key; retry a timed-out write with the SAME id (never duplicates)"
}
},
"required": [
"run_id",
"turn_id"
]
}arc_seat_rewind
Forget one exchange and everything after it in a managed seat's memory. Pass message to continue from that point; omit it to leave the seat ready (at the last exchange this is simply Discard reply). The forgotten replies and requests are superseded in the room — stubbed for every reader, kept for audit. dry_run=true previews the plan and the side effects that stay. Refused while the seat is busy; queued turns block unless drop_queued=true.
| Argument | Required | Type | Description / schema default |
|---|---|---|---|
run_id | yes | string | See the schema below. |
membership_id | no | string | See the schema below. |
agent_id | no | string | See the schema below. |
turn_id | yes | string | the first committed turn to forget; every later exchange goes with it |
message | no | string | optional prompt to continue with from the rewind point |
dry_run | no | boolean | See the schema below. |
drop_queued | no | boolean | See the schema below. |
expected_history_revision | no | integer | See the schema below. |
source_message_id | no | integer | See the schema below. |
max_steps | no | integer | See the schema below. |
origin_id | no | string | See the schema below. |
request_id | no | string | idempotency key; retry a timed-out write with the SAME id (never duplicates) |
Complete input schema
{
"type": "object",
"properties": {
"run_id": {
"type": "string"
},
"membership_id": {
"type": "string"
},
"agent_id": {
"type": "string"
},
"turn_id": {
"type": "string",
"description": "the first committed turn to forget; every later exchange goes with it"
},
"message": {
"type": "string",
"description": "optional prompt to continue with from the rewind point"
},
"dry_run": {
"type": "boolean"
},
"drop_queued": {
"type": "boolean"
},
"expected_history_revision": {
"type": "integer"
},
"source_message_id": {
"type": "integer"
},
"max_steps": {
"type": "integer"
},
"origin_id": {
"type": "string"
},
"request_id": {
"type": "string",
"description": "idempotency key; retry a timed-out write with the SAME id (never duplicates)"
}
},
"required": [
"run_id",
"turn_id"
]
}arc_seat_edit_reply
Rewrite the reply a managed seat will remember for one committed exchange. The seat's old reply row is superseded and the edited text is posted BY YOU (metadata arc_event=seat_reply_edited names the seat and turn) — never as the seat — and the seat is told on its next turn that the edited text is authoritative.
| Argument | Required | Type | Description / schema default |
|---|---|---|---|
run_id | yes | string | See the schema below. |
membership_id | no | string | See the schema below. |
agent_id | no | string | See the schema below. |
turn_id | yes | string | See the schema below. |
content | yes | string | the reply the seat should remember having given |
expected_history_revision | no | integer | See the schema below. |
request_id | no | string | idempotency key; retry a timed-out write with the SAME id (never duplicates) |
Complete input schema
{
"type": "object",
"properties": {
"run_id": {
"type": "string"
},
"membership_id": {
"type": "string"
},
"agent_id": {
"type": "string"
},
"turn_id": {
"type": "string"
},
"content": {
"type": "string",
"description": "the reply the seat should remember having given"
},
"expected_history_revision": {
"type": "integer"
},
"request_id": {
"type": "string",
"description": "idempotency key; retry a timed-out write with the SAME id (never duplicates)"
}
},
"required": [
"run_id",
"turn_id",
"content"
]
}arc_seat_exclude_context
Exclude one committed exchange from (excluded=true, the default) or restore it to (excluded=false) a managed seat's replayed context without deleting it or touching the room. Excluding pulls an older exchange into the replay window.
| Argument | Required | Type | Description / schema default |
|---|---|---|---|
run_id | yes | string | See the schema below. |
membership_id | no | string | See the schema below. |
agent_id | no | string | See the schema below. |
turn_id | yes | string | See the schema below. |
excluded | no | boolean | See the schema below. |
expected_history_revision | no | integer | See the schema below. |
request_id | no | string | idempotency key; retry a timed-out write with the SAME id (never duplicates) |
Complete input schema
{
"type": "object",
"properties": {
"run_id": {
"type": "string"
},
"membership_id": {
"type": "string"
},
"agent_id": {
"type": "string"
},
"turn_id": {
"type": "string"
},
"excluded": {
"type": "boolean"
},
"expected_history_revision": {
"type": "integer"
},
"request_id": {
"type": "string",
"description": "idempotency key; retry a timed-out write with the SAME id (never duplicates)"
}
},
"required": [
"run_id",
"turn_id"
]
}