Datahub MCP Server
Query DataHub metadata, visualize lineage, and generate SQL for your AI data stack.
Data last scanned today · Reviewed today
Overview
The DataHub MCP Server provides a bridge between AI agents and the DataHub open-source context platform. It allows users to query an organization's data ecosystem, including databases, data lakes, warehouses, and BI tools, using natural language to discover technical and organizational context. Capabilities include structured search with boolean logic and wildcards, investigation of table and column-level lineage to map data flows, and SQL generation informed by existing query patterns. The server supports context-aware exploration by surfacing business glossaries, data domains, and ownership information.
Our verdict
This server carries a high-risk rating with a security score of 43/100. The primary concerns involve a lack of official vendor maintenance and unreviewed authentication methods. While it provides useful data lineage and search functionality, prospective users should exercise caution as read-only mode compliance and security controls have not been formally verified. It is best suited for experimental environments rather than sensitive production systems.
- Supports complex boolean and wildcard search syntax
- Provides visibility into table and column-level data lineage
- Zero direct dependencies reduce supply-chain attack surface
- Includes active development with 15 contributors
- Security score of 43/100 indicates high risk level
- Authentication methods remain unreviewed for security
- Not maintained by the official DataHub vendor
- Read-only mode support is not yet formally verified
Tools
| Tool | Description | Risk |
|---|---|---|
| search | Search DataHub using structured keyword search (/q syntax) with boolean logic, filters, pagination, and optional sorting by usage metrics. | low |
| get_lineage | Retrieve upstream or downstream lineage for any entity (datasets, columns, dashboards, etc.) with filtering, query-within-lineage, pagination, and hop control. | low |
| 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. | low |
| get_entities | Fetch detailed metadata for one or more entities by URN; supports batch retrieval for efficient inspection of search results. | low |
| 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. | low |
| get_lineage_paths_between | Retrieve the exact lineage paths between two assets or columns, including intermediate transformations and SQL query information. | low |
| add_tags | Add tags from entities or schema fields (columns). Supports bulk operations on multiple entities. | medium |
| remove_tags | Remove tags from entities or schema fields (columns). Supports bulk operations on multiple entities. | medium |
| add_terms | Add glossary terms from entities or schema fields. | medium |
| remove_terms | Remove glossary terms from entities or schema fields. | medium |
Compatibility
| Client | Local | Docker | Remote | Read-only |
|---|---|---|---|---|
| Claude Desktop | ||||
| Cursor | ||||
| VS Code | ||||
| Windsurf | ||||
| ChatGPT |
Frequently asked questions
›What configuration is required to run the DataHub MCP server locally?
The server requires the DATAHUB_GMS_URL and DATAHUB_GMS_TOKEN environment variables. These values can be set directly in your environment or read from a ~/.datahubenv file created by running datahub init.
›How does authentication work for the Docker HTTP deployment?
The Docker HTTP deployment does not use a server-wide token. Instead, each MCP client must provide its own DataHub bearer token via the Authorization header on every request.
›Are there specific requirements for the DataHub backend to ensure correct user identification?
DataHub must have METADATA_SERVICE_AUTH_ENABLED set to true. If this is disabled, the system may return a synthetic actor for bearer values, preventing proper identification of the calling user.
›Is the SSE transport suitable for production or public networks?
No, SSE is intended for trusted, local-network use only. It does not provide the per-request bearer authentication required for secure shared network services.
›How can I check if the DataHub MCP server container is running correctly?
You can use the /health endpoint on port 8000, which reports process health for container, load-balancer, or Kubernetes probes. This endpoint does not contact the DataHub service itself.
›Can I use query-string parameters for authentication in HTTP mode?
No, tokens are only accepted in the Authorization header. Any tokens passed via query strings are explicitly rejected.
Changelog
Badge
Maintain this server? Add the live badge to your README.