> For the complete documentation index, see [llms.txt](https://integrations.drivetrain.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://integrations.drivetrain.ai/extending-drivetrain/using-the-drivetrain-mcp-server/available-tools.md).

# Drivetrain MCP tools

See every tool the Drivetrain MCP server exposes, its inputs, and who can use it.

Every tool an MCP client can call once it's connected to Drivetrain

The Drivetrain MCP server exposes 22 tools: 18 **read tools** that only look things up, and 4 **write tools** that save a draft for you to review. Your AI client picks the tool and fills in its inputs from your prompt; you don't call them by hand. The inputs are listed so you can see what a tool can and can't be asked for.

[Metric](https://github.com/DrivetrainAi/gitbook-integrations/tree/main/en/getting-started/start-here/key-terms-and-concepts.md#metric), [Dimension](https://github.com/DrivetrainAi/gitbook-integrations/tree/main/en/getting-started/start-here/key-terms-and-concepts.md#dimension), [Version](https://github.com/DrivetrainAi/gitbook-integrations/tree/main/en/getting-started/start-here/key-terms-and-concepts.md#version), [Scenario](https://github.com/DrivetrainAi/gitbook-integrations/tree/main/en/getting-started/start-here/key-terms-and-concepts.md#scenario), [List](https://github.com/DrivetrainAi/gitbook-integrations/tree/main/en/getting-started/start-here/key-terms-and-concepts.md#list), and [Model](https://github.com/DrivetrainAi/gitbook-integrations/tree/main/en/getting-started/start-here/key-terms-and-concepts.md#model) are defined in [Key terms & concepts](https://github.com/DrivetrainAi/gitbook-integrations/tree/main/en/getting-started/start-here/key-terms-and-concepts.md). A few more terms used on this page:

* **Board** — a report or dashboard made up of charts. See [Boards](https://github.com/DrivetrainAi/gitbook-integrations/tree/main/en/getting-started/boards/README.md).
* **Dataset** — a table pulled into Drivetrain from a connected source, such as Snowflake or Salesforce.
* **Transformation** — a step applied on top of a dataset, such as adding a column, renaming a column, or looking up a value from another table.
* **System name** — the internal name of a metric, version, scenario, or dimension (for example `Base_Case`). Tools return it alongside the display name.

## Who can use which tool

Two checks apply to every call:

1. **Your role's MCP setting** decides whether the tool is offered at all. A tool your role doesn't allow is hidden from the client, and a direct call is refused. See [Set up MCP access](/extending-drivetrain/using-the-drivetrain-mcp-server/set-up-mcp-access.md).
2. **Your data access** decides what the tool returns, exactly as in the app. The **Permission** column below lists anything a tool needs on top of that.

## Read tools

### Finding and fetching metrics

| Tool               | What it does                                                                                                                                                                                                                                                                                                                        | Inputs                                                                                                                                                                                                                                                                 | Permission                                                                                                         |
| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| `search_metrics`   | Searches your metrics by meaning rather than exact spelling, so "sales performance" finds the relevant metrics. Returns up to 10 matches per search phrase, each with its system name, display name, description, type, format, and the dimensions it can be sliced by. If nothing matches, it returns every metric you can access. | `search_phrases` (list)                                                                                                                                                                                                                                                | Only metrics you can access                                                                                        |
| `describe_metrics` | Returns the same details for metrics whose exact system names are already known.                                                                                                                                                                                                                                                    | `metric_names` (list)                                                                                                                                                                                                                                                  | Only metrics you can access                                                                                        |
| `query_metrics`    | Fetches values for one or more metrics over a date range. The tool behind "show me revenue by quarter". Returns values per metric; a metric that fails returns its own error without failing the others.                                                                                                                            | `metrics` (max 50), `start_date`, `end_date` (YYYY-MM-DD), `granularity` (`DAILY`, `WEEKLY`, `MONTHLY`, `QUARTERLY`, `YEARLY`), `versions`; optional `dimensions` (max 5, must apply to every metric), `scenarios` (default Base Case), `filters` (dimension → values) | Only metrics, versions, and scenarios you can access. Asking for a scenario you can't access fails the whole call. |
| `list_versions`    | Lists your Versions, such as Actual and Budget, with each version's ID, system name, and display name.                                                                                                                                                                                                                              | none                                                                                                                                                                                                                                                                   | —                                                                                                                  |
| `list_scenarios`   | Lists your Scenarios, such as Base Case and Optimistic, with system and display names.                                                                                                                                                                                                                                              | none                                                                                                                                                                                                                                                                   | Only scenarios you can access                                                                                      |

### Understanding how data can be sliced

| Tool                   | What it does                                                                                                                                                                    | Inputs                                 | Permission                                                                         |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------- | ---------------------------------------------------------------------------------- |
| `list_dimensions`      | Lists every Dimension with its attributes, which are themselves dimensions, so the client can see how they relate.                                                              | none                                   | None: lists every dimension name, including ones you can't read (no values)        |
| `get_dimension_values` | Lists every value of one dimension, such as all department names.                                                                                                               | `dimension_name`                       | Read access to the dimension; values outside your access are removed               |
| `resolve_dimensions`   | Works out which dimension a value belongs to for a given metric. If a prompt mentions "Marketing", this finds that Marketing is a Department. Returns `Dimension: Value` pairs. | `metric_name`, `search_phrases` (list) | Only metrics and dimensions you can access; values outside your access are removed |

### Answering product questions

| Tool          | What it does                                                                                                                                                                            | Inputs     | Permission |
| ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- | ---------- |
| `search_docs` | Searches this Drivetrain documentation to answer a how-to or concept question, such as how scenario planning works. Meant for help questions only, not while building a board or model. | `question` | —          |

### Reading boards

| Tool        | What it does                                                                                                                         | Inputs     | Permission                                       |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------ | ---------- | ------------------------------------------------ |
| `get_board` | Fetches an existing Board in full, including its charts, layout, and settings. The client reads a board this way before changing it. | `board_id` | Any access to the board other than **No access** |

### Reading the model

| Tool               | What it does                                                                                                                                                                                                                     | Inputs                                                                                                 | Permission                                        |
| ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------- |
| `get_model_dtml`   | Reads one section of your model's structure per call: `meta` (plan period, start date, name), `folder` (folders and modules), `metrics` (every variable's definition and formula), `templates` (module layouts), or `scenarios`. | `section`                                                                                              | `meta`: anyone. Every other section: admins only. |
| `validate_formula` | Checks a planning formula's syntax before it's saved: function names, arguments, brackets, dimension filters, date handling. It doesn't check that the metrics named inside it exist. Returns valid, or the list of errors.      | `rhs` (the formula, without `metrics.X =`); optional `lhs_metric_name`, `scenario` (default Base Case) | —                                                 |

### Reading Lists

| Tool            | What it does                                                                                                                                         | Inputs                                                                   | Permission                |
| --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------ | ------------------------- |
| `get_lists`     | Shows which Lists exist, with each one's ID, name, display name, and description. A List has a different ID in each version.                         | optional `version_id` (from `list_versions`; omit for the current model) | Only Lists you can access |
| `get_list_data` | Opens one List and returns its column order, the formulas behind calculated columns, its unique key, and every row with formulas already worked out. | `list_id`                                                                | Admins only               |

### Reading connected data

| Tool                                  | What it does                                                                                                                                                         | Inputs                      | Permission                                       |
| ------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------- | ------------------------------------------------ |
| `list_datasets`                       | Lists your connected data sources, such as Snowflake or Salesforce, and the tables in each.                                                                          | none                        | Only datasets you can access                     |
| `list_dataset_columns`                | Shows the columns in one table and each column's data type.                                                                                                          | `table_name`                | Access to the dataset                            |
| `get_dataset_column_values`           | Lists the distinct values in one column, so exact spelling and capitalization can be confirmed before filtering. Values reflect the table's current transformations. | `table_name`, `column_name` | Access to the dataset                            |
| `get_dataset_current_transformations` | Shows the transformation steps on one table, in the order they run, each with its position number.                                                                   | `table_name`                | Admins only, with **Full access** to the dataset |

## Write tools

Each write tool saves a **draft** in Drivetrain. Nothing changes until you open the draft and **Save** it. **Discard** throws the draft away and leaves the original untouched.

| Tool                             | What it does                                                                                                                                                                                                                                                                                                                    | Inputs                                                                                                                   | Permission                                       |
| -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------ |
| `create_board`                   | Builds a new Board, checks it for structural and chart-type mistakes, saves it as a draft, and returns an **Open board** link.                                                                                                                                                                                                  | `board` (name, description, settings, charts, layout)                                                                    | The role's **Create board** toggle               |
| `update_board`                   | Changes an existing Board: adds or removes charts, adjusts layout, or renames it. A published board is left untouched; the changes go into a new draft copy, and saving the draft applies them to the original. If the board is already a draft, that draft is updated.                                                         | `board` (the full board, with its existing ID)                                                                           | **Full access** to the board                     |
| `add_dataset_transformations`    | Adds transformation steps after the ones a table already has, in a draft. For a plain-English step, the SQL is generated automatically. Replies with the draft's path in Drivetrain (starting `/data/datasets/`): add it to your Drivetrain address to open the draft in the dataset editor, or open the dataset in Drivetrain. | `table_name`, `sql_transformations` (list of steps)                                                                      | Admins only, with **Full access** to the dataset |
| `update_dataset_transformations` | Replaces existing transformation steps, by position number, with new versions, in a draft. Replies with the draft's path, like `add_dataset_transformations`.                                                                                                                                                                   | `table_name`, `ids` (positions from `get_dataset_current_transformations`), `new_sql_transformations` (one per position) | Admins only, with **Full access** to the dataset |

Both board tools remove any metric you can't access from the charts before saving.

### Transformation step types

The two dataset tools accept these step types:

| Type                 | What it does                                                   | Main fields                                                                     |
| -------------------- | -------------------------------------------------------------- | ------------------------------------------------------------------------------- |
| `ADD_COLUMN`         | Adds a calculated column                                       | `columnName`, `prompt` (required; plain-English description of the calculation) |
| `RENAME_COLUMN`      | Renames a column added by a transformation                     | `columnName`, `value` (new name)                                                |
| `MODIFY_COLUMN_TYPE` | Changes the data type of a column added by a transformation    | `columnName`, `value` (new type)                                                |
| `LOOKUP`             | Brings columns over from another table by matching key columns | `dataset`, `columnNames`, `datasetColumnNames`, `datasetSelectColumnNames`      |
| `PROMPT`             | A free-form step written in plain English                      | `prompt` (required)                                                             |

Limits:

* Transformations can't be added to List datasets.
* `RENAME_COLUMN` and `MODIFY_COLUMN_TYPE` are skipped on columns that come from the source. Change those in **Manage Schema** instead.
* If any step would create a column name that already exists, the whole request is refused and none of its steps are added.
* If a new step fails, the draft is still saved so you can fix it in the editor; the tool's reply says which step failed.
* From an AI client, each call starts a new draft and discards any unsaved transformation draft you have on that table, including one from the previous call. Ask for all the steps in one request, or save the draft before asking for more.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://integrations.drivetrain.ai/extending-drivetrain/using-the-drivetrain-mcp-server/available-tools.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
