Redshift MCP Server

Un servidor MCP para Amazon Redshift, que permite a los asistentes de IA interactuar con bases de datos Redshift.

Documentación

Redshift MCP Server

Un servidor de Model Context Protocol (MCP) para Amazon Redshift que permite a los asistentes de IA interactuar con bases de datos de Redshift.

Introducción

Redshift MCP Server es una implementación basada en Python del Model Context Protocol que proporciona herramientas y recursos para interactuar con bases de datos de Amazon Redshift. Permite a los asistentes de IA:

  • Listar esquemas y tablas en una base de datos de Redshift
  • Recuperar scripts DDL (Data Definition Language) de tablas
  • Obtener estadísticas de tablas
  • Ejecutar consultas SQL
  • Analizar tablas para recopilar información de estadísticas
  • Obtener planes de ejecución para consultas SQL

Instalación

Requisitos previos

  • Python 3.13 o superior
  • Clúster de Amazon Redshift
  • Credenciales de Redshift (host, puerto, nombre de usuario, contraseña, base de datos)

Instalar desde el código fuente

# Clone the repository
git clone https://github.com/Moonlight-CL/redshift-mcp-server.git
cd redshift-mcp-server

# Install dependencies
uv sync

Configuración

El servidor requiere las siguientes variables de entorno para conectarse a su clúster de Redshift:

RS_HOST=your-redshift-cluster.region.redshift.amazonaws.com
RS_PORT=5439
RS_USER=your_username
RS_PASSWORD=your_password
RS_DATABASE=your_database
RS_SCHEMA=your_schema  # Optional, defaults to "public"

Puede establecer estas variables de entorno directamente o usar un archivo .env.

Uso

Iniciando el servidor

# Start the server
uv run --with mcp python-dotenv redshift-connector mcp
mcp run src/redshift_mcp_server/server.py

Integración con asistentes de IA

Para usar este servidor con un asistente de IA que admita MCP, agregue la siguiente configuración a sus ajustes de MCP:

{
  "mcpServers": {
    "redshift": {
      "command": "uv",
      "args": ["--directory", "src/redshift_mcp_server", "run", "server.py"],
      "env": {
        "RS_HOST": "your-redshift-cluster.region.redshift.amazonaws.com",
        "RS_PORT": "5439",
        "RS_USER": "your_username",
        "RS_PASSWORD": "your_password",
        "RS_DATABASE": "your_database",
        "RS_SCHEMA": "your_schema"
      }
    }
  }
}

Características

Recursos

El servidor proporciona los siguientes recursos:

  • rs:///schemas - Lista todos los esquemas en la base de datos
  • rs:///{schema}/tables - Lista todas las tablas en un esquema específico
  • rs:///{schema}/{table}/ddl - Obtiene el script DDL para una tabla específica
  • rs:///{schema}/{table}/statistic - Obtiene estadísticas para una tabla específica

Herramientas

El servidor proporciona las siguientes herramientas:

  • execute_sql - Ejecuta una consulta SQL en el clúster de Redshift
  • analyze_table - Analiza una tabla para recopilar información de estadísticas
  • get_execution_plan - Obtiene el plan de ejecución con estadísticas de tiempo de ejecución para una consulta SQL

Ejemplos

Listando esquemas

access_mcp_resource("redshift-mcp-server", "rs:///schemas")

Listando tablas en un esquema

access_mcp_resource("redshift-mcp-server", "rs:///public/tables")

Obteniendo DDL de tabla

access_mcp_resource("redshift-mcp-server", "rs:///public/users/ddl")

Ejecutando SQL

use_mcp_tool("redshift-mcp-server", "execute_sql", {"sql": "SELECT * FROM public.users LIMIT 10"})

Analizando una tabla

use_mcp_tool("redshift-mcp-server", "analyze_table", {"schema": "public", "table": "users"})

Obteniendo plan de ejecución

use_mcp_tool("redshift-mcp-server", "get_execution_plan", {"sql": "SELECT * FROM public.users WHERE user_id = 123"})

Desarrollo

Estructura del proyecto

redshift-mcp-server/
├── src/
│   └── redshift_mcp_server/
│       ├── __init__.py
│       └── server.py
├── pyproject.toml
└── README.md

Dependencias

  • mcp[cli]>=1.5.0 - SDK de Model Context Protocol
  • python-dotenv>=1.1.0 - Para cargar variables de entorno desde archivos .env
  • redshift-connector>=2.1.5 - Conector de Python para Amazon Redshift