MCP Vertica
Un servidor para gestionar y consultar bases de datos Vertica, incluyendo la conexión, el esquema y la gestión de seguridad.
Documentación
MCP Vertica
🏆 Primera implementación del servidor MCP Vertica • Aprende más
✅ Listado en el Registro Oficial de Model Context Protocol
Un servidor MCP Vertica (model-context-protocol)
Ejemplo: Configuración del servidor MCP
Crea o edita el archivo de configuración de tu cliente MCP con el siguiente contenido:
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
}
}
}
}
O con 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 banderas booleanas como
--sslo--ssl-reject-unauthorized, simplemente agrega la bandera (por ejemplo,"--ssl") para habilitarla, u omítela para deshabilitarla.- Para una contraseña vacía, usa una cadena vacía como se muestra arriba.
Características
Gestión de conexiones de base de datos
- Agrupación de conexiones con límites configurables
- Soporte SSL/TLS
- Limpieza automática de conexiones
- Manejo de tiempo de espera de conexión
Operaciones de consulta
- Ejecutar consultas SQL
- Transmitir grandes resultados de consultas en lotes
- Operaciones de copia de datos
- Gestión de transacciones
Gestión de esquemas
- Inspección de estructura de tablas
- Gestión de índices
- Gestión de vistas
- Información de restricciones
- Detalles de columnas
Características de seguridad
- Permisos a nivel de operación (INSERT, UPDATE, DELETE, DDL)
- Permisos específicos de esquema
- Soporte SSL/TLS
- Enmascaramiento de contraseñas en registros
Herramientas
Operaciones de base de datos
-
execute_query- Ejecutar consultas SQL
- Soporte para todas las operaciones SQL
-
stream_query- Transmitir grandes resultados de consultas en lotes
- Tamaño de lote configurable
-
copy_data- Carga masiva de datos usando el comando COPY
- Eficiente para grandes conjuntos de datos
Gestión de esquemas
-
get_table_structure- Obtener estructura detallada de la tabla
- Información de columnas
- Restricciones
-
list_indexes- Listar todos los índices de una tabla
- Tipo de índice y unicidad
- Información de columnas
-
list_views- Listar todas las vistas en un esquema
- Definiciones de vistas
Configuración
Variables de entorno
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
Permisos de operación
ALLOW_INSERT_OPERATION=false
ALLOW_UPDATE_OPERATION=false
ALLOW_DELETE_OPERATION=false
ALLOW_DDL_OPERATION=false
Permisos 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
Instalación
Instalación mediante Smithery
Para instalar el Conector de Base de Datos Vertica para Claude Desktop automáticamente mediante Smithery:
npx -y @smithery/cli install @nolleh/mcp-vertica --client claude
Instalación manual
Abre el archivo de configuración de tu cliente MCP favorito y luego configura con uvx mcp-vertica
Ejemplo: Configuración del servidor MCP
Desarrollo
Modo de depuración
Cuando se ejecuta con Docker, puedes habilitar el registro de depuración configurando la variable de entorno 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
En 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 pruebas, ejemplo de Docker Compose de 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
Luego ejecuta el servidor siguiendo la instrucción Ejemplo: Configuración del servidor MCP, y verifica que todo funcione correctamente.
Licencia
Este proyecto está licenciado bajo la Licencia MIT; consulta el archivo LICENSE para más detalles.
