data-quality-cde-mcp-server
This MCP server automates data quality checks on live Cloudera Data Warehouse (CDW) tables using CDE Airflow jobs generated from ODCS data contracts, without requiring WAP staging. You can:
Generate DAGs: Parse an ODCS contract (schema + quality rules like completeness, uniqueness, range, freshness, custom SQL, etc.) to generate an Airflow DAG, and preview the SQL checks before deployment.
Deploy: Deploy the DAG and required resources to CDE as an Airflow job, with options to force recreate and auto-trigger after deployment.
Manage Jobs: List, describe, and delete CDE jobs, and list file resources.
Run & Monitor: Trigger manual runs, list job runs, get run status, and check the latest Airflow DAG run status.
Diagnose: View redacted CDE/CDW configuration and test CDE endpoint connectivity.
The generated DAGs include audit logging and support flexible cron scheduling (defaulting to daily at 03:00 UTC).
Provides tools for managing Cloudera Data Engineering (CDE) jobs, including generating DAGs from data contracts, deploying Airflow jobs, listing jobs and resources, triggering runs, and monitoring job status.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@data-quality-cde-mcp-serverDeploy the flights contract to CDE"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Data Quality CDE MCP Server
MCP server that generates and deploys Cloudera Data Engineering (CDE) Airflow jobs from ODCS data contracts. It validates live table data in CDW against schema and data-quality rules — without Write-Audit-Publish (WAP) staging branches.
Built on patterns from data-quality (CDE deployment, CDW connection, SQL operators) and data-contract-mcp-server (ODCS contract format, MCP tool design).
What it does
Parse an ODCS-compatible data contract (
schema_objects+qualityrules)Generate an Airflow DAG that runs daily (default
0 3 * * *) using:SQLExecuteQueryOperator— audit table setupSQLCheckOperator— schema + quality checks against the live tableBranchPythonOperator— pass/fail gate with audit logging
Deploy to CDE — upload DAG +
lib/+sql/resource, create Airflow jobMonitor CDE job runs and Airflow execution status
Related MCP server: aegis-dq
MCP tools (14)
Tool | Description |
| Show current CDE/CDW settings |
| Probe CDE CLI endpoint + list jobs |
| Generate DAG Python from contract JSON |
| Generate Spark orchestrator DAG + bundle preview |
| Preview SQL checks before deploy |
| Generate + deploy CDE job ( |
| List CDE jobs |
| Job details |
| List file resources |
| Manual job run |
| List runs for a job |
| Run status by id |
| Latest Airflow run for a CDE job |
| Delete CDE job |
Configuration
Copy .env.example to .env:
CDE_USER=your_cde_workload_user
CDE_PASSWORD=your_cde_workload_password
CDE_ENDPOINT_URL=https://your-cde-service.cloudera.site
CDW_CONNECTION_ID=CDW
DEFAULT_DAG_SCHEDULE=0 3 * * *Parameter | Description |
| CDE workload username |
| CDE workload password |
| Jobs API URL from CDE cluster details ( |
| Optional Knox token URL (auto-derived if unset) |
|
|
| Path to |
| Airflow connection id for Hive/Impala in CDW (default: |
| Cron schedule (default: daily at 03:00 UTC) |
Agent Studio: The CDE CLI is not installed in CrewAI/Agent Studio. Use CDE_TRANSPORT=api (default) with the Jobs API URL — not the Grafana or service-only URL.
Local laptop: Use CDE_TRANSPORT=cli if you have the cde binary configured, or keep api everywhere for consistency.
Prerequisite: For deploy tools, generated DAG bundles are uploaded via REST. The Airflow CDW connection must exist in your CDE environment.
Cloudera Agent Studio (recommended)
Agent Studio only supports stdio MCP servers launched with uvx (Python) or npx (Node.js). Use a git URL so the runtime can install the package; do not use uv run unless the repo is checked out on the same machine.
{
"mcpServers": {
"data-quality-cde-mcp-server": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/frothkoetter/data-quality-cde-mcp-server.git@master",
"run-server"
],
"env": {
"CDE_USER": "<your_cde_workload_user>",
"CDE_PASSWORD": "<your_cde_workload_password>",
"CDE_ENDPOINT_URL": "https://<your-cde-service>.cloudera.site",
"CDW_CONNECTION_ID": "CDW"
}
}
}
}See also conf.yaml.example for YAML-style Agent Studio registration.
Registration tips
Push this repo to GitHub first —
uvx --from git+https://...cannot resolve a local-only repo.Use placeholder CDE credentials during catalog registration; provide real values when attaching the MCP server to a workflow agent.
If you see "We could not figure out the tools offered by the MCP server", the server may still work in workflows — Agent Studio documents occasional tool-discovery failures. Add the MCP server to your agent manually and select tools there.
Avoid writing to stdout from wrapper scripts — stdio transport uses stdout for JSON-RPC.
Ensure the Agent Studio environment has
uvxon PATH (which uvx) and can reachCDE_ENDPOINT_URL.
See Cloudera MCP registration docs.
Troubleshooting MCP server load failures
If CrewAI Agent Studio, Cursor, or another MCP host fails to connect to this server via uvx, check the following.
Wrong git branch in uvx --from
This repo's default branch is master (not main). Agent Studio registration fails if the git URL points at a non-existent branch:
git+https://github.com/frothkoetter/data-quality-cde-mcp-server.git@masterFastMCP / mcp import error
uvx installs the latest mcp package (currently 2.x). MCP Python SDK 2.0 renamed FastMCP to MCPServer. Older server builds crash on startup with:
ImportError: cannot import name 'FastMCP' from 'mcp.server'This server includes the dual-import fix (MCPServer + FastMCP fallback). Ensure you use a build from main after the MCP SDK 2.x compatibility update.
Verify locally:
CDE_USER="test" CDE_PASSWORD="test" CDE_ENDPOINT_URL="https://example.com" \
uv run python scripts/test_mcp_stdio.py uvx --from . run-serverExpected output: OK initialize and OK tools/list: 13 tools.
Missing CDE credentials
CDE credentials are not required at startup (tool discovery works without them). They are required when calling deploy/monitor tools such as deploy_contract_dq_job or list_cde_jobs. Set CDE_USER, CDE_PASSWORD, and CDE_ENDPOINT_URL in the MCP host env block before using those tools.
FileNotFoundError: cde in Agent Studio
CrewAI Agent Studio does not install the CDE CLI. The server now uses the CDE REST API by default (CDE_TRANSPORT=api). Ensure:
CDE_ENDPOINT_URLis the Jobs API URL from your virtual cluster details (https://<vc>.<host>/dex/api/v1) — not a generic service URL.CDE_TRANSPORT=api(default) — do not setcliin Agent Studio.CDE_USER/CDE_PASSWORDare valid CDP workload credentials.
Test connectivity with the diagnose_cde_connectivity MCP tool after re-registering.
Agent Studio / CrewAI config
Ensure uvx is on the Agent Studio host PATH (which uvx).
Cursor / MCP setup
Add to your MCP config (see mcp.json.example):
{
"mcpServers": {
"data-quality-cde-mcp-server": {
"command": "uvx",
"args": ["--from", "git+https://github.com/frothkoetter/data-quality-cde-mcp-server.git@master", "run-server"],
"env": {
"CDE_USER": "<user>",
"CDE_PASSWORD": "<password>",
"CDE_ENDPOINT_URL": "https://<cde-host>",
"CDW_CONNECTION_ID": "CDW"
}
}
}
}Local development:
cd data-quality-cde-mcp-server
uv sync
uv run run-serverExample contract
See examples/flights_contract.json — based on the airlinedata.flights table from the data-quality project:
{
"contract_id": "flights-contract",
"version": "1.0",
"schema_objects": [{
"name": "flights",
"physical_name": "airlinedata.flights",
"properties": [
{"name": "uniquecarrier", "isRequired": true},
{"name": "origin", "isRequired": true}
]
}],
"quality": [
{"name": "carrier_completeness", "rule_type": "completeness", "element": "uniquecarrier"},
{"name": "delay_range", "rule_type": "range", "element": "arrdelay", "threshold": "600"}
]
}Generated DAG flow
ensure_audit_table → column/table/custom checks → evaluate_contract_gate
├─ dq_success → persist_audit
└─ contract_violation_alert (AirflowException + audit log)Uses Airflow Common SQL provider operators per Astronomer's SQL data quality guide:
Operator | Used for | Contract mapping |
| Null, unique, min, max, distinct per column |
|
| Row count, freshness, composite PK | Default |
| Custom SQL | Rules with a |
Column check types (SQLColumnCheckOperator)
Check type | SQL abstraction | Example contract rule |
|
|
|
|
|
|
|
|
|
|
|
|
Qualifiers: equal_to, greater_than, geq_to, less_than, leq_to (with optional tolerance).
Table checks (SQLTableCheckOperator)
Check | Example |
Row count |
|
Freshness |
|
Composite PK | Custom |
Custom checks (SQLCheckOperator)
Any rule with a query field, or checks spanning multiple tables. Returns a single row; task fails if any value is Python-falsy (e.g. 0).
Supported quality rule types
Rule type | Generated SQL |
| Null count = 0 |
| No duplicate values |
| Column <= threshold |
| Column >= threshold |
| Max timestamp within N hours |
| COUNT(DISTINCT col) >= threshold |
Custom | Use |
Schema checks always include: min row count, required-column null checks, primary-key uniqueness.
Deploy from MCP
deploy_contract_dq_job(
contract_json=<ODCS contract>,
cde_user=...,
cde_password=...,
cde_endpoint_url=...,
cdw_connection_id="CDW",
trigger_after_deploy=true
)This creates:
CDE resource:
{contract-id}-dq-resource(DAG + lib/ + sql/)CDE Airflow job:
{contract-id}-dq-jobDAG id:
dag_contract_dq_{contract_id}
Spark 3.4 orchestration (execution_mode="spark")
Use when checks should run in Spark instead of Airflow SQL operators:
deploy_contract_dq_job(
contract_json=<ODCS contract>,
execution_mode="spark",
spark_runtime_image="dex-spark-runtime", # optional Spark 3.4 runtime resource
schedule="0 * * * *",
trigger_after_deploy=true
)This creates:
Same CDE resource with
contract_dq_spark.py,contract_config.json, and orchestrator DAGSpark child job:
{contract-id}-spark-dq-job(triggered by Airflow, not scheduled)Airflow orchestrator job:
{contract-id}-dq-jobwith schedule; DAG ensures Icebergdq_audit_log/dq_audit_metrictables then callsCDEJobRunOperatorSpark job runs contract checks and writes audit log + Griffin metrics rows
Optional env: CDE_SPARK_RUNTIME_IMAGE, CDE_SPARK_NUM_EXECUTORS, CDE_SPARK_EXECUTOR_MEMORY,
CDE_SPARK_DRIVER_MEMORY, CDE_SPARK_CONF (JSON).
Monitor:
list_cde_job_runs(job_name="flights-contract-dq-job")
get_airflow_dag_run_status(job_name="flights-contract-dq-job")Schedule / duplicate runs: Deploy leaves the CDE schedule paused by default. Unpausing can immediately enqueue a missed-interval (backfill) run. Never combine unpause with a manual trigger in the same step — that starts two runs within seconds.
default deploy → schedule paused; unpause manually or pass
activate_schedule=truetrigger_after_deploy=true→ one isolated manual run; schedule re-paused after triggertrigger_cde_job→ same isolated manual run (schedule stays paused)All generated DAGs set
max_active_runs=1to serialize overlapping DAG runs
Differences from data-quality (WAP project)
Feature | data-quality | This MCP server |
WAP / Iceberg branches | Yes | No |
DataSketches baseline | Yes | No (contract-driven SQL) |
Data ingest staging | Yes | No — checks live table |
Deployment | Shell script | MCP tools + CDE CLI |
Contract source | Airflow Variables | ODCS JSON / Atlas contracts |
Schedule |
| Default |
Development
uv sync
uv run pytest
uv run ruff check src testsLicense
Apache-2.0
Available Tools
13 toolsdelete_cde_jobB
Delete a CDE Airflow job. WRITE OPERATION
| Name | Required | Description | Default |
|---|---|---|---|
| cde_user | No | ||
| job_name | Yes | ||
| cde_password | No | ||
| cde_endpoint_url | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It flags 'WRITE OPERATION' but does not state that deletion is permanent, irreversible, or might have side effects on existing DAG runs or downstream dependencies. It adds minimal context beyond what the action 'Delete' already implies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded, with a single clear sentence and a bold safety note. It is appropriately short for a simple delete operation, though the 'WRITE OPERATION' warning might be considered redundant given the verb 'Delete.'
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description lacks critical context for a destructive operation. It does not mention that deletion is permanent, what happens to associated resources (e.g., job runs), or whether special permissions are required. It also fails to explain the authentication parameters, leaving users under-informed for safe invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no meaning for the input parameters (job_name, cde_user, cde_password, cde_endpoint_url). It fails to explain the purpose of the optional authentication parameters or clarify the required job_name. The description adds zero value over the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Delete') and resource ('CDE Airflow job'), clearly distinguishing it from sibling tools like list_cde_jobs, describe_cde_job, and trigger_cde_job. It unambiguously states what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you need to delete a CDE job, but it does not explicitly mention when to use this tool versus alternatives, nor does it provide any prerequisites or exclusions. There is no guidance on when not to use it, such as if the job is running or has dependencies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deploy_contract_dq_jobA
Generate DAG from data contract and deploy to Cloudera CDE as an Airflow job.
Creates/updates a CDE files resource (lib/, sql/, DAG) and an Airflow job. Checks live table data against schema and quality rules — no WAP/staging branch.
Args: contract_json: ODCS-compatible contract JSON. cde_user: CDE workload username. cde_password: CDE workload password. cde_endpoint_url: CDE REST/CLI endpoint URL. cdw_connection_id: Airflow CDW connection id (default CDW). schedule: Cron schedule (default daily 0 3 * * *). audit_table: Optional audit table qualified name. force_recreate: Delete and recreate job/resource before deploy. trigger_after_deploy: Trigger a manual CDE job run after deploy.
| Name | Required | Description | Default |
|---|---|---|---|
| cde_user | No | ||
| schedule | No | ||
| audit_table | No | ||
| cde_password | No | ||
| contract_json | Yes | ||
| force_recreate | No | ||
| cde_endpoint_url | No | ||
| cdw_connection_id | No | ||
| trigger_after_deploy | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well by disclosing that it creates/updates a CDE files resource and Airflow job, checks live table data, avoids WAP/staging, and supports force_recreate for deletion. It lacks details on failure modes or idempotency, but covers the key behavioral traits for a deployment tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a concise summary followed by an Args list. Every sentence adds value, and the layout makes it easy to scan for purpose, behavior, and parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with 9 parameters and no annotations, the description is remarkably complete: it covers all parameter semantics, key side effects, and even special behavior like no WAP branch. Since an output schema exists, not explaining return values is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema description coverage is 0%, the Args section in the description provides meaningful definitions and defaults for all 9 parameters, such as 'ODCS-compatible contract JSON', 'default CDW', and 'default daily 0 3 * * *'. This fully compensates for the schema's missing descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource statement: 'Generate DAG from data contract and deploy to Cloudera CDE as an Airflow job.' It clearly distinguishes itself from siblings like generate_dag_from_contract by explicitly adding deployment and the creation/update of CDE files resource and Airflow job.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly conveys the tool's deployment purpose and side effects, allowing an agent to infer when to use it. However, it does not explicitly mention alternatives or exclusion criteria, such as 'use generate_dag_from_contract if you only need the DAG without deployment.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
describe_cde_jobC
Describe a CDE job by name.
| Name | Required | Description | Default |
|---|---|---|---|
| cde_user | No | ||
| job_name | Yes | ||
| cde_password | No | ||
| cde_endpoint_url | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It only says 'Describe', which implies a read-only operation, but it does not disclose that cde_user, cde_password, and cde_endpoint_url are likely authentication-related, nor what happens if they are absent or invalid. Credential handling is a meaningful behavioral trait left unexplained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler. Every word contributes to the core purpose. It is appropriately concise for a simple describe operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 4 parameters, no annotations, and 13 sibling tools, this one-liner is insufficient. It lacks guidance on authentication requirements, selection relative to sibling tools, and what 'describe' encompasses. The output schema may cover return values, but the description does not make the tool easy to invoke correctly without prior domain knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only reinforces that job_name is the lookup key via 'by name'. It does not explain cde_user, cde_password, or cde_endpoint_url, which are critical optional parameters. The description fails to compensate for the absent schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Describe') and resource ('a CDE job'), and narrows it by name. It distinguishes from list_cde_jobs by implying a single-job lookup, though it doesn't explicitly name alternatives or the nature of the returned details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus list_cde_jobs, get_cde_config, or get_cde_job_run_status. The 'by name' qualifier implicitly suggests targeted lookup, but no exclusions or alternative recommendations are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
diagnose_cde_connectivityB
Probe CDE CLI connectivity (configure endpoint + list jobs).
Args: cde_user: CDE workload username (overrides CDE_USER env). cde_password: CDE workload password (overrides CDE_PASSWORD env). cde_endpoint_url: CDE service URL (overrides CDE_ENDPOINT_URL env).
| Name | Required | Description | Default |
|---|---|---|---|
| cde_user | No | ||
| cde_password | No | ||
| cde_endpoint_url | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It mentions that it 'configure endpoint + list jobs', which gives some insight into actions, but it does not clarify potential side effects (e.g., modifying config files), authentication requirements, or failure behavior. This partial transparency warrants a middle score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single focused sentence followed by a clear, structured argument list. Every element serves a purpose, with no filler or repetition, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so the description need not explain return values, but it lacks context about when to use this for diagnosing connectivity versus simply listing jobs. It also does not mention any prerequisites or expected inputs, leaving the agent with a minimal but not fully complete picture.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite having 0% schema description coverage, the description enriches all three parameters by stating they override environment variables (e.g., 'overrides CDE_USER env'). This adds clear meaning beyond the raw schema, though it does not specify defaults or required-ness, which are already in the schema as nullable with defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with the verb 'probe' and resource 'CDE CLI connectivity', and it distinguishes itself from siblings like list_cde_jobs by noting it also 'configure endpoint + list jobs'. This gives a specific, actionable definition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as list_cde_jobs or describe_cde_job. There is no mention of scenarios, exclusions, or alternative tools, leaving the agent to infer usage from the purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_dag_from_contractA
Generate Airflow DAG Python from an ODCS data contract (no WAP).
Validates live table schema (required columns, PK uniqueness) and data quality rules using Airflow SQLCheckOperator against the CDW connection (default: CDW). Default schedule is once daily (0 3 * * *) unless overridden.
Args: contract_json: ODCS-compatible contract JSON (schema_objects + quality rules). schedule: Cron schedule (default 0 3 * * * — daily at 03:00 UTC). cdw_connection_id: Airflow connection id for Hive/Impala in CDW (default CDW). audit_table: Optional qualified audit table name for check results.
| Name | Required | Description | Default |
|---|---|---|---|
| schedule | No | ||
| audit_table | No | ||
| contract_json | Yes | ||
| cdw_connection_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions validation logic, CDW connection, and default schedule, which is useful. However, it is ambiguous whether validation happens at generation time or inside the generated DAG, and it does not disclose output format or side effects beyond 'Generate Airflow DAG Python'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear opening, behavioral details, and an Args list. It is front-loaded and every sentence adds information, though the Args section is somewhat verbose and could be tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity and lack of annotations, the description covers key aspects: purpose, parameters, defaults, and validation behavior. It is nearly complete but leaves gaps around the 'no WAP' qualifier, the distinction from deploy_contract_dq_job, and the exact timing of validation. The presence of an output schema mitigates the need to describe return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. The Args section explains all four parameters with meanings and defaults (e.g., contract_json, schedule, cdw_connection_id, audit_table). This adds substantial value beyond the bare input schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Generate Airflow DAG Python from an ODCS data contract (no WAP)', which clearly states the tool's verb, resource, and scope. This distinguishes it from sibling tools like deploy_contract_dq_job and preview_contract_checks, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context about defaults and validation behavior but does not explicitly state when to use this tool versus alternatives like deploy_contract_dq_job or preview_contract_checks. Usage is implied by the name and purpose, but no explicit exclusions or alternative comparisons are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_airflow_dag_run_statusA
Monitor latest CDE Airflow job run status (via CDE run API).
Returns the most recent run for the given CDE Airflow job, including status, start/end times, and run id for further inspection.
| Name | Required | Description | Default |
|---|---|---|---|
| cde_user | No | ||
| job_name | Yes | ||
| cde_password | No | ||
| cde_endpoint_url | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It clearly states this is a read-only monitoring operation that returns status, start/end times, and run ID. It does not overpromise or hide side effects; the phrase 'via CDE run API' adds context. Minor gap: it doesn't explicitly state it makes no changes, but the 'monitor' wording implies a safe read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the key action and resource. The second sentence adds valuable return details. No wasted words, though 'CDE Airflow job' appears twice redundantly; still concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's core purpose and return data, and an output schema exists, so return structure is provided elsewhere. However, it is under-specified given 4 parameters with 0% schema coverage, especially the auth-related params, and lacks usage guidance relative to sibling tools. It is minimally viable but leaves notable gaps for an agent to invoke correctly with correct credentials.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any parameters. While job_name is obvious, the optional credentials (cde_user, cde_password, cde_endpoint_url) are left entirely unexplained, forcing the agent to guess their purpose. The description fails to compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Monitor') and resource ('latest CDE Airflow job run status'), and clarifies it returns the most recent run with status, times, and run ID. This clearly differentiates it from sibling tools like get_cde_job_run_status which likely handles specific runs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: 'Monitor latest' suggests using this tool when you want the most recent run status. However, no explicit alternatives or when-not-to-use guidance is provided, and sibling tools like list_cde_job_runs and get_cde_job_run_status are not mentioned as alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cde_configA
Return current CDE/CDW configuration (passwords redacted).
Reads CDE_USER, CDE_PASSWORD, CDE_ENDPOINT_URL, CDE_BIN, CDW_CONNECTION_ID from environment or .env file.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden, and it does well by noting 'passwords redacted' and specifying the exact environment variables and source file. It does not mention whether there are side effects, but the read-only nature is strongly implied by 'Return current configuration'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no wasted words. The main purpose is front-loaded, and the redaction note is included parenthetically for immediate awareness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter configuration getter, the description is complete: it states what it returns, what it reads, and the important security behavior (password redaction). No further context is needed to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so per the rubric the baseline is 4. The description adds value by listing the exact configuration keys that will be read, even though these are not function parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Return current CDE/CDW configuration', clearly indicating this is a read-only retrieval tool. It distinguishes itself from sibling job-management tools by focusing on configuration rather than job operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies this is the tool to call when the agent needs the current CDE/CDW configuration, including source (environment or .env). It does not explicitly state when not to use it or name alternatives, but the context is clear enough given the sibling tools are about job lifecycle and diagnostics.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cde_job_run_statusB
Get status of a specific CDE job run.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | ||
| cde_user | No | ||
| cde_password | No | ||
| cde_endpoint_url | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only says 'Get status' – implying a read operation – but does not mention authentication requirements (despite cde_user/cde_password params), error handling, or any edge-case behavior. The credential parameters hint at auth, but the description gives no context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single 6-word sentence: 'Get status of a specific CDE job run.' It is front-loaded and has no filler words. However, it is so sparse that it borders on under-specification, but this is still concise rather than verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even though an output schema exists (reducing the need to explain return values), the description is incomplete for a 4-parameter tool with optional auth credentials and multiple sibling tools. It lacks usage guidance, parameter explanations, and any context about when or how to supply cde_user/cde_password/cde_endpoint_url. The tool's complexity is not matched by the description's minimal detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the tool description provides no parameter information whatsoever. run_id, cde_user, cde_password, and cde_endpoint_url are completely undocumented in both schema and description, leaving the agent without any clue about their meanings or expected formats. The description fails to compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states 'Get status of a specific CDE job run' – a clear verb ('Get') and resource ('status of a specific CDE job run'), which distinguishes it from list_cde_job_runs (which lists runs) and get_airflow_dag_run_status (Airflow-specific). The specificity of 'specific' run makes the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a run_id is known and status is needed, but does not explicitly state when to use this tool versus list_cde_job_runs for seeing all runs or get_airflow_dag_run_status for a different system. No exclusions or alternative tool mentions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_cde_job_runsA
List CDE runs for a job (monitor execution status).
| Name | Required | Description | Default |
|---|---|---|---|
| cde_user | No | ||
| job_name | Yes | ||
| cde_password | No | ||
| cde_endpoint_url | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the burden of disclosing behavioral traits, but it provides no details beyond restating the function name. It does not mention whether the operation is read-only, if authentication is required, or how runs are scoped (e.g., all runs vs. recent). The parenthetical clarifies purpose, not behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, directly starting with the verb 'List' and including all essential information. There is no redundant text or filler, making it an exemplar of conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the output schema existing, the tool has 4 parameters with no schema descriptions and no annotations. The description does not explain the required job_name parameter or optional credential parameters, leaving the agent uncertain about prerequisites and invocation. This is a significant gap for a tool with multiple configuration parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate by explaining parameter meaning. It only hints at 'job_name' by saying 'for a job', but provides no explanation for the optional cde_user, cde_password, or cde_endpoint_url parameters. This is minimal value beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'List CDE runs for a job' with the purpose of monitoring execution status. This verb+resource pairing distinguishes it from sibling tools like list_cde_jobs (which lists jobs) and get_cde_job_run_status (which gets a single run's status). The parenthetical adds clarity to the intent without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase '(monitor execution status)' gives clear context for when to use this tool—when you want to check the status of a job's runs. However, it does not explicitly state when not to use alternatives or name any exclusions, so it falls short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_cde_jobsC
List all CDE jobs.
| Name | Required | Description | Default |
|---|---|---|---|
| cde_user | No | ||
| cde_password | No | ||
| cde_endpoint_url | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits. It only states the action 'List' without confirming read-only status, authentication requirements, pagination behavior, or error handling. This is insufficient for an operation that takes credential parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with a front-loaded verb and no wasted words. It is appropriately sized for the information it conveys, though that information is minimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the tool has three optional authentication-related parameters and a large sibling tool set. The description does not explain why credentials might be needed, how it differs from related list tools, or any connection/authentication prerequisites. The description is minimally viable but lacks essential context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description does not explain the purpose or usage of the three parameters (cde_user, cde_password, cde_endpoint_url). It adds no meaning beyond the parameter names, completely failing to compensate for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'List' and resource 'CDE jobs', which clearly distinguishes it from sibling tools like list_cde_job_runs (lists runs) and describe_cde_job (describes a single job). It is direct and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as list_cde_resources or describe_cde_job. There is no mention of prerequisites, typical use cases, or exclusions, leaving the agent to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_cde_resourcesC
List CDE file resources.
| Name | Required | Description | Default |
|---|---|---|---|
| cde_user | No | ||
| cde_password | No | ||
| cde_endpoint_url | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the burden of disclosing behavior. It only says 'List' which implies read-only, but it does not mention authentication needs (despite credential parameters), potential errors, rate limits, or the nature of the returned data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler. It is concise, but the brevity comes at the cost of necessary detail. It still earns its place as a minimal functional statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool that likely requires CDE credentials and connectivity, the description is incomplete. It does not explain what 'file resources' are, when this should be called, or how the optional parameters affect the request. The presence of an output schema reduces the need to describe return values, but the lack of contextual setup is a significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention or explain any parameters. While parameter names (cde_user, cde_password, cde_endpoint_url) are somewhat self-explanatory, the description adds no contextual meaning about how or why these are used.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('List') and a specific resource ('CDE file resources'), which is more specific than a tautology. However, it does not define what 'file resources' encompasses, so it is not fully self-explanatory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus siblings like list_cde_jobs or diagnose_cde_connectivity. There is no mention of prerequisites, use cases, or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preview_contract_checksA
Preview schema and quality SQL checks that would be generated from a contract.
| Name | Required | Description | Default |
|---|---|---|---|
| contract_json | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full burden. The word 'Preview' suggests a read-only, non-destructive operation, and 'would be generated' indicates hypothetical output. However, the description doesn't explicitly confirm that no side effects occur, whether validation happens, or what happens on invalid input. This is a minor gap for a preview tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that conveys the core purpose without unnecessary detail. Every word contributes to understanding the tool's function, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, which likely covers return values, and one simple parameter. However, the description lacks contextual guidance on how this tool fits into the broader workflow (e.g., using it before generate_dag_from_contract). It's adequate for a simple preview tool but not fully complete given the sibling context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds little beyond the parameter name. 'contract_json' is a string, and the description says 'from a contract', but it doesn't specify the expected JSON structure, format, or any details about how the contract should be provided. The description fails to compensate for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Preview' with a clear resource ('schema and quality SQL checks') and source ('from a contract'). It effectively distinguishes this tool from siblings like generate_dag_from_contract or deploy_contract_dq_job, which perform different actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is implied but not explicitly stated. The description implies this tool is for inspecting checks before generation or deployment, but it doesn't explicitly say when to use it over alternatives or mention any exclusions or prerequisites. There's no clear guidance on workflow placement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trigger_cde_jobC
Trigger a manual CDE job run.
| Name | Required | Description | Default |
|---|---|---|---|
| cde_user | No | ||
| job_name | Yes | ||
| cde_password | No | ||
| cde_endpoint_url | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it only states the action ('Trigger'). It does not mention side effects, authorization requirements, whether the run is asynchronous, or what happens if the job is already running. This is a mutating operation that needs more transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, grammatically correct sentence with no filler, and the verb is front-loaded. However, it is under-specified for a tool with four parameters and mutation side effects, so conciseness borders on being too terse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating trigger tool with no annotations and four parameters, the description is incomplete. It fails to explain return values, error conditions, or parameter relationships, and the presence of an output schema does not compensate for missing usage and behavioral context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description names no parameters. The required job_name and optional cde_user, cde_password, and cde_endpoint_url are not explained beyond their titles, leaving the agent without semantic guidance for populating them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Trigger') and identifies the resource ('a manual CDE job run'), making the core action clear. It is distinguishable from sibling tools like list_cde_jobs or describe_cde_job, though it could be more explicit about what 'manual' implies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as get_cde_job_run_status or diagnose_cde_connectivity. There is no mention of prerequisites, scheduling context, or exclusions, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
13 tool updates
v0.1.0- First observed
delete_cde_job - First observed
deploy_contract_dq_job - First observed
describe_cde_job - First observed
diagnose_cde_connectivity - First observed
generate_dag_from_contract - First observed
get_airflow_dag_run_status - First observed
get_cde_config - First observed
get_cde_job_run_status - First observed
list_cde_job_runs - First observed
list_cde_jobs - First observed
list_cde_resources - First observed
preview_contract_checks - First observed
trigger_cde_job
TDQS
Scored across 13 tools
Most tools are distinct, but there is notable overlap among run-monitoring tools (get_cde_job_run_status, get_airflow_dag_run_status, list_cde_job_runs) and between generate_dag_from_contract and deploy_contract_dq_job, which both generate DAGs. This creates moderate ambiguity for an agent.
All tools follow a consistent verb_noun pattern in lowercase snake_case (e.g., list_cde_jobs, trigger_cde_job, delete_cde_job). The verbs are distinct and the pattern is highly predictable.
13 tools is well-scoped for a CDE/CDW data-quality server, covering configuration, connectivity checks, DAG generation/deployment, job lifecycle, and monitoring without unnecessary bloat.
The tool surface covers the full workflow: configure and diagnose connectivity, generate/preview/deploy data contract DAGs, manage jobs, trigger runs, monitor status, and delete jobs. No critical operations are missing for the stated domain.
Maintenance
Related MCP Connectors
Auto-discover validation rules from data — scan, profile, health-score. No rules to write.
Deterministic validation for AI-generated artifacts: JSON Schema, OpenAPI response, SQL syntax.
- golemryOAuthcom.golemry
Create and manage scheduled, guarded AI agent jobs with built-in quality control and 900+ connectors
Data observability tools for engineering teams: alerts, freshness, schema drift, lineage, quality.
Related MCP Servers
- AlicenseAqualityCmaintenanceDetects schema mismatches between data producers and consumers through static analysis, supporting extraction, comparison, code generation, and automated validation with watch mode for MCP tools, APIs, and service contracts.118 npmMIT
- AlicenseBqualityDmaintenanceAgentic data quality MCP server — runs structured validation rules against warehouses (DuckDB, BigQuery, Athena, Databricks, Postgres), diagnoses failures with LLM root cause analysis, and proposes SQL remediations. Full audit trail of every AI decision.64Apache 2.0
- FlicenseNot gradedqualityDmaintenanceAutomatically discovers database schema, performs data quality checks on tables and columns, and generates natural-language root cause analysis reports using Ollama LLM.-
- AlicenseNot gradedqualityCmaintenanceAI-driven MCP server that audits, profiles, detects schema drift, and auto-generates documentation for dbt projects, enabling natural language interaction with your dbt project's health.134MIT