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

# Tool reference

> Every tool your agent gets when it connects to Mora over MCP.

Your agent decides which tools to call, but it helps to know what is available, especially which tools can change your workspace.

## Read-only tools

| Tool               | What it does                                                                                                      |
| ------------------ | ----------------------------------------------------------------------------------------------------------------- |
| `list_datasources` | Lists the connected datasources in your organization (id, name, type). No credentials.                            |
| `search_catalog`   | Plain-language search over your table and column catalog. Optionally scoped to one datasource.                    |
| `run_sql`          | Runs a read-only query against a datasource and returns the column schema, total row count, and a sample of rows. |
| `list_datasets`    | Lists the datasets you can access: shared datasets plus your own private ones.                                    |
| `get_dataset`      | Returns one dataset's saved SQL and metadata.                                                                     |
| `list_boards`      | Lists the dashboards in your organization.                                                                        |
| `get_board`        | Returns a dashboard's details and a summary of its charts (type, linked dataset, position).                       |
| `plan_with_agent`  | Asks Mora's agent to research your data and propose a plan. Proposes only, builds nothing.                        |

## Tools that change your workspace

| Tool              | What it does                                                                                                                          |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| `delete_datasets` | Deletes unused datasets. Refuses any dataset that still has a chart built on it, and reports those as skipped.                        |
| `ask_agent`       | Hands a request to Mora's in-app agent, which runs on its own and can create or update datasets, dashboards, and charts.              |
| `respond_to_plan` | Applies your decision on a `plan_with_agent` proposal: accepting it builds the plan; rejecting it sends feedback back for a revision. |

<Warning>
  These three can modify your workspace. Most MCP clients ask for confirmation before a tool call, keep that on if you want to review changes first.
</Warning>

Nothing in this list can manage connections, datasource credentials, billing, members, or organization settings.

## SQL behavior

`run_sql` accepts `SELECT`, `WITH`, `SHOW`, `DESCRIBE`, and `EXPLAIN`. Anything that writes is rejected before it reaches your database.

* Mora appends `LIMIT 100` unless your query already sets a limit.
* The agent receives a 10-row sample by default; it can ask for more, up to the 100-row execution cap.
* A query that runs longer than 60 seconds keeps executing in the background, and the agent is told to narrow it instead of waiting.
* Each query is recorded as a run attributed to your user, so MCP activity shows up alongside queries run in the app.

## Building through Mora's agent

For multi-step work ("build me a revenue dashboard"), the intended flow is propose, review, then approve:

1. Your agent calls `plan_with_agent`, and Mora's agent researches your data and returns a plan.
2. Your agent shows you the plan.
3. You accept or reject, and your agent calls `respond_to_plan`. Accepting builds it; rejecting sends your feedback back for a revised plan.

`ask_agent` skips the review step and lets Mora's agent act directly, useful when you already know what you want. Both share a conversation thread, so follow-up calls continue where the last one left off. Agent runs have a 5-minute budget; if one runs out, the thread id comes back so the work can be continued rather than restarted.

<Tip>
  The same thread is visible in Mora's in-app chat, so you can open the conversation in the browser and see the plan card and everything the agent did.
</Tip>

## Related

* [Connect an agent](/mcp/connect)
* [MCP overview](/mcp/overview)
* [What the in-app AI can do](/ai/what-it-can-do)
