> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orisu.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Tools

> Every tool the Orisu MCP server exposes, grouped by what you'd do with it.

The server registers around thirty tools across read, write, and execute scopes. Every tool ships with a structured description (`WHAT it does` / `WHEN to use` / `WHAT to call NEXT`) so the model gets useful guidance without you spelling each call out.

## Discovery

The first thing a new chat does is load the [orisu-workflows skill](#workflow-skill) from `orisu://skills/workflows`. The skill teaches the patterns; the tools execute them.

| Tool                    | Scope         | Use it when                                                                                                                                                             |
| ----------------------- | ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `search`                | per kind      | Find an agent, app, model, node, asset, run, or published **template** by name fragment (scope follows the kind; `node`/`model`/`template` need none).                  |
| `who_am_i`              | none          | Confirm which org the connector is bound to.                                                                                                                            |
| `suggest_model`         | `agents:read` | Pick a model variant for a `kind` (`image_generation`, etc.) + `use_case`.                                                                                              |
| `get_effective_ports`   | `agents:read` | Resolve the actual port list for a node type given its config (some nodes have dynamic-arity ports). Includes per-port fan-out flags so you can see where lists expand. |
| `get_run_inputs_schema` | `agents:read` | Discover what `inputs` an agent expects before `trigger_run`.                                                                                                           |
| `estimate_run_cost`     | `agents:read` | Preview credit cost before kicking off a run. Fan-out nodes are priced per item; when the item count is only known at runtime the total is flagged as a lower bound.    |

## Building & editing graphs

| Tool                 | Scope          | Use it when                                                                                                                                                                                                                                                                                                                                                                         |
| -------------------- | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `view_agent`         | `agents:read`  | Show an agent's current graph. Returns structured nodes/edges AND renders the canvas inline.                                                                                                                                                                                                                                                                                        |
| `create_agent`       | `agents:write` | Build a new agent from a `GraphSpec`. Auto-layouts, validates, saves.                                                                                                                                                                                                                                                                                                               |
| `update_node_config` | `agents:write` | Patch ONE node: `config` is merged (send only changed fields), `value` replaces an input node's content, `label` renames. Positions preserved. Writes are revision-checked — a concurrent edit fails with `VERSION_CONFLICT` instead of overwriting it. Pass `include_graph: false` to skip the full graph in the response when chaining many edits. The right tool for most edits. |
| `set_input_values`   | `agents:write` | Seed MANY input nodes in one call: a map of node id → value, applied as a single save and version. Unknown or non-input ids are reported per node instead of failing the batch. The fast way to fill in a workflow's inputs after building it.                                                                                                                                      |
| `replace_graph`      | `agents:write` | Replace an existing agent's graph with a new `GraphSpec` — for structural changes (add/remove/rewire nodes). Pass `base_version_id` (from `view_agent`'s `latest_version_id`) so concurrent edits fail with `VERSION_CONFLICT` instead of being overwritten.                                                                                                                        |
| `validate_graph`     | `agents:read`  | Validate a spec before saving. Returns typed errors with `next_action` hints.                                                                                                                                                                                                                                                                                                       |
| `preview_node`       | `agents:read`  | Run one logic node (`prompt_concatenator`, `split_text`, `if_else`, `list_selector`, `text_prompt`, `rename_asset`) in isolation with sample inputs — zero credits, nothing persisted. Model-billed nodes aren't previewable.                                                                                                                                                       |
| `update_agent`       | `agents:write` | Update agent metadata (name, description, etc.).                                                                                                                                                                                                                                                                                                                                    |
| `clone_agent`        | `agents:write` | Duplicate an existing agent.                                                                                                                                                                                                                                                                                                                                                        |
| `delete_agent`       | `agents:write` | Soft-delete an agent.                                                                                                                                                                                                                                                                                                                                                               |
| `restore_version`    | `agents:write` | Roll back to a saved version.                                                                                                                                                                                                                                                                                                                                                       |
| `create_brand_kit`   | `agents:write` | Create a brand kit (name, colors, fonts, logo, voice, guidelines) for brand-aware generation.                                                                                                                                                                                                                                                                                       |
| `update_brand_kit`   | `agents:write` | Patch an existing brand kit — only the fields you pass change.                                                                                                                                                                                                                                                                                                                      |

## Running & monitoring

| Tool               | Scope          | Use it when                                                                                                                                                                                                                                              |
| ------------------ | -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `trigger_run`      | `runs:execute` | Run an agent with optional `inputs`. Pre-checks credits (`INSUFFICIENT_CREDITS` fails fast with the estimate). Accepts an optional `max_credits` spend ceiling — the run stops with `RUN_BUDGET_EXCEEDED` before exceeding it. Returns the new `run_id`. |
| `trigger_node_run` | `runs:execute` | Run an agent **up to one node**: the target plus everything it depends on, reusing cached unchanged upstream steps. Nothing downstream runs. Takes no input overrides — set values with `update_node_config` first.                                      |
| `trigger_app`      | `apps:execute` | Run a published app with the values its input schema expects. Also accepts `max_credits`.                                                                                                                                                                |
| `wait_for_run`     | `runs:read`    | Block until a run reaches `completed` / `failed` / `cancelled` / `paused`. Pass `timeout_ms` up to 110000 to bound the wait. Almost always preferable to polling `orisu://runs/{id}`.                                                                    |
| `cancel_run`       | `runs:execute` | Cancel an in-progress run.                                                                                                                                                                                                                               |
| `list_runs`        | `runs:read`    | List recent runs, filtered by `agent_id` / `status`.                                                                                                                                                                                                     |
| `submit_review`    | `runs:execute` | Approve or reject a run paused at a `human_review` node — the run resumes after.                                                                                                                                                                         |

## Publishing & sharing

| Tool                            | Scope          | Use it when                                                                                   |
| ------------------------------- | -------------- | --------------------------------------------------------------------------------------------- |
| `publish_app`                   | `apps:execute` | Turn an agent into a public app with a defined `inputSchema`.                                 |
| `share_agent` / `unshare_agent` | `agents:write` | Generate or revoke a read-only share link.                                                    |
| `upload_asset`                  | `assets:write` | Upload an image / video / audio / file as an Orisu asset that downstream nodes can reference. |

## Workflow skill

The server's top-level `instructions` field directs new agents to read `orisu://skills/workflows`, a markdown playbook covering:

* The mental model (agents, nodes, ports, runs, apps, versions, assets)
* 7 canonical workflow patterns (text→image, image→video, brand-aware multimodal, branching, fan-out, human-in-the-loop, composer layering)
* Build / edit / run / reuse / wait / iterate playbooks
* An error-recovery playbook keyed on the typed `error.code` returned from failed tools
* Cost-aware patterns and anti-patterns

It's served directly off the MCP server (not an external HTTPS URL) so it can't drift across deploys and stays consistent with the server version you're talking to.

## See also

<Columns cols={2}>
  <Card title="Resources" icon="database" href="/mcp/resources">
    The `orisu://` reads your assistant should make before designing.
  </Card>

  <Card title="Errors" icon="circle-alert" href="/mcp/errors">
    The error codes, what they mean, and how to recover.
  </Card>
</Columns>
