# Coordination flows

Megastructure Arc documentation

Exact arguments and input schemas for coordination flows.

[MCP reference index](/arc/docs/reference/mcp)

## arc_create_coordination

Create a reusable flow: inputs by sender, room/project, exact tags and message kind; an Arc-managed agent with instructions or an ordered command handler; optional output commands. Defaults to a disabled draft in your joined room. Full Access enables execution. Agents keep their normal tools and may override outputs. Definitions are generic; keep deliverables in artifacts/files and return short references.

Inputs use {scope:"room"|"project",room_ids:[],senders:[],tags:[],kinds:["chat"],include_direct:false,instructions:""}. Handler is {type:"agent",membership_id:"..."} or {type:"commands",actions:[{tool:"arc_...",arguments:{...}}]}. Outputs use [{outcome:"",tool:"arc_...",arguments:{...}}]; blank outcome means always. Bind {{request.sender}}, {{request.room_id}}, {{result.summary}} and {{result.links}} in message arguments. id/name are optional on inputs/actions.

| Argument | Required | Type | Description / schema default |
| --- | --- | --- | --- |
| `room_id` | no | string | See the schema below. |
| `title` | yes | string | See the schema below. |
| `enabled` | no | boolean | See the schema below. |
| `inputs` | no | array | See the schema below. |
| `handler` | yes | object | See the schema below. |
| `instructions` | no | string | See the schema below. |
| `outputs` | no | array | See the schema below. |
| `request_id` | no | string | idempotency key; retry with the SAME id |

### Complete input schema

```json
{
  "type": "object",
  "properties": {
    "room_id": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "enabled": {
      "type": "boolean"
    },
    "inputs": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "handler": {
      "type": "object"
    },
    "instructions": {
      "type": "string"
    },
    "outputs": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "request_id": {
      "type": "string",
      "description": "idempotency key; retry with the SAME id"
    }
  },
  "required": [
    "title",
    "handler"
  ]
}
```

## arc_update_coordination

Edit, enable, pause or archive a flow using its expected_revision. Edits affect future invocations. Inputs have per-input instructions; the first matching row adds them to common instructions. Conditions within a row are AND; rows are OR. Sender/room/kind lists match any entry; tags require all exact hashtags. Outputs are defaults, not restrictions. Archived flows retain history.

| Argument | Required | Type | Description / schema default |
| --- | --- | --- | --- |
| `flow_id` | yes | string | See the schema below. |
| `expected_revision` | yes | integer | See the schema below. |
| `title` | no | string | See the schema below. |
| `enabled` | no | boolean | See the schema below. |
| `archived` | no | boolean | See the schema below. |
| `inputs` | no | array | See the schema below. |
| `handler` | no | object | See the schema below. |
| `instructions` | no | string | See the schema below. |
| `outputs` | no | array | See the schema below. |
| `request_id` | no | string | idempotency key; retry with the SAME id |

### Complete input schema

```json
{
  "type": "object",
  "properties": {
    "flow_id": {
      "type": "string"
    },
    "expected_revision": {
      "type": "integer",
      "minimum": 1
    },
    "title": {
      "type": "string"
    },
    "enabled": {
      "type": "boolean"
    },
    "archived": {
      "type": "boolean"
    },
    "inputs": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "handler": {
      "type": "object"
    },
    "instructions": {
      "type": "string"
    },
    "outputs": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "request_id": {
      "type": "string",
      "description": "idempotency key; retry with the SAME id"
    }
  },
  "required": [
    "flow_id",
    "expected_revision"
  ]
}
```

## arc_list_coordination

List reusable flows in your joined room, or fetch flow_id. Defaults to compact summaries; detail=full returns editable inputs, handler, instructions and outputs. Discover this group to create or edit agent inputs and command routing without increasing every agent's initial tool list.

| Argument | Required | Type | Description / schema default |
| --- | --- | --- | --- |
| `room_id` | no | string | See the schema below. |
| `flow_id` | no | string | See the schema below. |
| `detail` | no | string |  Allowed: summary, full. |
| `max_chars` | no | integer | See the schema below. |
| `offset` | no | integer | See the schema below. |

