aws-athena-mcp

by lishenxydlgzs
Verified

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Requires Node.js >= 16 to run the MCP server

@lishenxydlgzs/aws-athena-mcp

Un servidor de Protocolo de Contexto de Modelo (MCP) para ejecutar consultas de AWS Athena. Este servidor permite que los asistentes de IA ejecuten consultas SQL en sus bases de datos de AWS Athena y obtengan resultados.

Uso

  1. Configure las credenciales de AWS utilizando uno de los siguientes métodos:
    • Configuración de AWS CLI
    • Variables de entorno ( AWS_ACCESS_KEY_ID , AWS_SECRET_ACCESS_KEY )
    • Rol de IAM (si se ejecuta en AWS)
  2. Agregue el servidor a su configuración de MCP:
{ "mcpServers": { "athena": { "command": "npx", "args": ["-y", "@lishenxydlgzs/aws-athena-mcp"], "env": { // Required "OUTPUT_S3_PATH": "s3://your-bucket/athena-results/", // Optional AWS configuration "AWS_REGION": "us-east-1", // Default: AWS CLI default region "AWS_PROFILE": "default", // Default: 'default' profile "AWS_ACCESS_KEY_ID": "", // Optional: AWS access key "AWS_SECRET_ACCESS_KEY": "", // Optional: AWS secret key "AWS_SESSION_TOKEN": "", // Optional: AWS session token // Optional server configuration "ATHENA_WORKGROUP": "default_workgroup", // Optional: specify the Athena WorkGroup "QUERY_TIMEOUT_MS": "300000", // Default: 5 minutes (300000ms) "MAX_RETRIES": "100", // Default: 100 attempts "RETRY_DELAY_MS": "500" // Default: 500ms between retries } } } }
  1. El servidor proporciona las siguientes herramientas:
  • run_query : ejecuta una consulta SQL usando AWS Athena
    • Parámetros:
      • base de datos: La base de datos de Athena para consultar
      • consulta: consulta SQL a ejecutar
      • maxRows: Número máximo de filas a devolver (predeterminado: 1000, máximo: 10000)
    • Devoluciones:
      • Si la consulta se completa dentro del tiempo de espera: Resultados completos de la consulta
      • Si se alcanza el tiempo de espera: solo el queryExecutionId para su posterior recuperación
  • get_status : verifica el estado de la ejecución de una consulta
    • Parámetros:
      • queryExecutionId: El ID devuelto por run_query
    • Devoluciones:
      • estado: Estado de la consulta (EN COLA, EN EJECUCIÓN, EXITOSA, FALLIDA o CANCELADA)
      • stateChangeReason: Motivo del cambio de estado (si lo hay)
      • submissionDateTime: Cuándo se envió la consulta
      • completionDateTime: cuándo se completó la consulta (si terminó)
      • estadísticas: Estadísticas de ejecución de consultas (si están disponibles)
  • get_result : recupera resultados de una consulta completada
    • Parámetros:
      • queryExecutionId: El ID devuelto por run_query
      • maxRows: Número máximo de filas a devolver (predeterminado: 1000, máximo: 10000)
    • Devoluciones:
      • Resultados completos de la consulta si la consulta se ha completado correctamente
      • Error si la consulta falló o aún está ejecutándose
  • list_saved_queries : enumera todas las consultas guardadas (con nombre) en Athena.
  • Devoluciones:
    • Una matriz de consultas guardadas con id , name y description opcional
    • Las consultas se devuelven desde ATHENA_WORKGROUP y AWS_REGION configurados
  • run_saved_query: ejecuta una consulta previamente guardada por su ID.
  • Parámetros:
    • namedQueryId : ID de la consulta guardada
    • databaseOverride : Anulación opcional de la base de datos predeterminada de la consulta guardada
    • maxRows : Número máximo de filas a devolver (predeterminado: 1000)
    • timeoutMs : Tiempo de espera en milisegundos (predeterminado: 60000)
  • Devoluciones:
    • El mismo comportamiento que run_query : resultados completos o ID de ejecución

Ejemplos de uso

Mostrar todas las bases de datos

Mensaje al Asistente de IA: List all databases in Athena

Parámetro MCP:

{ "database": "default", "query": "SHOW DATABASES" }

Listar tablas en una base de datos

Mensaje para el Asistente de IA: Show me all tables in the default database

Parámetro MCP:

{ "database": "default", "query": "SHOW TABLES" }

Obtener esquema de tabla

Mensaje para el Asistente de IA: What's the schema of the asin_sitebestimg table?

Parámetro MCP:

{ "database": "default", "query": "DESCRIBE default.asin_sitebestimg" }

Vista previa de las filas de la tabla

Mensaje al Asistente de IA: Show some rows from my_database.mytable

Parámetro MCP:

{ "database": "my_database", "query": "SELECT * FROM my_table LIMIT 10", "maxRows": 10 }

Consulta avanzada con filtrado y agregación

Mensaje al Asistente de IA: Find the average price by category for in-stock products

Parámetro MCP:

{ "database": "my_database", "query": "SELECT category, COUNT(*) as count, AVG(price) as avg_price FROM products WHERE in_stock = true GROUP BY category ORDER BY count DESC", "maxRows": 100 }

Comprobación del estado de la consulta

{ "queryExecutionId": "12345-67890-abcdef" }

Obtener resultados de una consulta completada

{ "queryExecutionId": "12345-67890-abcdef", "maxRows": 10 }

Listado de consultas guardadas

{ "name": "list_saved_queries", "arguments": {} }

Ejecución de una consulta guardada

{ "name": "run_saved_query", "arguments": { "namedQueryId": "abcd-1234-efgh-5678", "maxRows": 100 } }

Requisitos

  • Node.js >= 16
  • Credenciales de AWS con permisos adecuados de Athena y S3
  • Cubo S3 para resultados de consultas
  • Las consultas con nombre (opcionales) deben existir en ATHENA_WORKGROUP y AWS_REGION especificados

Licencia

Instituto Tecnológico de Massachusetts (MIT)

Repositorio

Repositorio de GitHub

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Ejecute consultas SQL con AWS Athena para acceder a los datos disponibles en el catálogo de AWS Glue.

  1. Usage
    1. Usage Examples
      1. Show All Databases
      2. List Tables in a Database
      3. Get Table Schema
      4. Table Rows Preview
      5. Advanced Query with Filtering and Aggregation
      6. Checking Query Status
      7. Getting Results for a Completed Query
      8. Listing Saved Queries
      9. Running a Saved Query
    2. Requirements
      1. License
        1. Repository
          ID: 0i7dhkex6t