Gravitino MCP server
Gravitino MCP server provides the ability to manage Gravitino metadata for LLM.
Requirement:
- Python 3.10+
- uv is installed. You can install uv by following the official guide.
How to run:
- Clone the code from GitHub, and change to
mcp-serverdirectory - Create virtual environment,
uv venv - Install the required Python packages.
uv pip install -e . - Add Gravitino MCP server to corresponding LLM tools. Take
cursorfor example, edit~/.cursor/mcp.json, use following configuration for local Gravitino MCP server:
{
"mcpServers": {
"gravitino": {
"command": "uv",
"args": [
"--directory",
"$path/mcp-server",
"run",
"mcp_server",
"--metalake",
"test",
"--gravitino-uri",
"http://127.0.0.1:8090"
]
}
}
}
Or start an HTTP MCP server by uv run mcp_server --metalake test --gravitino-uri http://127.0.0.1:8090 --transport http --mcp-url http://localhost:8000/mcp, and use the configuration:
{
"mcpServers": {
"gravitino": {
"url": "http://localhost:8000/mcp"
}
}
}
Docker instructions
You could start Gravitino MCP server by Docker image, docker run -p 8000:8000 --network=host apache/gravitino-mcp-server:latest --metalake test --transport http --mcp-url http://0.0.0.0:8000/mcp --gravitino-uri http://127.0.0.1:8090. Please note that the MCP server in Docker container doesn't support stdio transport mode.
Supported tools
Gravitino MCP server supports the following tools, and you could export tool by tag.
| Tool name | Description | Tag | Since version |
|---|---|---|---|
get_list_of_catalogs | Retrieve a list of all catalogs in the system. | catalog | 1.0.0 |
get_list_of_schemas | Retrieve a list of schemas belonging to a specific catalog. | schema | 1.0.0 |
get_list_of_tables | Retrieve a list of tables within a specific catalog and schema. | table | 1.0.0 |
get_table_metadata_details | Retrieve comprehensive metadata details for a specific table. | table | 1.0.0 |
list_of_models | Retrieve a list of models within a specific catalog and schema. | model | 1.0.0 |
load_model | Retrieve comprehensive metadata details for a specific model. | model | 1.0.0 |
list_model_versions | Retrieve a list of versions for a specific model. | model | 1.0.0 |
load_model_version | Retrieve comprehensive metadata details for a specific model version. | model | 1.0.0 |
load_model_version_by_alias | Retrieve comprehensive metadata details for a specific model version by alias. | model | 1.0.0 |
metadata_type_to_fullname_formats | Retrieve the metadata type to fullname formats mapping. | metadata | 1.0.0 |
list_of_topics | Retrieve a list of topics within a specific catalog and schema. | topic | 1.0.0 |
load_topic | Retrieve comprehensive metadata details for a specific topic. | topic | 1.0.0 |
list_of_filesets | Retrieve a list of filesets within a specific catalog and schema. | fileset | 1.0.0 |
load_fileset | Retrieve comprehensive metadata details for a specific fileset. | fileset | 1.0.0 |
list_files_in_fileset | Retrieve a list of files within a specific fileset. | fileset | 1.0.0 |
list_of_jobs | Retrieve a list of jobs | job | 1.0.0 |
get_job_by_id | Retrieve a job by its ID. | job | 1.0.0 |
list_of_job_templates | Retrieve a list of job templates. | job | 1.0.0 |
get_job_template_by_name | Retrieve a job template by its name. | job | 1.0.0 |
run_job | Run a job with the specified parameters. | job | 1.0.0 |
cancel_job | Cancel a running job by its ID. | job | 1.0.0 |
get_tag_by_name | Retrieve a tag by its name. | tag | 1.0.0 |
list_of_tags | Retrieve a list of tags. | tag | 1.0.0 |
list_tags_for_metadata | Retrieve a list of tags associated with a specific metadata item. | tag | 1.0.0 |
list_metadata_by_tag | Retrieve a list of metadata items associated with a specific tag. | tag | 1.0.0 |
associate_tag_with_metadata | Associate tags with a specific metadata item. | tag | 1.0.0 |
disassociate_tag_from_metadata | Disassociate tags from a specific metadata item. | tag | 1.0.0 |
list_statistics_for_metadata | Retrieve a list of statistics associated with a specific metadata item. | statistics | 1.0.0 |
list_statistics_for_partition | Retrieve a list of statistics associated with a specific partition. | statistics | 1.0.0 |
get_list_of_policies | Retrieve a list of policies in the system. | policy | 1.0.0 |
get_policy_detail_information | Retrieve detailed information for a specific policy by policy name. | policy | 1.0.0 |
list_policies_for_metadata | List all policies associated with a specific metadata item. | policy | 1.0.0 |
list_metadata_by_policy | List all metadata items associated with a specific policy. | policy | 1.0.0 |
get_policy_for_metadata | Get a policy associated with a specific metadata item. | policy | 1.0.0 |
Configuration
You could config Gravitino MCP server by arguments, uv run mcp_server -h shows the detailed information.
| Argument | Description | Default value | Required | Since version |
|---|---|---|---|---|
--metalake | The Gravitino metalake name. | none | Yes | 1.0.0 |
--gravitino-uri | The URI of Gravitino server. | http://127.0.0.1:8090 | No | 1.0.0 |
--transport | Transport protocol type: stdio (local), http (Streamable HTTP). | stdio | No | 1.0.0 |
--mcp-url | The url of MCP server if using http transport. | http://127.0.0.1:8000/mcp | No | 1.0.0 |