MCP catalogs
Loops
Exact arguments and input schemas for loops.
arc_create_loop
Create and start a persistent goal loop in a Full Access room. Arc repeats bounded cycles until paused, stopped, or a configured limit is reached. Supports existing GGUF, self-hosted, and API/OpenRouter seats. Defaults to your joined room and your own managed seat; external harnesses must name a managed membership_id or agent_id. Preserve the operator's supplied cadence and limits. Never create replacement or child loops to bypass an existing loop's limits.
| Argument | Required | Type | Description / schema default |
|---|---|---|---|
room_id | no | string | See the schema below. |
title | no | string | short loop name |
brief | yes | string | ongoing goal for the loop |
cycle_instructions | no | string | optional per-cycle working instructions; omitted uses Arc's editable default. These do not change the goal, limits, or Arc's control rules |
membership_id | no | string | enabled managed seat; omitted defaults to your own seat |
agent_id | no | string | alternative target agent in this room; membership_id takes precedence |
interval_seconds | no | number | delay between successful cycles Default: 30. |
max_cycles | no | integer | optional successful-cycle limit; omitted means unlimited cycles |
session_id | no | string | See the schema below. |
request_id | no | string | idempotency key; retry with the SAME id |
Complete input schema
{
"type": "object",
"properties": {
"room_id": {
"type": "string"
},
"title": {
"type": "string",
"description": "short loop name"
},
"brief": {
"type": "string",
"description": "ongoing goal for the loop"
},
"cycle_instructions": {
"type": "string",
"minLength": 1,
"maxLength": 20000,
"description": "optional per-cycle working instructions; omitted uses Arc's editable default. These do not change the goal, limits, or Arc's control rules"
},
"membership_id": {
"type": "string",
"description": "enabled managed seat; omitted defaults to your own seat"
},
"agent_id": {
"type": "string",
"description": "alternative target agent in this room; membership_id takes precedence"
},
"interval_seconds": {
"type": "number",
"minimum": 1,
"maximum": 86400,
"default": 30,
"description": "delay between successful cycles"
},
"max_cycles": {
"type": "integer",
"minimum": 1,
"description": "optional successful-cycle limit; omitted means unlimited cycles"
},
"session_id": {
"type": "string"
},
"request_id": {
"type": "string",
"description": "idempotency key; retry with the SAME id"
}
},
"required": [
"brief"
]
}arc_list_loops
List persistent goal loops and their saved progress, waiting state, limits, cycle instructions and instruction revisions in a room, plus Arc's default cycle and control instructions. room_id defaults to your joined room. Use arc_run_status with a loop's run_id for execution details.
| Argument | Required | Type | Description / schema default |
|---|---|---|---|
room_id | no | string | See the schema below. |
max_chars | no | integer | See the schema below. |
offset | no | integer | See the schema below. |
Complete input schema
{
"type": "object",
"properties": {
"room_id": {
"type": "string"
},
"max_chars": {
"type": "integer"
},
"offset": {
"type": "integer"
}
},
"required": []
}arc_control_loop
Pause, resume, or stop a persistent goal loop by run_id. Resume requires Full Access. Pause and stop remain available after access is reduced, within your room write permissions. Pause retains progress and existing limits; stop ends the loop.
Side effect: stopping a loop ends its cycles; pausing keeps its state for a later resume.
| Argument | Required | Type | Description / schema default |
|---|---|---|---|
run_id | yes | string | See the schema below. |
action | yes | string | Allowed: pause, resume, stop. |
session_id | no | string | See the schema below. |
request_id | no | string | idempotency key; retry with the SAME id |
Complete input schema
{
"type": "object",
"properties": {
"run_id": {
"type": "string"
},
"action": {
"type": "string",
"enum": [
"pause",
"resume",
"stop"
]
},
"session_id": {
"type": "string"
},
"request_id": {
"type": "string",
"description": "idempotency key; retry with the SAME id"
}
},
"required": [
"run_id",
"action"
]
}arc_update_loop_instructions
Edit a persistent loop's per-cycle working instructions in a Full Access room. Read its instructions_revision from arc_list_loops and pass that as expected_instructions_revision to avoid overwriting another edit. Applies to future dispatches; work already running or queued keeps its original instructions. Does not change its goal, limits, progress, or Arc's control rules. Stopped, completed, and failed loops can be edited without resuming execution.
| Argument | Required | Type | Description / schema default |
|---|---|---|---|
run_id | yes | string | See the schema below. |
cycle_instructions | yes | string | See the schema below. |
expected_instructions_revision | yes | integer | See the schema below. |
session_id | no | string | See the schema below. |
request_id | no | string | idempotency key; retry with the SAME id |
Complete input schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"run_id": {
"type": "string"
},
"cycle_instructions": {
"type": "string",
"minLength": 1,
"maxLength": 20000
},
"expected_instructions_revision": {
"type": "integer",
"minimum": 1
},
"session_id": {
"type": "string"
},
"request_id": {
"type": "string",
"description": "idempotency key; retry with the SAME id"
}
},
"required": [
"run_id",
"cycle_instructions",
"expected_instructions_revision"
]
}