# Ingestion Rules

> MCP tools for the Ingestion Rules module. See the [Ingestion Rules module docs](/docs/modules/ingestion-rules) for permissions and data model.

# Ingestion Rules

MCP tools for the Ingestion Rules module. See the [Ingestion Rules module docs](/docs/modules/ingestion-rules) for permissions and data model.

### `list-ingestion-rules`

List ingestion rules

#### Arguments

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

### `create-ingestion-rule`

Create an ingestion rule

#### Arguments

| Argument | Type | Required | Description |
| -------- | ---- | -------- | ----------- |
| `project_id` | `string` | no | Project ID (required if not using project key auth) |
| `content_type_glob` | `string` | yes | MIME type glob matched against a file's content_type. At most 4 wildcards and 255 characters — a MIME glob needs one on each side of the slash at most. |
| `tool_id` | `string` | no | Converter tool id (mutually exclusive with agent_id) |
| `agent_id` | `string` | no | Converter agent id (mutually exclusive with tool_id) |
| `action` | `string` | no | Operation id, required for builtin/mcp tool converters |
| `preset_parameters` | `object` | no | Merged into the tool input before invocation (tool converters only) |
| `native_extraction` | `string` | no | For native types (PDF/text): `first` (default) converts only when native extraction yields no text; `skip` always converts. |
| `file_delivery` | `string` | no | How the file reaches a tool converter (default base64) |
| `chunk_strategy` | `string` | no | Default chunk strategy, overridable per ingest request |
| `chunk_size` | `number` | no | Default window size in characters for the size strategy |
| `chunk_overlap` | `number` | no | Default overlap in characters for the size strategy |
| `metadata` | `object` | no | Arbitrary JSON metadata |

### `get-ingestion-rule`

Get an ingestion rule

#### Arguments

| Argument | Type | Required | Description |
| -------- | ---- | -------- | ----------- |
| `ingestion_rule_id` | `string` | yes | Ingestion rule ID |

### `update-ingestion-rule`

Update an ingestion rule

#### Arguments

| Argument | Type | Required | Description |
| -------- | ---- | -------- | ----------- |
| `ingestion_rule_id` | `string` | yes | Ingestion rule ID |
| `content_type_glob` | `string` | no | MIME type glob matched against a file's content_type. At most 4 wildcards and 255 characters. |
| `tool_id` | `string \| null` | no | — |
| `agent_id` | `string \| null` | no | — |
| `action` | `string \| null` | no | — |
| `preset_parameters` | `object \| null` | no | — |
| `native_extraction` | `string` | no | — |
| `file_delivery` | `string` | no | — |
| `chunk_strategy` | `string \| null` | no | Send `null` to clear the rule's override and fall back to the per-request default. |
| `chunk_size` | `number \| null` | no | — |
| `chunk_overlap` | `number \| null` | no | — |
| `metadata` | `object \| null` | no | — |

### `delete-ingestion-rule`

Delete an ingestion rule

#### Arguments

| Argument | Type | Required | Description |
| -------- | ---- | -------- | ----------- |
| `ingestion_rule_id` | `string` | yes | Ingestion rule ID |
