Apache Gravitino
Acesse o Apache Gravitino, um lago de metadados federado e de alto desempenho para dados e IA.
Documentação
Servidor MCP para Apache Gravitino
Servidor MCP que fornece APIs do Gravitino - Uma integração FastMCP para serviços Apache Gravitino.
Recursos
- Integração perfeita com FastMCP para APIs do Gravitino
- Interface simplificada para interação com metadados
- Suporta operações de metadados para catálogos, esquemas, tabelas, modelos, usuários, tags e gerenciamento de papéis de usuário
Instalação
Este projeto usa uv como ferramenta de gerenciamento de dependências e ambiente virtual. Certifique-se de que uv esteja instalado no seu sistema.
-
Clone o repositório:
git clone git@github.com:datastrato/mcp-server-gravitino.git -
Navegue até o diretório do projeto:
cd mcp-server-gravitino -
Crie um ambiente virtual:
uv venv -
Ative o ambiente virtual:
source .venv/bin/activate -
Instale as dependências:
uv install
Configuração
Configuração Comum
Independentemente da autorização, as seguintes variáveis de ambiente precisam ser definidas:
GRAVITINO_METALAKE=<YOUR_METALAKE> # default: "metalake_demo"
GRAVITINO_URI=<YOUR_GRAVITINO_URI>
GRAVITINO_URI: A URL base do seu servidor Gravitino.GRAVITINO_METALAKE: O nome do metakube a ser usado.
Autorização
mcp-server-gravitino suporta métodos de autenticação baseados em token e básicos. Esses mecanismos permitem acesso seguro às ferramentas e prompts do MCP e são adequados para integração com sistemas externos.
Autenticação por Token
Defina as seguintes variáveis de ambiente:
GRAVITINO_JWT_TOKEN=<YOUR_GRAVITINO_JWT_TOKEN>
GRAVITINO_JWT_TOKEN: O token JWT para autenticação.
Autenticação Básica
Alternativamente, você pode usar autenticação básica:
GRAVITINO_USERNAME=<YOUR_GRAVITINO_USERNAME>
GRAVITINO_PASSWORD=<YOUR_GRAVITINO_PASSWORD>
GRAVITINO_USERNAME: O nome de usuário para autenticação no Gravitino.GRAVITINO_PASSWORD: A senha correspondente.
Ativação de Ferramentas
A ativação de ferramentas é atualmente baseada em nomes de métodos (por exemplo, get_list_of_table). Você pode especificar quais ferramentas ativar definindo a variável de ambiente opcional GRAVITINO_ACTIVE_TOOLS. O valor padrão é *, que ativa todas as ferramentas. Se quiser ativar apenas a ferramenta get_list_of_roles, você pode definir a variável de ambiente da seguinte forma:
GRAVITINO_ACTIVE_TOOLS=get_list_of_roles
Uso
Para iniciar o Servidor MCP do Gravitino, execute o seguinte comando:
uv \
--directory /path/to/mcp-gravitino \
run \
--with fastmcp \
--with httpx \
--with mcp-server-gravitino \
python -m mcp_server_gravitino.server
O significado de cada argumento é o seguinte:
| Argumento | Descrição |
|---|---|
uv | Inicia a ferramenta CLI do UV |
--directory /path/to/mcp-gravitino | Especifica o diretório do projeto de trabalho com pyproject.toml |
run | Indica que um comando será executado no ambiente gerenciado |
--with fastmcp | Adiciona fastmcp ao ambiente de execução sem alterar as dependências do projeto |
--with httpx | Adiciona a dependência httpx para funcionalidade HTTP assíncrona |
--with mcp-server-gravitino | Adiciona o módulo local como dependência de execução |
python -m mcp_server_gravitino.server | Inicia o servidor MCP usando o módulo de entrada do pacote |
Exemplo com o Cliente Goose
Exemplo de configuração para executar o servidor usando 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 Ferramentas
mcp-server-gravitino não expõe todas as APIs do Gravitino, mas fornece um conjunto selecionado de ferramentas otimizadas:
Ferramentas de Tabela
get_list_of_catalogs: Recuperar uma lista de catálogosget_list_of_schemas: Recuperar uma lista de esquemasget_list_of_tables: Recuperar uma lista paginada de tabelasget_table_by_fqn: Buscar informações detalhadas de uma tabela específicaget_table_columns_by_fqn: Recuperar informações de colunas de uma tabela
Ferramentas de Tag
get_list_of_tags: Recuperar todas as tagsassociate_tag_to_entity: Anexar uma tag a uma tabela ou colunalist_objects_by_tag: Listar objetos associados a uma tag específica
Ferramentas de Papel de Usuário
get_list_of_roles: Recuperar todos os papéisget_list_of_users: Recuperar todos os usuáriosgrant_role_to_user: Atribuir um papel a um usuáriorevoke_role_from_user: Revogar o papel de um usuário
Ferramentas de Modelo
get_list_of_models: Recuperar uma lista de modelosget_list_of_model_versions_by_fqn: Obter versões de um modelo pelo nome totalmente qualificado
Cada ferramenta é projetada para retornar metadados concisos e relevantes para permanecer dentro dos limites de tokens do LLM, mantendo a integridade semântica.
Licença
Este projeto é licenciado sob a Apache License Versão 2.0.