Skip to main content

What is MCP?

The Model Context Protocol (MCP) is an open standard that enables AI applications to securely connect with external data sources and tools. MCP is supported by various AI tools including Claude Desktop, Cursor, VS Code, and other AI development environments. For detailed information about MCP, see:

Getting Started

MCP works out of the box — no workspace configuration needed. Just add the server to your AI client and authenticate:

Client Setup

Use the MCP server URL for your region:
Run the command for your region:

Authentication

Coalesce Quality MCP uses OAuth2 with PKCE for secure authentication. This is the recommended way to connect — no API keys or tokens need to be pasted anywhere, and every action the AI takes is attributed to you, with a via MCP badge on the actor chip so it’s clear the change came from an AI assistant rather than the app. The flow is fully automatic:
  1. When your AI client connects for the first time, your browser will open automatically
  2. If you are already logged in to Coalesce Quality, the consent screen appears directly. Otherwise, you will be asked to log in first.
  3. Select the permission level you want to grant (see Permissions below)
  4. Click Approve to authorize
OAuth consent screen showing permission options
All actions performed through MCP are tracked as done on behalf of the authenticated user, and carry a via MCP marker so the audit trail distinguishes AI-driven actions from ones performed directly in the app.

Static tokens (legacy)

Long-lived workspace tokens (prefixed st-…) created under Settings → API still work with the MCP server — pass one as a Bearer token in the Authorization header of the MCP connection. Use this only when OAuth is not an option (for example, headless automation without a real user, or when user API access is disabled for the workspace). We recommend OAuth for all interactive AI clients: actions are attributed to the real user rather than to a shared service identity, tokens can be revoked per-user, and the scopes granted match what that user’s role already allows.

Permissions

During authorization, you choose what level of access to grant. The available permission scopes on the consent screen are determined by your user role in the workspace — you will only see options that your role allows.
Each permission is granted as a whole. Ticking Deploy access grants every capability listed above, including ones the MCP tools do not use — no MCP tool promotes a reconciliation suite, for example. Grant the narrowest tier that covers what you want the assistant to do.
The set of MCP tools available to your AI assistant depends on the permissions you grant during authorization. For example, if you only grant read-only access, tools that modify data (like managing issues or deploying monitors) will not be available.

Disabling User API Access

Workspace admins can prevent users from authorizing third-party applications (including MCP clients) to access the Coalesce Quality API via OAuth. The toggle lives in Settings → Workspace and can be flipped on or off at any time by a user with the admin role — individual users do not need to take any action when the setting changes.
Toggle to disable user API access
While this is enabled:
  • New OAuth consent attempts from MCP clients are rejected with an explanatory message on the consent screen.
  • Existing OAuth tokens issued to users stop working.
  • Workspace-provisioned long-lived tokens (st-…) and client credentials continue to work — use those if you need programmatic access in this mode.
Turning the setting back off immediately restores the OAuth path; users will need to re-authorize their MCP client the next time it connects.

Coalesce Quality MCP Tools

Once connected, your AI assistant has access to a wide range of tools for working with your data infrastructure. The tables below group them by purpose.

Session and Identity

Core Entity Operations

Folder Navigation

Browse the catalog’s folder / containment hierarchy — the roots data hangs from, the sub-folders under any folder, the folder(s) an entity lives in, and the entities inside a folder. Read-only; membership is shallow by default (one level per browse, direct members only) — set deep=true or browse sub-folders in turn to recurse. Use these to discover the real folder ids that ResolverQL’s in_folder(...) operand needs.

Data Lineage Analysis

Comprehensive Lineage Upstream Analysis Downstream Analysis Cross-Entity Analysis

Orchestration

Issue and Incident Management

Impact Analysis

Data Quality and Monitoring

Executions

SQL Generation for Data Analysis

