Apache Gravitino MCP Server for LLM Data Governance
Enable LLMs to explore metadata and perform tagging and classification with the Apache Gravitino MCP server for data governance.
npx -y @datastrato/mcp-server-gravitinoOverview
The Apache Gravitino MCP Server implements the Model Context Protocol (MCP) for Apache Gravitino metadata stores so large language models (LLMs) can discover, tag, and classify data objects as part of data governance workflows. It wraps a curated subset of Gravitino APIs behind a FastMCP-compatible endpoint, returning compact, LLM-friendly metadata payloads that are optimized for token budgets and semantic clarity.
This server is useful when you want LLM agents or applications to explore catalogs, schemas, tables, models, tags, and user-role information without exposing the full Gravitino API surface. It supports token- and basic-auth methods, configurable tool activation, and simple integration using the uv runtime toolchain.
Features
- FastMCP-compatible MCP server that exposes Gravitino metadata to LLMs
- Compact, semantic responses designed to fit LLM token constraints
- Toolset covering catalogs, schemas, tables, models, tags, and user/role management
- Support for token (JWT) and basic (username/password) authentication
- Selective tool activation via environment variable
- Easy runtime using uv with optional injection of runtime dependencies
Installation / Configuration
Prerequisites: Python 3.10+, and the uv CLI tool for dependency/venv management.
Clone and prepare the project:
Minimum environment variables (required):
Authentication options
- Token (JWT):
- Basic auth:
Selectively enable tools (default: all):
# Activate only get_list_of_roles
Start the MCP server via uv (example):
Arguments explained:
| Argument | Purpose | ||
|---|---|---|---|
| –directory /path/to/project | Project folder containing pyproject.toml | ||
| run | Execute a command inside the uv-managed environment | ||
–with | Inject runtime-only dependency (fastmcp, httpx, local package) | python -m mcp_server_gravitino.server | Start the MCP server module | Example Goose client snippet (JSON): Available ToolsThe server intentionally exposes a curated set of tools focused on metadata discovery, tagging, and user/role operations. Responses are constrained to be concise and LLM-friendly. Table / catalog tools:
Tagging tools:
User & role tools:
Model tools:
Each tool returns a minimal JSON payload intended to preserve the most relevant metadata for LLM reasoning (identifiers, brief descriptions, owner/role relations, column summaries, and tag associations). Use Cases
Best practices
Licensing and ContributingThis implementation is distributed under the Apache License 2.0. Contributions, bug reports, and pull requests are welcome via the GitHub repository. |