# Model Routes

> MCP tools for the Model Routes module. See the [Model Routes module docs](/docs/modules/model-routes) for permissions and data model.

# Model Routes

MCP tools for the Model Routes module. See the [Model Routes module docs](/docs/modules/model-routes) for permissions and data model.

### `list-model-routes`

List model routes

#### Arguments

| Argument | Type | Required | Description |
| -------- | ---- | -------- | ----------- |
| `project_id` | `string` | no | Project ID (required if not using project key auth) |
| `limit` | `number` | no | Maximum number of results to return |
| `offset` | `number` | no | Number of results to skip |

### `create-model-route`

Create a model route

#### Arguments

| Argument | Type | Required | Description |
| -------- | ---- | -------- | ----------- |
| `project_id` | `string` | no | Project ID (required if not using project key auth) |
| `name` | `string` | yes | Human-readable name, unique per project |
| `targets` | `array<object>` | yes | Ordered failover targets. Position is priority: target 0 is tried first, and a retryable failure falls through to the next target. |
| `retry_on` | `array<string>` | no | Which failure classes are failover-eligible. A failure whose class is not listed (and every deterministic failure — 400-class, auth, content policy) fails the generation immediately instead of spending another target's budget. |
| `failure_threshold` | `number` | no | Consecutive retryable failures after which a target is skipped for `cooldown_seconds`. Breaker state is in-process per node and keyed by (provider, model), so it is shared by every route pointing at the same backend. |
| `cooldown_seconds` | `number` | no | How long a tripped target is skipped before being probed again |

### `get-model-route`

Get a model route

#### Arguments

| Argument | Type | Required | Description |
| -------- | ---- | -------- | ----------- |
| `route_id` | `string` | yes | Model route ID |

### `update-model-route`

Update a model route

#### Arguments

| Argument | Type | Required | Description |
| -------- | ---- | -------- | ----------- |
| `route_id` | `string` | yes | Model route ID |
| `name` | `string` | no | New name (unique per project) |
| `targets` | `array<object>` | no | Replacement target list (ordered) |
| `retry_on` | `array<string>` | no | — |
| `failure_threshold` | `number` | no | — |
| `cooldown_seconds` | `number` | no | — |

### `delete-model-route`

Delete a model route

#### Arguments

| Argument | Type | Required | Description |
| -------- | ---- | -------- | ----------- |
| `route_id` | `string` | yes | Model route ID |
