mcp-server-gravitino
MCP server for Apache Gravitino
Documentation
MCP Server for Apache Gravitino
MCP server providing Gravitino APIs - A FastMCP integration for Apache Gravitino services.
Features
- Seamless integration with FastMCP for Gravitino APIs
- Simplified interface for metadata interaction
- Supports metadata operations for catalogs, schemas, tables, models, users, tags, and user-role management
Installation
This project uses uv as the dependency and virtual environment management tool. Please ensure `uv` is installed on your system.
1. Clone the repository:
git clone git@github.com:datastrato/mcp-server-gravitino.git2. Navigate into the project directory:
cd mcp-server-gravitino3. Create a virtual environment:
uv venv4. Activate the virtual environment:
source .venv/bin/activate5. Install dependencies:
uv installConfiguration
Common Configuration
Regardless of the Authorization, the following environment variables need to be set:
GRAVITINO_METALAKE= # default: "metalake_demo"
GRAVITINO_URI=- `GRAVITINO_URI`: The base URL of your Gravitino server.
- `GRAVITINO_METALAKE`: The name of the metakube to use.
Authorization
`mcp-server-gravitino` supports both token-based and basic authentication methods. These mechanisms allow secure access to MCP tools and prompts and are suitable for integration with external systems.
Token Authentication
Set the following environment variables:
GRAVITINO_JWT_TOKEN=`GRAVITINO_JWT_TOKEN`: The JWT token for authentication.
Basic Authentication
Alternatively, you can use basic authentication:
GRAVITINO_USERNAME=
GRAVITINO_PASSWORD=- `GRAVITINO_USERNAME`: The username for Gravitino authentication.
- `GRAVITINO_PASSWORD`: The corresponding password.
Tool Activation
Tool activation is currently based on method names (e.g., `get_list_of_table`). You can specify which tools to activate by setting the optional environment variable `GRAVITINO_ACTIVE_TOOLS`. The default value is `*`, which activates all tools. If just want to activate `get_list_of_roles` tool, you can set the environment variable as follows:
GRAVITINO_ACTIVE_TOOLS=get_list_of_rolesUsage
To launch the Gravitino MCP Server, run the following command:
uv \
--directory /path/to/mcp-gravitino \
run \
--with fastmcp \
--with httpx \
--with mcp-server-gravitino \
python -m mcp_server_gravitino.serverThe meaning of each argument is as follows:
| Argument | Description |
|---|---|
| `uv` | Launches the UV CLI tool |
| `--directory /path/to/mcp-gravitino` | Specifies the working project directory with `pyproject.toml` |
| `run` | Indicates that a command will be executed in the managed environment |
| `--with fastmcp` | Adds `fastmcp` to the runtime environment without altering project deps |
| `--with httpx` | Adds `httpx` dependency for async HTTP functionality |
| `--with mcp-server-gravitino` | Adds the local module as a runtime dependency |
| `python -m mcp_server_gravitino.server` | Starts the MCP server using the package's entry module |
Goose Client Example
Example configuration to run the server using Goose:
{
"mcpServers": {
"Gravitino": {
"command": "uv",
"args": [
"--directory",
"/Users/user/workspace/mcp-server-gravitino",
"run",
"--with",
"fastmcp",
"--with",
"httpx",
"--with",
"mcp-server-gravitino",
"python",
"-m",
"mcp_server_gravitino.server"
],
"env": {
"GRAVITINO_URI": "http://localhost:8090",
"GRAVITINO_USERNAME": "admin",
"GRAVITINO_PASSWORD": "admin",
"GRAVITINO_METALAKE": "metalake_demo"
}
}
}
}Tool List
`mcp-server-gravitino` does not expose all Gravitino APIs, but provides a selected set of optimized tools:
Table Tools
- `get_list_of_catalogs`: Retrieve a list of catalogs
- `get_list_of_schemas`: Retrieve a list of schemas
- `get_list_of_tables`: Retrieve a paginated list of tables
- `get_table_by_fqn`: Fetch detailed information for a specific table
- `get_table_columns_by_fqn`: Retrieve column information for a table
Tag Tools
- `get_list_of_tags`: Retrieve all tags
- `associate_tag_to_entity`: Attach a tag to a table or column
- `list_objects_by_tag`: List objects associated with a specific tag
User Role Tools
- `get_list_of_roles`: Retrieve all roles
- `get_list_of_users`: Retrieve all users
- `grant_role_to_user`: Assign a role to a user
- `revoke_role_from_user`: Revoke a user's role
Model Tools
- `get_list_of_models`: Retrieve a list of models
- `get_list_of_model_versions_by_fqn`: Get versions of a model by fully qualified name
Each tool is designed to return concise and relevant metadata to stay within LLM token limits while maintaining semantic integrity.
License
This project is licensed under the Apache License Version 2.0.
Frequently asked questions
What is mcp-server-gravitino?
mcp-server-gravitino is MCP server for Apache Gravitino
How do I install mcp-server-gravitino?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is mcp-server-gravitino open source?
Yes — it is hosted on GitHub at https://github.com/datastrato/mcp-server-gravitino and has 19 stars.
Related MCP tools
Damn Vulnerable MCP Server Python-based implementation. Trusted by 1200+ developers. Trusted by 1200+ developers. Trusted by 1200+ developers.
A Model Context Protocol (MCP) server that enables secure interaction with MySQL databases Python-based implementation. Trusted by 900+ developers.
Query MCP enables end-to-end management of Supabase via chat interface: read & write query executions, management API support, automatic migration versioning...
Model Context Protocol with Neo4j Python-based implementation. Trusted by 700+ developers. Trusted by 700+ developers. Trusted by 700+ developers.
An MCP server that provides control over Android devices via adb Python-based implementation. Trusted by 500+ developers.
A Model Context Protocol (MCP) server for PostgreSQL databases with enhanced capabilities for AI agents. Python-based implementation.
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP