MCP Vertica

Um servidor para gerenciar e consultar bancos de dados Vertica, incluindo gerenciamento de conexão, esquema e segurança.

Documentação

MseeP.ai Security Assessment Badge

MCP Vertica

PyPI version License: MIT Downloads smithery badge MCP Community

🏆 Primeira implementação do MCP Server VerticaSaiba mais

Listado no Registro Oficial do Model Context Protocol

Um servidor MCP (model-context-protocol) para Vertica

Vertica MCP server

Exemplo: Configuração do Servidor MCP

Crie ou edite o arquivo de configuração do seu cliente MCP com o seguinte conteúdo:

UVX

{
  "mcpServers": {
    "vertica": {
      "command": "uvx",
      "args": ["mcp-vertica"],
      "env": {
        "VERTICA_HOST": "localhost",
        "VERTICA_PORT": 5433,
        "VERTICA_DATABASE": "VMart",
        "VERTICA_USER": "dbadmin",
        "VERTICA_PASSWORD": "test_password",
        "VERTICA_CONNECTION_LIMIT": 10,
        "VERTICA_SSL": false,
        "VERTICA_SSL_REJECT_UNAUTHORIZED": true
      }
    }
  }
}

Ou com argumentos

{
  "mcpServers": {
    "vertica": {
      "command": "uvx",
      "args": [
        "mcp-vertica",
        "--host=localhost",
        "--db-port=5433",
        "--database=VMart",
        "--user=dbadmin",
        "--password=test_password",
        "--connection-limit=10"
      ]
    }
  }
}

Docker

{
  "mcpServers": {
    "vertica": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "nolleh/mcp-vertica"],
      "env": {
        "VERTICA_HOST": "localhost",
        "VERTICA_PORT": 5433,
        "VERTICA_DATABASE": "VMart",
        "VERTICA_USER": "dbadmin",
        "VERTICA_PASSWORD": "test_password",
        "VERTICA_CONNECTION_LIMIT": 10,
        "VERTICA_SSL": false,
        "VERTICA_SSL_REJECT_UNAUTHORIZED": true
      }
    }
  }
}

[!Note]

  • Para flags booleanas como --ssl ou --ssl-reject-unauthorized, basta adicionar a flag (ex.: "--ssl") para ativá-la, ou omiti-la para desativar.
  • Para senha vazia, use uma string vazia como mostrado acima.

Recursos

Gerenciamento de Conexão com o Banco de Dados

  • Pool de conexões com limites configuráveis
  • Suporte a SSL/TLS
  • Limpeza automática de conexões
  • Tratamento de timeout de conexão

Operações de Consulta

  • Executar consultas SQL
  • Transmitir grandes resultados de consulta em lotes
  • Operações de cópia de dados
  • Gerenciamento de transações

Gerenciamento de Esquema

  • Inspeção de estrutura de tabelas
  • Gerenciamento de índices
  • Gerenciamento de visões
  • Informações de restrições
  • Detalhes de colunas

Recursos de Segurança

  • Permissões por operação (INSERT, UPDATE, DELETE, DDL)
  • Permissões específicas por esquema
  • Suporte a SSL/TLS
  • Mascaramento de senhas em logs

Ferramentas

Operações de Banco de Dados

  1. execute_query

    • Executar consultas SQL
    • Suporte a todas as operações SQL
  2. stream_query

    • Transmitir grandes resultados de consulta em lotes
    • Tamanho de lote configurável
  3. copy_data

    • Carregamento em massa de dados usando o comando COPY
    • Eficiente para grandes conjuntos de dados

Gerenciamento de Esquema

  1. get_table_structure

    • Obter estrutura detalhada da tabela
    • Informações de colunas
    • Restrições
  2. list_indexes

    • Listar todos os índices de uma tabela
    • Tipo e exclusividade do índice
    • Informações de colunas
  3. list_views

    • Listar todas as visões em um esquema
    • Definições de visões

Configuração

Variáveis de Ambiente

