Apache Gravitino
Accede a Apache Gravit
Documentación
Servidor MCP para Apache Gravitino
Servidor MCP que proporciona APIs de Gravitino: una integración FastMCP para servicios Apache Gravitino.
Características
- Integración perfecta con FastMCP para APIs de Gravitino
- Interfaz simplificada para la interacción con metadatos
- Soporta operaciones de metadatos para catálogos, esquemas, tablas, modelos, usuarios, etiquetas y gestión de roles de usuario
Instalación
Este proyecto utiliza uv como herramienta de gestión de dependencias y entornos virtuales. Asegúrese de que uv esté instalado en su sistema.
-
Clone el repositorio:
git clone git@github.com:datastrato/mcp-server-gravitino.git -
Navegue al directorio del proyecto:
cd mcp-server-gravitino -
Cree un entorno virtual:
uv venv -
Active el entorno virtual:
source .venv/bin/activate -
Instale las dependencias:
uv install
Configuración
Configuración común
Independientemente de la autorización, se deben establecer las siguientes variables de entorno:
GRAVITINO_METALAKE=<YOUR_METALAKE> # default: "metalake_demo"
GRAVITINO_URI=<YOUR_GRAVITINO_URI>
GRAVITINO_URI: La URL base de su servidor Gravitino.GRAVITINO_METALAKE: El nombre del metakube a utilizar.
Autorización
mcp-server-gravitino admite métodos de autenticación basados en token y básicos. Estos mecanismos permiten un acceso seguro a las herramientas y avisos de MCP y son adecuados para la integración con sistemas externos.
Autenticación por token
Establezca las siguientes variables de entorno:
GRAVITINO_JWT_TOKEN=<YOUR_GRAVITINO_JWT_TOKEN>
GRAVITINO_JWT_TOKEN: El token JWT para la autenticación.
Autenticación básica
Alternativamente, puede utilizar autenticación básica:
GRAVITINO_USERNAME=<YOUR_GRAVITINO_USERNAME>
GRAVITINO_PASSWORD=<YOUR_GRAVITINO_PASSWORD>
GRAVITINO_USERNAME: El nombre de usuario para la autenticación de Gravitino.GRAVITINO_PASSWORD: La contraseña correspondiente.
Activación de herramientas
La activación de herramientas se basa actualmente en nombres de métodos (por ejemplo, get_list_of_table). Puede especificar qué herramientas activar estableciendo la variable de entorno opcional GRAVITINO_ACTIVE_TOOLS. El valor predeterminado es *, que activa todas las herramientas. Si solo desea activar la herramienta get_list_of_roles, puede establecer la variable de entorno de la siguiente manera:
GRAVITINO_ACTIVE_TOOLS=get_list_of_roles
Uso
Para iniciar el Servidor MCP de Gravitino, ejecute el siguiente comando:
uv \
--directory /path/to/mcp-gravitino \
run \
--with fastmcp \
--with httpx \
--with mcp-server-gravitino \
python -m mcp_server_gravitino.server
El significado de cada argumento es el siguiente:
| Argumento | Descripción |
|---|---|
uv | Inicia la herramienta CLI de UV |
--directory /path/to/mcp-gravitino | Especifica el directorio del proyecto de trabajo con pyproject.toml |
run | Indica que se ejecutará un comando en el entorno gestionado |
--with fastmcp | Añade fastmcp al entorno de ejecución sin alterar las dependencias del proyecto |
--with httpx | Añade la dependencia httpx para funcionalidad HTTP asíncrona |
--with mcp-server-gravitino | Añade el módulo local como dependencia de ejecución |
python -m mcp_server_gravitino.server | Inicia el servidor MCP utilizando el módulo de entrada del paquete |
Ejemplo de cliente Goose
Ejemplo de configuración para ejecutar el servidor con 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"
}
}
}
}
Lista de herramientas
mcp-server-gravitino no expone todas las APIs de Gravitino, sino que proporciona un conjunto seleccionado de herramientas optimizadas:
Herramientas de tablas
get_list_of_catalogs: Recuperar una lista de catálogosget_list_of_schemas: Recuperar una lista de esquemasget_list_of_tables: Recuperar una lista paginada de tablasget_table_by_fqn: Obtener información detallada de una tabla específicaget_table_columns_by_fqn: Recuperar información de columnas de una tabla
Herramientas de etiquetas
get_list_of_tags: Recuperar todas las etiquetasassociate_tag_to_entity: Adjuntar una etiqueta a una tabla o columnalist_objects_by_tag: Listar objetos asociados con una etiqueta específica
Herramientas de roles de usuario
get_list_of_roles: Recuperar todos los rolesget_list_of_users: Recuperar todos los usuariosgrant_role_to_user: Asignar un rol a un usuariorevoke_role_from_user: Revocar el rol de un usuario
Herramientas de modelos
get_list_of_models: Recuperar una lista de modelosget_list_of_model_versions_by_fqn: Obtener versiones de un modelo por nombre totalmente calificado
Cada herramienta está diseñada para devolver metadatos concisos y relevantes para mantenerse dentro de los límites de tokens de LLM mientras se mantiene la integridad semántica.
Licencia
Este proyecto está licenciado bajo la Apache License Version 2.0.