DE//AGENT
Explore
Tutorial Lesson 5 of 10 · The Observability Series community intermediate

Lineage tooling in practice: DataHub MCP and the lineage-graph plugin

Put lineage to work with two tools — a DataHub MCP server that lets an agent search entities and read lineage and schema, and a lineage-graph plugin that turns column-level impact analysis into agent commands. Wire both, learn each tool surface, and scope the token before sharing it.

At a glance

When You want an agent to answer catalog questions against a real DataHub instance; A schema change is in review and the reviewer wants the downstream list in the thread
Where Data Lineage
Why Lineage in a UI helps one person; lineage behind tools and commands helps every agent and every review.

Learning objectives

  • Wire mcp-server-datahub and call its four tools
  • Use /impact, /lineage-up and /lineage-down for change analysis
  • Choose the right tool for a catalog question versus an impact question

What you need

  • [object Object]
  • [object Object]
  • DATAHUB_GMS_URL and DATAHUB_GMS_TOKEN for the GMS endpoint

Steps

  1. Meet the catalog door — an MCP server that exposes a DataHub catalog so an agent can search entities, read lineage and schema, and inspect metadata. (from mcp-datahub )
  2. Learn the tool surface — search, get_entities, get_lineage and get_dataset_queries. (from mcp-datahub )
  3. Install it — uvx mcp-server-datahub, with the GMS URL and token wired through environment variables. (from mcp-datahub )
  4. Meet the plugin — column-level impact analysis over a lineage store, with a change-impact command that lists the downstream consumers a schema change would break. (from plugin-lineage-graph )
  5. Learn the command surface — /impact for blast radius, /lineage-up for what feeds an asset, /lineage-down for what depends on it. (from plugin-lineage-graph )
  6. Keep one vocabulary — the metadata model explains how to represent ownership and lineage consistently across tools. (from ref-datahub-docs )
  7. Scope before sharing — read-only against the catalog, but catalogue metadata can itself be sensitive; use a scoped token and keep the GMS endpoint internal. (from mcp-datahub )

Check yourself

  • get_lineage answers "what feeds this table"; /impact answers "what breaks if this column changes" — different questions.
  • Both tools read the same metadata model, so an answer from one is not contradicted by the other.

Worked example

Wire the catalog MCP server — from mcp-datahub

uvx mcp-server-datahub
# required env
#   DATAHUB_GMS_URL=<url of the DataHub GMS endpoint>
#   DATAHUB_GMS_TOKEN=<personal access token>

The plugin's three commands — from plugin-lineage-graph

/impact <asset|column>   # downstream consumers a change would break
/lineage-up <asset>      # what feeds this
/lineage-down <asset>    # what depends on this

Sourced from

Security scan

Last sweep 2026-10-24: 0 finding(s), 0 marked as examples.

Common gotchas

  • Catalog metadata is sensitive even when read-only — PII tags and internal table names ride along; use a scoped token.
  • get_dataset_queries and get_lineage answer different questions — searching for the wrong one wastes a turn.
  • The plugin's /impact walks the same store the MCP server reads — configure both against the same GMS.

Production considerations

  • Keep the GMS endpoint internal and hand each integration its own scoped token.
  • Treat the four MCP tools as the stable contract — scripts that call them survive catalog UI redesigns.

Diagram

lineage tooling
   |
   |- mcp-datahub ──▶ search | get_entities | get_lineage | get_dataset_queries
   |        (uvx mcp-server-datahub, DATAHUB_GMS_URL + TOKEN)
   |
   |- plugin-lineage-graph ──▶ /impact | /lineage-up | /lineage-down
   |
    --> both read the same metadata model (ownership + lineage)

Registry stats

Verification community · Oct 24, 2026
Completeness 81
Trust multiplier ×0.75
Composite 31.15 · adequate
Freshness 0 days since last source check
Difficulty intermediate
Version 0.1.0
License CC-BY-4.0
Security flags 2