> For the complete documentation index, see [llms.txt](https://docs.decube.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.decube.io/mcp/overview.md).

# MCP Overview

{% hint style="warning" icon="flask" %}
The Decube MCP server is in **experimental preview**. We're iterating on it quickly based on how teams actually use it, so tools, behavior, and availability can change at short notice. We don't provide formal support for it at this stage, but we'd love to hear how it's working for you at <support@decube.io>.
{% endhint %}

{% embed url="<https://youtu.be/HIqJWIj4ENU?si=q-kQYtgGDBePEnto>" %}

Your data team already works inside AI tools. Data engineers build and change pipelines from Claude Code and Cursor. Analysts answer business questions from Claude, ChatGPT, or Gemini.

The Decube MCP (Model Context Protocol) server exposes Decube's catalog, lineage, and data quality context as tools that any MCP-compatible AI client can call directly, so your team gets Decube's trust signals at the moment they're writing a query, changing a pipeline, or building a report, not after they open a separate browser tab.

## The problem

AI assistants answer data questions without the quality or lineage context Decube already has. A team ships a report on a deprecated table, or a pipeline change breaks three downstream dashboards, and the AI assistant never knew to warn them because Decube's context wasn't in reach.

This shows up differently depending on your role:

* **Data engineers** keep switching out of their AI tool to check a table's lineage before changing a pipeline, or skip the check entirely and break downstream dependencies they didn't know existed.
* **Data analysts** keep switching out of their AI tool to verify a table's freshness and quality in Decube, or skip the check entirely and build on data they haven't verified. A wrong table surfaces downstream as a broken report or a bad decision.
* **Data governance stewards** at regulated organizations keep catalog metadata complete by hand, asset by asset. Coverage never finishes, which is an audit risk.
* **Heads of Data / CDOs** at regulated organizations can't easily tell whether their oraganisation is ready to withstand scrutiny under frameworks like Indonesia's OJK or Australia's APRA CPS 230.

## Common use cases

### 1. Find trusted data, fast.

Before an analyst builds a report, they need to know which table is the right one and whether it's fresh, complete, and free of open incidents. The MCP server answers this from inside the chat tool an analyst already uses, without a detour through the Decube UI.

> "What tables do we have on customer churn, and can I trust the most recent one?"

### 2. Know the blast radius before you change anything.

A data engineer editing a pipeline in Cursor or Claude Code can check lineage and downstream dependencies before making a change, so they see the blast radius without leaving their editor.

> "What depends on the created\_at column of the sales table before I change it?"

### 3. Spot governance gaps systematically.

A data steward can ask their agent to surface assets with no assigned owner, open incidents, or missing classifications, turning a manual audit into a conversational query.

> "Which assets have no assigned owner? Give me a prioritized list."

### 4. Check readiness for a compliance framework.

A Head of Data or CDO at a regulated organization can ask their agent to check the catalog against a specific regulatory framework's data expectations, such as ownership, classification, and incident coverage, and get a straight answer on how exposed they are before an audit.

> "Are we ready for an OJK audit?"

### 5. Curate the catalog at scale, with approval built in.

A data steward can describe, tag, and assign owners across a whole schema in one instruction, with every change attributed to them and routed through their org's approval workflow where one is configured. Weeks of manual curation collapse into minutes, without losing control over what actually changes.

> "Look at `source X` and suggest me descriptions for all tables in `public` schema. Let me review the suggestions. Once I approve the changes, proceed to write them for me."

## Available tools

The MCP server exposes read, write, and action tools. Decube scopes every result to your existing permissions, and checks every write or action against your access before it runs.

### Catalog

| Tool                       | What it does                                   | Type  |
| -------------------------- | ---------------------------------------------- | ----- |
| `search_assets`            | Search assets by name or type (fuzzy or exact) | Read  |
| `get_asset`                | Get full details for a specific asset          | Read  |
| `count_assets`             | Count assets matching a filter                 | Read  |
| `update_asset_description` | Update an asset's description                  | Write |
| `assign_asset_owner`       | Assign a data or business owner to an asset    | Write |

### Lineage

| Tool          | What it does                                 | Type |
| ------------- | -------------------------------------------- | ---- |
| `get_lineage` | Get upstream/downstream lineage for an asset | Read |

### Data quality

| Tool                  | What it does                                          | Type |
| --------------------- | ----------------------------------------------------- | ---- |
| `get_quality_summary` | Get the quality score and health summary for an asset | Read |

### Monitors

| Tool                     | What it does                               | Type   |
| ------------------------ | ------------------------------------------ | ------ |
| `search_monitors`        | Find monitors by name or asset             | Read   |
| `get_monitor_details`    | Get a monitor's configuration              | Read   |
| `get_monitor_history`    | Get a monitor's pass/fail history          | Read   |
| `get_monitor_run_status` | Check the status of a monitor run          | Read   |
| `create_monitor`         | Create a new monitor                       | Write  |
| `update_monitor`         | Update an existing monitor's configuration | Write  |
| `run_monitor`            | Run a monitor on demand                    | Action |
| `enable_disable_monitor` | Enable or disable a monitor                | Action |

### Incidents

| Tool                              | What it does                                       | Type  |
| --------------------------------- | -------------------------------------------------- | ----- |
| `list_incidents_on_asset`         | List incidents raised on an asset                  | Read  |
| `list_incidents_assigned_to_user` | List incidents assigned to a user                  | Read  |
| `get_incident_details`            | Get full detail on an incident                     | Read  |
| `get_incident_history`            | Get an incident's timeline                         | Read  |
| `update_incident`                 | Update an incident's status, assignee, or comments | Write |

### Profiling

| Tool                    | What it does                        | Type   |
| ----------------------- | ----------------------------------- | ------ |
| `get_profiling_list`    | List profiling runs for an asset    | Read   |
| `get_profiling_result`  | Get the results of a profiling run  | Read   |
| `trigger_profiling_run` | Trigger a profiling run on an asset | Action |

### Governance

| Tool                      | What it does                                | Type  |
| ------------------------- | ------------------------------------------- | ----- |
| `list_custom_attributes`  | List custom attributes defined on assets    | Read  |
| `update_custom_attribute` | Update a custom attribute value on an asset | Write |

### Users

| Tool                 | What it does                              | Type |
| -------------------- | ----------------------------------------- | ---- |
| `find_user_by_email` | Look up a user by email                   | Read |
| `find_user_by_id`    | Look up a user by ID                      | Read |
| `find_users_by_name` | Look up users by name                     | Read |
| `list_all_users`     | List all users in the org                 | Read |
| `whoami`             | Return the identity of the connected user | Read |

### Docs

| Tool            | What it does                          | Type |
| --------------- | ------------------------------------- | ---- |
| `search_docs`   | Search Decube's product documentation | Read |
| `get_docs_page` | Fetch a documentation page            | Read |

## How writes and actions stay governed

Every write and action tool checks your access before it runs. You can only change assets and incidents you're already allowed to edit in Decube, and Decube refuses unauthorized attempts with a clear message.
