DataHub

by acryldata

19 stars
480 downloads
Not rated
GitHub Website

About

Integrates with DataHub's API to enable metadata management, discovery, and governance across diverse data assets in complex ecosystems.

Details

Author
acryldata
Repository
acryldata/mcp-server-datahub
GitHub stars
19
Downloads
480
License
Apache License 2.0
Categories
Design, Developer Tools, Search, API, Frontend, Infrastructure, Other, AI
Tags
#integration

- Structured search with wildcard, field, and boolean syntax
- SQL intelligence: fetch popular queries and generate accurate SQL
- Table and column-level lineage with upstream/downstream exploration
- Mutation tools: add/remove tags, terms, owners, domains, descriptions, structured properties
- Document tools: search, grep, save knowledge articles and FAQs
- User tools: retrieve authenticated user information

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name DataHub
    Command (node, npx, python, etc.) npx
    Arguments
    • Argument 1 -y
    • Argument 2 @highlight/mcp-server

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

See instructions in the DataHub MCP server docs.

The default transport remains stdio for local MCP clients:

uvx mcp-server-datahub

The stdio server loads DATAHUB_GMS_URL and DATAHUB_GMS_TOKEN from the
environment, falling back to ~/.datahubenv created by datahub init. This is
the local deployment mode and does not require HTTP authentication.

The local CLI also supports SSE for trusted, local-network use. SSE does not
provide the per-request bearer authentication used by the dedicated HTTP
entry point and should not be exposed as a shared network service.

The container runs the stateless HTTP transport on port 8000. It deliberately
does not use a server-wide DATAHUB_GMS_TOKEN; each MCP client supplies its own
DataHub token so DataHub permissions and audit identity are preserved per user.

> Breaking change for existing HTTP deployments: HTTP now has a separate
> mcp-server-datahub-http entry point. It refuses to start when
> DATAHUB_GMS_TOKEN is configured, and every client must send its own DataHub
> bearer token. Local stdio and SSE behavior are unchanged.

docker run --rm -p 8000:8000 \
  -e DATAHUB_GMS_URL=https://your-datahub.example \
  acryldata/mcp-server-datahub:latest

The same isolated HTTP entry point is available outside Docker:

DATAHUB_GMS_URL=https://your-datahub.example mcp-server-datahub-http

Connect to http://localhost:8000/mcp and include the token on every request:

