MCP server for DataHub data catalogs. Discover datasets, explore lineage, and access metadata.
This MCP server provides access to DataHub data catalogs. It supports discovering datasets, exploring dataset lineage, and accessing dataset metadata. The server is identified as io.github.txn2/mcp-datahub and is associated with topics including ai, data-analysis, mcp-server, and model-context-protocol.
🛠️ Key Features
Discover datasets in DataHub data catalogs
Explore lineage
Access metadata
🚀 Use Cases
Finding relevant datasets within a DataHub catalog
Tracing relationships through dataset lineage
Retrieving metadata for downstream tooling
⚡ Developer Benefits
Integrates via Model Context Protocol (MCP)
Targets DataHub catalog data (datasets, lineage, metadata)
⚠️ Limitations
No additional capabilities, tool list, or specific API details are provided in the available source excerpt.
An MCP server and composable Go library that connects AI assistants to DataHub metadata catalogs. Search datasets, explore schemas, trace lineage, and access glossary terms and domains.
mcp-datahub is part of a broader suite of open-source MCP servers designed to work together as a composable data platform. Each component can run standalone or be combined to give AI assistants unified access to storage, query engines, and metadata catalogs.
All 12 tools ship with default annotations: read tools are marked ReadOnlyHint: true; datahub_create is non-destructive and non-idempotent; datahub_update is non-destructive and idempotent; datahub_delete is destructive and idempotent.
Extensions (Logging, Metrics, Error Hints)
Enable optional middleware via the extensions package:
go
import"github.com/txn2/mcp-datahub/pkg/extensions"// Load from environment variables (MCP_DATAHUB_EXT_*)
cfg := extensions.FromEnv()
opts := extensions.BuildToolkitOptions(cfg)
toolkit := tools.NewToolkit(datahubClient, toolsCfg, opts...)
// Or load from a YAML/JSON config file
serverCfg, _ := extensions.LoadConfig("config.yaml")
See the library documentation for middleware, selective tool registration, and enterprise patterns.
Combining with mcp-trino
Build a unified data platform MCP server by combining DataHub metadata with Trino query execution:
go
import (
datahubClient "github.com/txn2/mcp-datahub/pkg/client"
datahubTools "github.com/txn2/mcp-datahub/pkg/tools"
trinoClient "github.com/txn2/mcp-trino/pkg/client"
trinoTools "github.com/txn2/mcp-trino/pkg/tools"
)
// Add DataHub tools (search, lineage, schema, glossary)
dh, _ := datahubClient.NewFromEnv()
datahubTools.NewToolkit(dh, datahubTools.Config{}).RegisterAll(server)
// Add Trino tools (query execution, catalog browsing)
tr, _ := trinoClient.NewFromEnv()
trinoTools.NewToolkit(tr, trinoTools.Config{}).RegisterAll(server)
// AI assistants can now:// - Search DataHub for tables -> Get schema -> Query via Trino// - Explore lineage -> Understand data flow -> Run validation queries
The library supports bidirectional context injection. While mcp-trino can pull semantic context from DataHub, mcp-datahub can receive query execution context back from a query engine:
As an alternative to environment variables, configure via YAML or JSON:
yaml
datahub:url:https://datahub.example.comtoken:"${DATAHUB_TOKEN}"timeout:"30s"write_enabled:truetoolkit:default_limit:20descriptions:datahub_search:"Custom search description for your deployment"extensions:logging:trueerrors:true
Load with extensions.LoadConfig("config.yaml"). Environment variables override file values for sensitive fields. Token values support $VAR / ${VAR} expansion.
make build # Build binary
make test# Run tests with race detection
make lint # Run golangci-lint
make security # Run gosec and govulncheck
make coverage # Generate coverage report
make verify # Run tidy, lint, and test
make help# Show all targets
Related Projects
txn2/mcp-trino (docs) - Composable MCP toolkit for Trino query execution