These tools generate the SQL that Coalesce Quality would run to analyse data, but the MCP server does not execute queries against your warehouse. The response includes the full executedSql — run it yourself (or let your AI client run it through a separate warehouse connection) to get actual results. This keeps your data inside your own warehouse and avoids giving the MCP server any standing database credentials.

Change Tracking and History

Database Changes Git Integration

Write Actions

The tools in this section modify workspace data and require Write access (for issue/incident actions) during OAuth consent. If the user granted only read-only access, these tools will not appear in the client.

Managing Monitors and Tests

These tools create and change data quality checks — monitors, table-stats monitors, and SQL tests all require Deploy access. Start with describe_check_types (available without any granted scope) to pick the right check type for a goal.Two safeguards apply to every write here:
  • Full replace, not patch. update_* tools replace the whole object — fetch the current definition with the matching list_* tool, apply your edits, and send the complete object. Omitted fields are cleared.
  • Confirmation-gated changes. A change that would reset a check’s baseline (retrain anomaly detection / re-run a test) or overwrite a check owned by the app UI or a YAML config is not applied on the first call. The tool reports what needs approval; re-call only after the user explicitly confirms. The assistant never self-confirms.

Deployment Rules

Deployment rules deploy monitors automatically to every asset matching a ResolverQL selection query, rather than to a fixed list of paths. All of these tools — listing, previewing, deploying, and deleting rules — require Deploy access. Call describe_resolver_ql for the query grammar, preview_deployment_rule to see the exact impact, and only then deploy_deployment_rule — the deploy and delete tools are confirmation-gated and never self-confirmed.

Data Products

Data products are named, owned groupings of assets defined by a membership query (authored as ResolverQL, via describe_resolver_ql) or pinned asset ids.
The save_data_product and delete_data_product tools require Governance access during OAuth consent. They are confirmation-gated: the first call reports what would change and never self-confirms — re-call only after the user approves. A product managed by an external source (e.g. Atlan) additionally requires an explicit overwrite confirmation.

Domains

Domains are named areas of ownership that group the assets, data products and sub-domains belonging to one part of the business. They nest: a domain can sit under a parent, and a parent’s membership includes everything its sub-domains contain. Walk the hierarchy with list_domains — omit parent_id for every domain at any level, pass a domain id for that domain’s direct children, or pass an empty string for top-level domains only. Membership is a list of parts combined with OR: a pinned asset, a whole data product, a whole other domain, or a ResolverQL selection query. Unlike a data product, a domain is not a leaf — it can reference other domains and data products, and membership is resolved recursively. A write that would make those references form a loop is rejected and names the offending path.
The save_domain and delete_domain tools require Governance access during OAuth consent. They are confirmation-gated: the first call reports what would change and never self-confirms — re-call only after the user approves. A domain managed by an external source (e.g. Atlan) additionally requires an explicit overwrite confirmation.delete_domain reports how many direct sub-domains the domain has before anything is deleted, because the two delete modes differ: a soft delete leaves those sub-domains in place, parented to a deleted domain, while a purge is refused while any of them still exist.

Owners and Ownership

Owners are named responsible parties with notification channels (contacts); ownerships assign assets to an owner and configure the alerts routed there. This is the “alert routing as code” surface.
The save_owner and delete_owner tools require Governance access. save_owner is a single use-case call that upserts the owner and its ownerships together. Both are confirmation-gated and never self-confirmed; overwriting an external-source (e.g. Atlan) owner requires an explicit overwrite confirmation.

Saved Views

Saved views are named, reusable selections over entities (or the checks / issues screens) with display configuration, sharing, and per-user pinning. Selections are authored as ResolverQL (via describe_resolver_ql).
save_saved_view and delete_saved_view require Write access (saved views are largely a per-user surface). set_saved_view_pin is available on read access — pinning is a per-user preference and changes nothing about the view. save_saved_view is confirmation-gated; editing a view you do not own, or changing its visibility / grants, requires an explicit overwrite confirmation.

Utilities