```text

search

Search DataHub using structured keyword search (/q syntax) with boolean logic, filters, pagination, and optional sorting by usage metrics.

get_lineage

Retrieve upstream or downstream lineage for any entity (datasets, columns, dashboards, etc.) with filtering, query-within-lineage, pagination, and hop control.

get_dataset_queries

Fetch real SQL queries referencing a dataset or column—manual or system-generated—to understand usage patterns, joins, filters, and aggregation behavior.

get_entities

Fetch detailed metadata for one or more entities by URN; supports batch retrieval for efficient inspection of search results.

list_schema_fields

List schema fields for a dataset with keyword filtering and pagination, useful when search results truncate fields or when exploring large schemas.

get_lineage_paths_between

Retrieve the exact lineage paths between two assets or columns, including intermediate transformations and SQL query information.

add_tags

Add tags to entities or schema fields (columns). Supports bulk operations on multiple entities.

remove_tags

Remove tags from entities or schema fields (columns). Supports bulk operations on multiple entities.

add_terms

Add glossary terms to entities or schema fields. Useful for applying business definitions and data classification.

remove_terms

Remove glossary terms from entities or schema fields.

add_owners

Add ownership assignments to entities. Supports different ownership types (technical owner, data owner, etc.).

remove_owners

Remove ownership assignments from entities.

set_domains

Assign domain membership for entities.

remove_domains

Remove domain membership from entities.

update_description

Update, append to, or remove descriptions for entities or schema fields. Supports markdown formatting.

add_structured_properties

Manage structured properties (typed metadata fields) on entities. Supports string, number, URN, date, and rich text value types.

remove_structured_properties

Remove structured properties from entities.

get_me

Retrieve information about the currently authenticated user, including profile details and group memberships.

search_documents

Search for documents using keyword search with filters for platforms, domains, tags, glossary terms, and owners.

grep_documents

Search within document content using regex patterns. Useful for finding specific information across multiple documents.

save_document

Save standalone documents (insights, decisions, FAQs, notes) to DataHub's knowledge base. Documents are organized under a configurable parent folder.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "datahub": {
            "env": {},
            "args": [
                "-y",
                "@highlight/mcp-server"
            ],
            "command": "npx"
        }
    }
}

Linux

{
    "env": [],
    "args": [
        "-y",
        "@highlight/mcp-server"
    ],
    "command": "npx"
}

Macos

{
    "env": [],
    "args": [
        "-y",
        "@highlight/mcp-server"
    ],
    "command": "npx"
}

Windows

{
    "env": [],
    "args": [
        "/c",
        "npx",
        "-y",
        "@highlight/mcp-server"
    ],
    "command": "cmd"
}

DataHub MCP Server

A Model Context Protocol server implementation for DataHub.

What is DataHub?

DataHub is an open-source context platform that gives organizations a single pane of glass across their entire data supply chain. DataHub unifies data discovery, governance, and observability under one roof for every table, column, dashboard pipeline, document, and ML Model.

With powerful features for data profiling, data quality monitoring, data lineage, data ownership, and data classification, DataHub brings together both technical and organizational context, allowing teams to find, create, use, and maintain trustworthy data.

Use Cases

The DataHub MCP Server enables AI agents to:

- Find trustworthy data: Search across the entire data landscape using natural language to find the tables, columns, dashboards, & metrics that can answer your most mission-critical questions. Leverage trust signals like data popularity, quality, lineage, and query history to get it right, every time.

- Explore data lineage & plan for data changes: Understand the impact of important data changes _before_ they impact your downstream users through rich data lineage at the asset & column level.

- Understand your business: Navigate important organizational context like business glossaries, data domains, data products products, _and_ data assets. Understand how key metrics, business processes, and data relate to one another.

- Explain & generate SQL queries: Generate accurate SQL queries to answer your most important questions with the help of critical context like data documentation, data lineage, and popular queries across the organization.

Why DataHub MCP Server?

With DataHub MCP Server, you can instantly give AI agents visibility into of your entire data ecosystem. Find and understand data stored in your databases, data lake, data warehouse, and BI visualization tools. Explore data lineage, understand usage & use cases, identify the data experts, and generate SQL - all through natural language.

Structured Search with Context Filtering

Go beyond keyword matching with powerful query & filtering syntax:

- Wildcard matching: /q revenue_* finds revenue_kpis, revenue_daily, revenue_forecast
- Field searches: /q tag:PII finds all PII-tagged data
- Boolean logic: /q (sales OR revenue) AND quarterly for complex queries

SQL Intelligence & Query Generation

Access popular SQL queries, and generate new ones with accuracy:

- See how analysts query tables (perfect for SQL generation)
- Understand join patterns and common filters
- Learn from production query patterns

Table & Column-Level Lineage

Trace data flow at both the table and column level:

- Track how user_id becomes customer_key downstream
- Understand transformation logic
- Upstream and downstream exploration (1-3+ hops)
- Handle enterprise-scale lineage graphs

Understands Your Data Ecosystem

Understand how your data is organized before searching:

- Discover relevant data domains, owners, tags and glossary terms
- Browse across data platforms and environments
- Navigate the complexities of your data landscape without guessing

Usage

See instructions in the DataHub MCP server docs.

Local stdio deployment

The default transport remains stdio for local MCP clients:

uvx mcp-server-datahub

The stdio server loads DATAHUB_GMS_URL and DATAHUB_GMS_TOKEN from the
environment, falling back to ~/.datahubenv created by datahub init. This is
the local deployment mode and does not require HTTP authentication.

The local CLI also supports SSE for trusted, local-network use. SSE does not
provide the per-request bearer authentication used by the dedicated HTTP
entry point and should not be exposed as a shared network service.

Docker HTTP deployment

The container runs the stateless HTTP transport on port 8000. It deliberately
does not use a server-wide DATAHUB_GMS_TOKEN; each MCP client supplies its own
DataHub token so DataHub permissions and audit identity are preserved per user.

> Breaking change for existing HTTP deployments: HTTP now has a separate
> mcp-server-datahub-http entry point. It refuses to start when
> DATAHUB_GMS_TOKEN is configured, and every client must send its own DataHub
> bearer token. Local stdio and SSE behavior are unchanged.

docker run --rm -p 8000:8000 \
  -e DATAHUB_GMS_URL=https://your-datahub.example \
  acryldata/mcp-server-datahub:latest

The same isolated HTTP entry point is available outside Docker:

DATAHUB_GMS_URL=https://your-datahub.example mcp-server-datahub-http

Connect to http://localhost:8000/mcp and include the token on every request:

```text

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.