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

# dbt Discovery Tools

> Query your dbt project metadata from DinoAI: models, sources, macros, exposures, lineage, model health, and historical run performance from Bolt runs.

export const ToolMeta = ({copilot = false, agent = false, backedBy, name, href}) => {
  const pill = on => ({
    display: 'inline-flex',
    alignItems: 'center',
    gap: '5px',
    padding: '2px 10px',
    borderRadius: '9999px',
    fontSize: '13px',
    fontWeight: 500,
    border: '1px solid',
    borderColor: on ? 'rgba(114,106,227,0.35)' : 'rgba(128,128,140,0.22)',
    background: on ? 'rgba(114,106,227,0.12)' : 'transparent',
    color: on ? '#5943D6' : '#9AA0AA'
  });
  return <div style={{
    display: 'flex',
    flexWrap: 'wrap',
    alignItems: 'center',
    gap: '8px',
    margin: '0 0 1.5rem'
  }}>
      <span style={{
    fontSize: '13px',
    fontWeight: 600,
    color: '#6B7280'
  }}>Available in</span>
      <span style={pill(copilot)}>{copilot ? '✓' : '—'} Copilot</span>
      <span style={pill(agent)}>{agent ? '✓' : '—'} Agent</span>
      {backedBy === 'native' && <span style={{
    fontSize: '13px',
    color: '#9AA0AA'
  }}>· Built-in</span>}
      {(backedBy === 'integration' || backedBy === 'connection') && name && <span style={{
    fontSize: '13px',
    color: '#6B7280'
  }}>
          · Backed by {href ? <a href={href}>{name}</a> : name} {backedBy}
        </span>}
    </div>;
};

<ToolMeta copilot agent backedBy="native" />

The dbt Discovery Tools let DinoAI answer questions about your dbt project's structure, health, and performance from metadata, without reading files or querying the warehouse. They are backed by the artifacts of your Bolt runs, the same data behind the [Discovery API](/developers/graphql-api/api-reference/discovery-api).

Tool names, parameters, and output mirror the [dbt-mcp](https://github.com/dbt-labs/dbt-mcp) Discovery toolset, so prompts written against dbt-mcp work unchanged.

#### Capabilities

| Tool                    | What it returns                                                                      |
| ----------------------- | ------------------------------------------------------------------------------------ |
| `get_all_models`        | Name, unique ID, and description of every model                                      |
| `get_mart_models`       | Mart models only (`fct_`/`dim_` prefixes or a `marts/` path)                         |
| `get_all_sources`       | Sources with their freshness status, filterable by source name                       |
| `get_all_macros`        | Macros, with dbt Labs builtin packages excluded by default                           |
| `get_exposures`         | Downstream dashboards, apps, and analyses                                            |
| `get_lineage`           | The lineage graph around a node, filterable by type, depth, and direction            |
| `get_model_health`      | A model's last run status, test statuses, and upstream parents' status and freshness |
| `get_model_performance` | Historical run timings for a model, newest first, with optional per-run test results |
| `get_node_details`      | Full details for any node: model, source, exposure, test, seed, snapshot, or macro   |

All nine tools are read-only and run without prompting for approval.

<Info>
  Discovery data comes from your Bolt runs in the workspace's default Bolt environment. If a workspace has no Bolt runs with dbt™ artifacts yet, the tools return an error explaining that no discovery data has been ingested.
</Info>

#### Example Use Cases

**Checking model health before a change**

**Prompt**

```
Is stg_orders healthy? Check its tests and upstream sources.
```

**Result:** DinoAI reports the model's last run status, each attached test's status, and whether its direct parents ran successfully and have fresh sources.

**Investigating slow runs**

**Prompt**

```
How long did fct_orders take over the last 10 runs?
```

**Result:** DinoAI returns the model's historical execution times so you can spot regressions.

#### Working with Other Tools

* Combine with the **Catalog Tool** to first find an asset by business concept, then pull its full details and lineage with `get_node_details` and `get_lineage`
* Combine with the **SQL Execution Tool** to validate the data behind a model whose metadata looks suspicious
* Combine with the **Bolt Logs Tool** to jump from a failing model's health report to the logs of the run that broke it


## Related topics

- [Tools Reference](/products/dino-ai/programmable-agents/tools-reference.md)
- [DinoAI answers questions from your dbt metadata](/changelog/2026-08-12/dbt-discovery-tools.md)
- [MCP Server](/products/dino-ai/mcp-server/index.md)
- [Discovery API: query your dbt metadata over GraphQL](/changelog/2026-08-07/discovery-api.md)
- [Discovery API](/developers/graphql-api/api-reference/discovery-api.md)
