feat: add DataHub MCP server - #1395
Open
Timur99 wants to merge 1 commit into
Open
Conversation
Adds a catalog entry for the official DataHub MCP server, which exposes metadata search, table- and column-level lineage, schema inspection, SQL usage history, and metadata curation over a DataHub deployment. Uses the remote runtime against DataHub's managed MCP endpoint, so the entry works for both DataHub Cloud tenants and self-hosted deployments without requiring a container image. Authentication is a DataHub personal access token sent as a bearer token. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds a catalog entry for the official DataHub MCP server (
datahub.yaml).DataHub is a metadata platform for the modern data stack. The server lets an agent search the data catalog, trace table- and column-level lineage, inspect dataset schemas, look at the SQL that actually runs against a table, and curate metadata such as tags, glossary terms, owners, domains, and structured properties.
Why
remoterather thancontainerizedThe upstream project is primarily distributed as a local stdio server (
uvx mcp-server-datahub), which this catalog does not support. Rather than requiring a new image inobot-platform/mcp-images, this entry targets DataHub's managed MCP endpoint, which is served by every DataHub deployment at/integrations/ai/mcp:https://<tenant>.acryl.io/integrations/ai/mcpBecause the host differs per user, the entry uses the
URLTemplate+ bearer-header pattern already established bydatabricks_genie.yaml,databricks_uc_functions.yaml,databricks_vector_search.yaml, andpostman.yaml:This keeps the entry free of any image-build dependency and works for Cloud and self-hosted users alike.
Configuration
DATAHUB_URLAuthorizationBearer <token>Docs reference: DataHub MCP Server. The managed endpoint requires DataHub Cloud v0.3.12+; metadata curation tools require v0.3.17+ and are enabled server-side, so tools that are disabled on a given deployment simply won't appear.
Tool preview
The 21 previewed tools were taken from the tool registrations in
src/mcp_server_datahub/mcp_server.pyand the corresponding function signatures insrc/mcp_server_datahub/tools/*.pyupstream, so names, parameters, and defaults match the current server surface rather than being paraphrased from the README.Read tools:
search,get_lineage,get_dataset_queries,get_entities,list_schema_fields,get_lineage_paths_between,search_documents,grep_documents,get_me.Curation tools:
add_tags,remove_tags,add_terms,remove_terms,add_owners,remove_owners,set_domains,remove_domains,update_description,add_structured_properties,remove_structured_properties,save_document.Notes
entryKey: obot-datahubis unique across the catalog.Data & Analytics,Databases,Developer Tools.datahub.yamlto the choice list in.github/workflows/tool-preview-refresh.ymlif you'd like — note that list is currently missing several existing entries, so I left it alone to keep the diff minimal.