DataHub MCP Server, first-class
Agent context is read over the official mcp-server-datahub (stdio): get_lineage with column filtering plus get_entities - and the remediation tag is written back through the MCP add_tags mutation tool.
Syntrace detects breaking schema changes in a live DataHub catalog, traces the column-level blast radius, ships the fix as a pull request - and writes the healed lineage back to the catalog.
One run of python3 -m src.main run - every read and every write goes to the live DataHub instance.
Diff the two latest versioned schemaMetadata aspects over OpenAPI v3: renames, drops, adds, type changes.
Ask the DataHub MCP Server for each drifted column’s downstream edges - column-level, with automatic GraphQL fallback.
Walk the graph hop by hop to the exact columns of each affected dbt model and Airflow DAG, with severity per asset.
Deterministic rules rewrite the dbt SQL and DAG code: renames propagate at any depth, dropped columns are stubbed.
One branch, one fix per file, a readable impact report in the body. Dry-run by default; live only with --create-pr.
Healed lineage, renamed schema fields, syntrace-remediated tags, and a remediation note - four surfaces, one consistent catalog.
Everything below is what the code in the repo actually does - verified against DataHub Core v1.7.0.
Agent context is read over the official mcp-server-datahub (stdio): get_lineage with column filtering plus get_entities - and the remediation tag is written back through the MCP add_tags mutation tool.
Fine-grained lineage maps each drifted column to the exact downstream columns it feeds - severity and hop count per asset, not just “something downstream broke.”
Rules R1–R5 rewrite dbt SQL and Airflow DAGs: renames propagated at any depth, dropped columns stubbed to preserve the downstream contract. An LLM pass is optional (--llm), never required.
One branch, one fix per file, and a human-readable impact report in the PR body. Dry-run by default - a real PR opens only with --create-pr and GitHub credentials.
Remediated fine-grained lineage, renamed schema fields, syntrace-remediated tags, and an idempotent remediation note in each asset’s documentation - the catalog stays consistent with the fix.
Detection, lineage analysis, codegen, the web dashboard, and the CLI run on the Python standard library alone - nothing to install. The DataHub SDK is used only by the seed script.
An excerpt from the audit log of a real run against the live DataHub quickstart.
Lineage and schema upserts go over OpenAPI v3; the tag attach goes over the MCP add_tags mutation tool.
You need Docker with ~8 GB of RAM and any Python 3.10+ for the seed venv - the Syntrace core itself runs on the standard library alone.
The DataHub quickstart brings up GMS on :8080 and the UI on :9002.
git clone https://github.com/mrnetwork0001/Syntrace.git && cd Syntrace
python3.12 -m venv .venv # any Python 3.10+
.venv/bin/pip install acryl-datahub mcp-server-datahub
.venv/bin/datahub docker quickstart
Emits the real raw.orders dataset, dbt models, and Airflow DAG into the live catalog, then applies the v2 schema drift.
.venv/bin/python scripts/seed_datahub.py --stage baseline
.venv/bin/python scripts/seed_datahub.py --stage drift
CLI or web dashboard - both drive the identical stdlib-only pipeline.
python3 -m src.main run # CLI pipeline
python3 -m src.main ui # dashboard at http://127.0.0.1:8642/app
There is no hosted version - the agent runs on your machine, against your live DataHub instance. Three commands get you the full demo:
git clone https://github.com/mrnetwork0001/Syntrace.git && cd Syntrace
python3.12 -m venv .venv && .venv/bin/pip install acryl-datahub mcp-server-datahub
.venv/bin/datahub docker quickstart
.venv/bin/python scripts/seed_datahub.py --stage baseline
.venv/bin/python scripts/seed_datahub.py --stage drift
python3 -m src.main run # CLI
python3 -m src.main ui # dashboard at http://127.0.0.1:8642/app