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:- Claude Code
- Claude Desktop / claude.ai
- Cursor
- VS Code
- Codex CLI
- Gemini CLI
- Other Clients
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:- When your AI client connects for the first time, your browser will open automatically
- If you are already logged in to Coalesce Quality, the consent screen appears directly. Otherwise, you will be asked to log in first.
- Select the permission level you want to grant (see Permissions below)
- Click Approve to authorize

Static tokens (legacy)
Long-lived workspace tokens (prefixedst-…) 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.
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.
- 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.
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
Discovery and Search
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) — setdeep=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 matchinglist_*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, viadescribe_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 withlist_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 (viadescribe_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.