### Complete input schema

```json
{
  "type": "object",
  "properties": {
    "room_id": {
      "type": "string"
    },
    "flow_id": {
      "type": "string"
    },
    "detail": {
      "type": "string",
      "enum": [
        "summary",
        "full"
      ]
    },
    "max_chars": {
      "type": "integer"
    },
    "offset": {
      "type": "integer"
    }
  },
  "required": []
}
```

## arc_test_coordination

Test a saved flow_id or an unsaved flow against sample {room_id, sender, body, kind, to_agent?}. Returns matching input rows and the selected first row. No agent or command runs. Room defaults to your joined room.

| Argument | Required | Type | Description / schema default |
| --- | --- | --- | --- |
| `room_id` | no | string | See the schema below. |
| `flow_id` | no | string | See the schema below. |
| `flow` | no | object | See the schema below. |
| `sample` | yes | object | See the schema below. |
| `max_chars` | no | integer | See the schema below. |
| `offset` | no | integer | See the schema below. |

### Complete input schema

```json
{
  "type": "object",
  "properties": {
    "room_id": {
      "type": "string"
    },
    "flow_id": {
      "type": "string"
    },
    "flow": {
      "type": "object"
    },
    "sample": {
      "type": "object"
    },
    "max_chars": {
      "type": "integer"
    },
    "offset": {
      "type": "integer"
    }
  },
  "required": [
    "sample"
  ]
}
```

## arc_list_coordination_invocations

Read compact invocation receipts in your joined room, optionally filtered by flow_id, or fetch invocation_id. Results identify source, original requester, status, short result and references. Bulk deliverables remain in files/artifacts. detail=full fetches saved execution history and definition snapshot on demand.

| Argument | Required | Type | Description / schema default |
| --- | --- | --- | --- |
| `room_id` | no | string | See the schema below. |
| `flow_id` | no | string | See the schema below. |
| `invocation_id` | no | string | See the schema below. |
| `limit` | no | integer | See the schema below. |
| `detail` | no | string |  Allowed: summary, full. |
| `max_chars` | no | integer | See the schema below. |
| `offset` | no | integer | See the schema below. |

### Complete input schema

```json
{
  "type": "object",
  "properties": {
    "room_id": {
      "type": "string"
    },
    "flow_id": {
      "type": "string"
    },
    "invocation_id": {
      "type": "string"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "detail": {
      "type": "string",
      "enum": [
        "summary",
        "full"
      ]
    },
    "max_chars": {
      "type": "integer"
    },
    "offset": {
      "type": "integer"
    }
  },
  "required": []
}
```

## arc_complete_coordination

Complete the exact invocation named in your coordination brief with an outcome, short summary and references. Run configured outputs once. Supply outputs to override them freely, or outputs=[] / suppress_outputs=true for no automatic reply. Keep translated text and detailed findings in artifacts/files. Completion must refer to the exact work and reviewed revision; a wait or unrelated turn is not completion.

| Argument | Required | Type | Description / schema default |
| --- | --- | --- | --- |
| `invocation_id` | yes | string | See the schema below. |
| `outcome` | no | string | See the schema below. |
| `summary` | yes | string | See the schema below. |
| `references` | no | array | See the schema below. |
| `outputs` | no | array | See the schema below. |
| `suppress_outputs` | no | boolean | See the schema below. |
| `request_id` | no | string | idempotency key; retry with the SAME id |

### Complete input schema

```json
{
  "type": "object",
  "properties": {
    "invocation_id": {
      "type": "string"
    },
    "outcome": {
      "type": "string"
    },
    "summary": {
      "type": "string",
      "maxLength": 1500
    },
    "references": {
      "type": "array",
      "maxItems": 20
    },
    "outputs": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "suppress_outputs": {
      "type": "boolean"
    },
    "request_id": {
      "type": "string",
      "description": "idempotency key; retry with the SAME id"
    }
  },
  "required": [
    "invocation_id",
    "summary"
  ]
}
```
