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.
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.
- 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
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.
Build from source — clone the repository and build it, then point your client at the binary
