by datastrato
Provides Gravitino API integration through FastMCP, enabling metadata operations such as catalogs, schemas, tables, tags, users, and roles.
Enables seamless interaction with Apache Gravitino services by exposing a set of curated metadata tools via the FastMCP integration. The server focuses on common metadata entities—catalogs, schemas, tables, models, tags, users, and roles—while keeping responses concise for LLM consumption.
git clone git@github.com:datastrato/mcp-server-gravitino.git
cd mcp-server-gravitino
uv venv
source .venv/bin/activate
uv install
export GRAVITINO_URI="http://<host>:<port>"
export GRAVITINO_METALAKE="metalake_demo"
# Either token‑based or basic auth
export GRAVITINO_JWT_TOKEN="<your_jwt>"
# or
export GRAVITINO_USERNAME="admin"
export GRAVITINO_PASSWORD="admin"
export GRAVITINO_ACTIVE_TOOLS="get_list_of_roles"
uv --directory . run \
--with fastmcp \
--with httpx \
--with mcp-server-gravitino \
python -m mcp_server_gravitino.server
The same command can be embedded in a Goose client configuration as shown in the README.*
) or a specific subset via GRAVITINO_ACTIVE_TOOLS
.Q: Do I need to install FastMCP separately?
A: No. FastMCP is added at runtime with the --with fastmcp
flag in the uv command.
Q: Can I run the server without a virtual environment?
A: It is recommended to use uv venv
for isolation, but you can install dependencies globally with uv install
if desired.
Q: How do I limit which tools are exposed?
A: Set GRAVITINO_ACTIVE_TOOLS
to a comma‑separated list of tool names or *
for all.
Q: Which authentication methods are supported?
A: Either a JWT token (GRAVITINO_JWT_TOKEN
) or basic auth (GRAVITINO_USERNAME
/GRAVITINO_PASSWORD
).
Q: Is there a Docker image available? A: The repository does not provide an official Dockerfile, but you can containerize the uv‑based startup command.
MCP server providing Gravitino APIs - A FastMCP integration for Apache Gravitino services.
This project uses uv as the dependency and virtual environment management tool. Please ensure uv
is installed on your system.
Clone the repository:
git clone git@github.com:datastrato/mcp-server-gravitino.git
Navigate into the project directory:
cd mcp-server-gravitino
Create a virtual environment:
uv venv
Activate the virtual environment:
source .venv/bin/activate
Install dependencies:
uv install
Regardless of the Authorization, the following environment variables need to be set:
GRAVITINO_METALAKE=<YOUR_METALAKE> # default: "metalake_demo"
GRAVITINO_URI=<YOUR_GRAVITINO_URI>
GRAVITINO_URI
: The base URL of your Gravitino server.GRAVITINO_METALAKE
: The name of the metakube to use.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.
Set the following environment variables:
GRAVITINO_JWT_TOKEN=<YOUR_GRAVITINO_JWT_TOKEN>
GRAVITINO_JWT_TOKEN
: The JWT token for authentication.
Alternatively, you can use basic authentication:
GRAVITINO_USERNAME=<YOUR_GRAVITINO_USERNAME>
GRAVITINO_PASSWORD=<YOUR_GRAVITINO_PASSWORD>
GRAVITINO_USERNAME
: The username for Gravitino authentication.GRAVITINO_PASSWORD
: The corresponding password.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_roles
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.server
The 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 |
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"
}
}
}
}
mcp-server-gravitino
does not expose all Gravitino APIs, but provides a selected set of optimized tools:
get_list_of_catalogs
: Retrieve a list of catalogsget_list_of_schemas
: Retrieve a list of schemasget_list_of_tables
: Retrieve a paginated list of tablesget_table_by_fqn
: Fetch detailed information for a specific tableget_table_columns_by_fqn
: Retrieve column information for a tableget_list_of_tags
: Retrieve all tagsassociate_tag_to_entity
: Attach a tag to a table or columnlist_objects_by_tag
: List objects associated with a specific tagget_list_of_roles
: Retrieve all rolesget_list_of_users
: Retrieve all usersgrant_role_to_user
: Assign a role to a userrevoke_role_from_user
: Revoke a user's roleget_list_of_models
: Retrieve a list of modelsget_list_of_model_versions_by_fqn
: Get versions of a model by fully qualified nameEach tool is designed to return concise and relevant metadata to stay within LLM token limits while maintaining semantic integrity.
This project is licensed under the Apache License Version 2.0.
Please log in to share your review and rating for this MCP.
Explore related MCPs that share similar capabilities and solve comparable challenges
by zed-industries
A high‑performance, multiplayer code editor designed for speed and collaboration.
by modelcontextprotocol
Model Context Protocol Servers
by modelcontextprotocol
A Model Context Protocol server for Git repository interaction and automation.
by modelcontextprotocol
A Model Context Protocol server that provides time and timezone conversion capabilities.
by cline
An autonomous coding assistant that can create and edit files, execute terminal commands, and interact with a browser directly from your IDE, operating step‑by‑step with explicit user permission.
by continuedev
Enables faster shipping of code by integrating continuous AI agents across IDEs, terminals, and CI pipelines, offering chat, edit, autocomplete, and customizable agent workflows.
by upstash
Provides up-to-date, version‑specific library documentation and code examples directly inside LLM prompts, eliminating outdated information and hallucinated APIs.
by github
Connects AI tools directly to GitHub, enabling natural‑language interactions for repository browsing, issue and pull‑request management, CI/CD monitoring, code‑security analysis, and team collaboration.
by daytonaio
Provides a secure, elastic infrastructure that creates isolated sandboxes for running AI‑generated code with sub‑90 ms startup, unlimited persistence, and OCI/Docker compatibility.