VERTICA_HOST=localhost
VERTICA_PORT=5433
VERTICA_DATABASE=VMart
VERTICA_USER=newdbadmin
VERTICA_PASSWORD=vertica
VERTICA_CONNECTION_LIMIT=10
VERTICA_SSL=false
VERTICA_SSL_REJECT_UNAUTHORIZED=true

Permissões de Operação

ALLOW_INSERT_OPERATION=false
ALLOW_UPDATE_OPERATION=false
ALLOW_DELETE_OPERATION=false
ALLOW_DDL_OPERATION=false

Permissões de Esquema

SCHEMA_INSERT_PERMISSIONS=schema1:true,schema2:false
SCHEMA_UPDATE_PERMISSIONS=schema1:true,schema2:false
SCHEMA_DELETE_PERMISSIONS=schema1:true,schema2:false
SCHEMA_DDL_PERMISSIONS=schema1:true,schema2:false

Instalação

Instalando via Smithery

Para instalar o Conector de Banco de Dados Vertica para Claude Desktop automaticamente via Smithery:

npx -y @smithery/cli install @nolleh/mcp-vertica --client claude

Instalando Manualmente

Abra o arquivo de configuração do seu cliente MCP favorito e configure com uvx mcp-vertica

Exemplo: Configuração do Servidor MCP

Desenvolvimento

Modo de Depuração

Ao executar com Docker, você pode ativar o log de depuração definindo a variável de ambiente DEBUG:

# Run with maximum verbosity (-vvv)
docker run -e DEBUG=3 -e VERTICA_HOST=localhost ... nolleh/mcp-vertica:latest

# Run with medium verbosity (-vv)
docker run -e DEBUG=2 -e VERTICA_HOST=localhost ... nolleh/mcp-vertica:latest

# Pass additional arguments
docker run -e EXTRA_ARGS="--connection-limit=20" -e VERTICA_HOST=localhost ... nolleh/mcp-vertica:latest

Em docker-compose.yml:

environment:
  DEBUG: 3  # 0=none, 1=-v, 2=-vv, 3=-vvv
  EXTRA_ARGS: "--connection-limit=20"  # Optional additional arguments

Apêndice: Para Testes, Exemplo de Docker Compose do VerticaDB

version: "3.8"

services:
  vertica:
    # image: vertica/vertica-ce:11.1.0-0
    image: vertica/vertica-ce:latest
    platform: linux/amd64
    container_name: vertica-ce
    environment:
      VERTICA_MEMDEBUG: 2
    ports:
      - "5433:5433"
      - "5444:5444"
    volumes:
      - vertica_data:/home/dbadmin/VMart
    healthcheck:
      test:
        [
          "CMD",
          "/opt/vertica/bin/vsql",
          "-h",
          "localhost",
          "-d",
          "VMart",
          "-U",
          "dbadmin",
          "-c",
          "SELECT 1",
        ]
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 30s
    restart: unless-stopped

  mcp-vertica:
    image: nolleh/mcp-vertica:latest
    container_name: mcp-vertica
    ports:
      - "8081:8081"
    environment:
      # Transport mode
      TRANSPORT: http
      PORT: 8081
      # Debug settings (0=none, 1=-v, 2=-vv, 3=-vvv)
      DEBUG: 3  # Set to 3 for maximum verbosity
      # Extra command line arguments (optional)
      # EXTRA_ARGS: "--some-flag"
      # Vertica connection settings
      VERTICA_HOST: vertica
      VERTICA_PORT: 5433
      VERTICA_DATABASE: VMart
      VERTICA_USER: dbadmin
      VERTICA_PASSWORD: ""
      VERTICA_CONNECTION_LIMIT: 10
      VERTICA_SSL: "false"
    depends_on:
      vertica:
        condition: service_healthy

volumes:
  vertica_data:
    driver: local

Em seguida, execute o servidor seguindo as instruções Exemplo: Configuração do Servidor MCP, e verifique se tudo funciona corretamente

Licença

Este projeto é licenciado sob a Licença MIT - consulte o arquivo LICENSE para obter detalhes.