Labsco
MCP SERVER

Apache Gravitino

by datastrato

A curated slice of the Apache Gravitino metadata API — catalogs, schemas, tables, columns, tags, models, users and roles — trimmed to fit a context window.

Data Platform: Pipelines, Warehousing, BI & Governance
Summary
Selective by design, and configurable about which parts you expose.

Wrapping an entire metadata API would produce responses no model can use; the choice here is a smaller set with responses trimmed to what stays semantically intact. GRAVITINO_ACTIVE_TOOLS goes one step further — you can hand a session only the read tools, and leave role grants out of the surface entirely.

What it is

A FastMCP server over Gravitino. It deliberately does not expose every Gravitino API; each tool returns concise metadata chosen to stay inside an LLM's token budget while remaining meaningful.

What you get
  • get_list_of_catalogs, get_list_of_schemas and get_list_of_tables walk the metadata hierarchy, with table listings paginated
  • get_table_by_fqn and get_table_columns_by_fqn return one table's detail and its columns by fully qualified name
  • get_list_of_tags lists tags, associate_tag_to_entity attaches one to a table or column, and list_objects_by_tag finds everything carrying a tag
  • get_list_of_roles and get_list_of_users read the access model; grant_role_to_user and revoke_role_from_user change it
  • get_list_of_models and get_list_of_model_versions_by_fqn cover registered models and their versions
  • GRAVITINO_ACTIVE_TOOLS narrows the exposed set by tool name — the default is all of them
Requirements

Python 3.10 or higher with uv, run from a checkout as `python -m mcp_server_gravitino.server` under `uv run`. GRAVITINO_URI points at your Gravitino server and GRAVITINO_METALAKE names the metalake, defaulting to metalake_demo. Authentication is either a JWT in GRAVITINO_JWT_TOKEN or basic auth through GRAVITINO_USERNAME and GRAVITINO_PASSWORD.

Setup effort

Build from source — clone the repository and build it, then point your client at the binary