# flows operations

MCP tools and operation permissions for flows.

Generated from the shared operation catalog. Use [the JSON catalog](https://bytesmap.com/docs/reference/operations.json) for complete input schemas. Required dependency checks can be stricter than the resource permission listed below.

## flow_catalog

Read the live node registry, templates, ports, aggregations, condition operators, chart types and saved-flow format used by the visual editor. Use this before creating or editing nodes; never invent node types or infer column meanings. This reads no source data.

- **HTTP:** `GET /api/flows/catalog`
- **SDK:** `client.flows.catalog(input)`
- **Access:** workspace; query / read
- **Effect annotation:** Read-only

See the JSON schema for this input contract.

## flow_validate

Validate and normalize a saved flow query using the exact parser used by the canvas and execution engine. Input query is {kind:"flow",version:1,document:{version:3,title,nodes,edges},querySchemas:[]}. This does not execute SQL or fetch source rows; incomplete drafts can be structurally valid.

- **HTTP:** `POST /api/flows/validate`
- **SDK:** `client.flows.validate(input)`
- **Access:** workspace; query / read
- **Effect annotation:** Read-only

| Input | Requirement | Description |
| --- | --- | --- |
| `query` | Required | See schema |

## flow_preview

Explicitly execute a draft flow graph and return its bounded outputs. id is the SOURCE ID, not a node, query or graph ID. Get node shapes from flow_catalog. Requires query execution access to every referenced source. Only call when the user requests a run or preview; saving nodes does not require execution.

- **HTTP:** `POST /api/sources/:id/flow-preview`
- **SDK:** `client.flows.preview(input)`
- **Access:** workspace; sql / run
- **Effect annotation:** Read-only

| Input | Requirement | Description |
| --- | --- | --- |
| `graph` | Required | object |
| `querySchemas` | Optional | array |
| `params` | Optional | object |
| `id` | Required | string |
