/ Directorio / Playground / AWS Labs MCP
● Oficial awslabs 🔑 Requiere tu clave

AWS Labs MCP

por awslabs · awslabs/mcp

Colección oficial de AWS Labs — un MCP por servicio (S3, Lambda, CloudFormation, ECS, RDS, CloudWatch). Solo lectura de forma predeterminada.

Suite de MCP de AWS Labs. En lugar de un servidor gigante, AWS ofrece una familia: aws-api (estilo CLI general), más servidores especializados para S3, Lambda, CloudFormation, ECS, RDS, CloudWatch, Cost Explorer y más. Todos son de lectura primero; las escrituras requieren aceptación explícita mediante flags de entorno.

Por qué usarlo

Características clave

Demo en vivo

Cómo se ve en la práctica

aws.replay ▶ listo
0/0

Instalar

Elige tu cliente

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "aws": {
      "command": "uvx",
      "args": [
        "awslabs.aws-api-mcp-server"
      ]
    }
  }
}

Abre Claude Desktop → Settings → Developer → Edit Config. Reinicia después de guardar.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "aws": {
      "command": "uvx",
      "args": [
        "awslabs.aws-api-mcp-server"
      ]
    }
  }
}

Cursor usa el mismo esquema mcpServers que Claude Desktop. La configuración del proyecto prevalece sobre la global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "aws": {
      "command": "uvx",
      "args": [
        "awslabs.aws-api-mcp-server"
      ]
    }
  }
}

Haz clic en el icono MCP Servers de la barra lateral de Cline y luego en "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "aws": {
      "command": "uvx",
      "args": [
        "awslabs.aws-api-mcp-server"
      ]
    }
  }
}

Mismo formato que Claude Desktop. Reinicia Windsurf para aplicar.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "aws",
      "command": "uvx",
      "args": [
        "awslabs.aws-api-mcp-server"
      ]
    }
  ]
}

Continue usa un array de objetos de servidor en lugar de un mapa.

~/.config/zed/settings.json
{
  "context_servers": {
    "aws": {
      "command": {
        "path": "uvx",
        "args": [
          "awslabs.aws-api-mcp-server"
        ]
      }
    }
  }
}

Añádelo a context_servers. Zed recarga en caliente al guardar.

claude mcp add aws -- uvx awslabs.aws-api-mcp-server

Un solo comando. Verifica con claude mcp list. Quita con claude mcp remove.

Casos de uso

Usos del mundo real: AWS Labs MCP

Realizar triaje de una alarma de CloudWatch correlacionando registros, métricas y despliegues recientes

👤 Ingenieros SRE e ingenieros on-call ⏱ ~15 min intermediate

Cuándo usarlo: Se acaba de activar una alarma y quieres ir de 'qué servicio, qué despliegue, qué línea de registro' sin navegar por la consola.

Requisitos previos
  • Credenciales de AWS con lectura de CloudWatch + CloudFormationaws sso login con un rol que tenga la política administrada ReadOnlyAccess
  • Servidor aws-cloudwatch-mcp ejecutándoseuvx awslabs.cloudwatch-mcp-server — o instala el bundle
Flujo
  1. Obtén los detalles de la alarma y los recursos afectados
    Describe la alarma de CloudWatch 'prod-api-5xx-high'. ¿Qué recurso vigila, cuál es el umbral, cuál es el estado actual?✓ Copiado
    → Configuración de alarma más historial de estado (cuándo cambió)
  2. Consulta registros alrededor de la violación
    Ejecuta una consulta de Logs Insights en el grupo de registros /aws/ecs/prod-api desde 10 minutos antes de que se activara la alarma hasta ahora. Encuentra líneas de registro de nivel ERROR agrupadas por plantilla de mensaje.✓ Copiado
    → Plantillas de error principales con recuentos
  3. Correlaciona con despliegues recientes
    Lista despliegues de CodeDeploy al servicio prod-api en las últimas 6 horas. ¿Correlaciona algún tiempo de despliegue con el pico de errores?✓ Copiado
    → Línea de tiempo de despliegue alineada con el inicio del error

Resultado: Una hipótesis concreta como 'el despliegue abc123 a las 14:22 UTC correlaciona con el inicio de 5xx a las 14:23' con la evidencia que la respalda.

Errores comunes
  • Las consultas de Logs Insights contra un grupo de registros grande sin una ventana de tiempo cuestan dinero real — Siempre incluye límites de @timestamp más estrechos que 1 hora; el MCP no te detendrá de facturar $$$
  • Los recursos entre cuentas necesitan el perfil de credenciales correcto — Establece la variable de entorno AWS_PROFILE por invocación de servidor; no asumas que el perfil predeterminado es el que quieres
Combinar con: sentry · github

Auditar un bucket de S3 para objetos públicos y estado de encriptación

👤 Ingenieros de seguridad, revisores de cumplimiento ⏱ ~20 min intermediate

Cuándo usarlo: Antes de una prueba de penetración o auditoría, quieres un inventario rápido del estado del bucket.

Requisitos previos
  • Permisos S3:List y S3:GetBucket* — Adjunta la política administrada SecurityAudit (solo lectura)
Flujo
  1. Lista buckets y obtén sus políticas
    Lista todos los buckets de S3 en esta cuenta. Para cada uno, obtén: configuración de Public Access Block, ACL del bucket, política del bucket, configuración de encriptación predeterminada.✓ Copiado
    → Tabla de estado por bucket
  2. Marca buckets riesgosos
    Destaca cualquier bucket donde Public Access Block está desactivado, O la encriptación está desactivada, O la política del bucket contiene Principal: '*'.✓ Copiado
    → Lista corta de buckets riesgosos con razones
  3. Muestrea algunos objetos de los buckets marcados
    Para cada bucket marcado, lista los primeros 5 objetos y muestra sus ACL. ¿Hay alguno que sea realmente legible por el mundo?✓ Copiado
    → Confirmación a nivel de objeto en lugar de solo a nivel de bucket

Resultado: Una lista de remedición priorizada para tu revisión de seguridad.

Errores comunes
  • Las políticas del bucket pueden otorgar acceso público incluso cuando las ACL se ven privadas — Evalúa ambos; usa las API GetPublicAccessBlock y GetBucketPolicyStatus, no solo ACL
Combinar con: filesystem

Averigua por qué el factura de AWS de este mes se disparó

👤 Líderes de ingeniería, operaciones financieras ⏱ ~25 min intermediate

Cuándo usarlo: La factura subió un 30% y tienes 48 horas para explicar a finanzas.

Requisitos previos
  • Acceso a Cost Explorer API — Habilita Cost Explorer en la consola de facturación; otorga ce:GetCostAndUsage a tu rol
Flujo
  1. Obtén los cambios diarios de costo
    Obtén el costo mezclado total por día para los últimos 60 días. Identifica cualquier día donde el costo saltó >20% vs el promedio móvil de 7 días.✓ Copiado
    → Series de costo diario más días de anomalía marcados
  2. Desglosa por servicio para la anomalía
    Para el día de mayor anomalía, desglosa el costo por servicio. ¿Qué servicio impulsó el pico?✓ Copiado
    → Impulsor a nivel de servicio identificado
  3. Desglosa más por recurso
    Para ese servicio, desglosa por tipo de uso y etiqueta de recurso. ¿Qué recurso específico es responsable?✓ Copiado
    → Culpable a nivel de recurso — p. ej. 'nat gateway en us-east-1 procesó 12 TB'

Resultado: Una respuesta de un párrafo para finanzas: 'el pico fue X causado por Y; la solución es Z'.

Errores comunes
  • Cost Explorer tiene un retraso de hasta 24 h — los costos de hoy aún no están completamente allí — Restringe las consultas para que terminen al menos hace 1 día; señala el retraso explícitamente en tu respuesta
  • Cada llamada a Cost Explorer API cuesta $0.01 — No hagas bucles de consultas en un script sin límites; el MCP no te detendrá
Combinar con: filesystem

Depura un Lambda fallido leyendo sus invocaciones recientes y registros

👤 Ingenieros Serverless ⏱ ~15 min intermediate

Cuándo usarlo: Un Lambda está lanzando errores intermitentemente y quieres ver entradas, errores y tendencias de duración.

Flujo
  1. Describe la función
    Describe la función Lambda my-api-handler. ¿Qué runtime, memoria, timeout, última modificación?✓ Copiado
    → Instantánea de configuración
  2. Obtén errores recientes de CloudWatch Logs
    Logs Insights: para /aws/lambda/my-api-handler en las últimas 2 horas, muestra líneas de error con su requestId, duración y tiempo de inicialización. Agrupa por tipo de error.✓ Copiado
    → Categorías de error con requestIds representativos
  3. Obtén una solicitud de extremo a extremo
    Elige un requestId fallido. Obtén el flujo de registro completo para esa invocación — START, todos los prints, END, REPORT. Cuéntame qué pasó.✓ Copiado
    → Narrativa de una invocación única con cronometraje de arranque en frío y causa del error

Resultado: Causa de error específica más una ruta de solución (más memoria, actualización de dependencia, configuración de reintento, etc.).

Errores comunes
  • La concurrencia aprovisionada sesga los números de arranque en frío — Filtra líneas REPORT donde Init Duration está presente — esos son arranques en frío; ignóralos si estás depurando invocaciones calientes
Combinar con: github · sentry

Detecta cambios entre pilas de CloudFormation y recursos activos

👤 Ingenieros de plataforma, devops ⏱ ~30 min advanced

Cuándo usarlo: Sospechas que alguien hizo clic en la consola y cambió un recurso fuera de IaC.

Flujo
  1. Lista pilas e inicia detección de cambios
    Lista todas las pilas de CloudFormation ACTIVAS. Para cada una, inicia una detección de cambios y espera hasta que todas se completen.✓ Copiado
    → Estado de cambios por pila: IN_SYNC / DRIFTED / NOT_CHECKED
  2. Investiga pilas con cambios
    Para cada pila con estado DRIFTED, lista qué recursos cambiaron y qué propiedad difiere.✓ Copiado
    → Diffs a nivel de recurso (p. ej. 'SG permite 0.0.0.0/0 pero la plantilla dice 10.0.0.0/8')
  3. Decide: actualizar plantilla o revertir
    Para cada cambio, recomienda: ¿es el estado activo intencional (actualiza la plantilla para que coincida) o accidental (revierte el recurso)? Básetelo en la naturaleza del cambio.✓ Copiado
    → Recomendación por cambio con razonamiento

Resultado: Tu IaC sincronizado nuevamente con la realidad, con un registro de decisiones.

Errores comunes
  • La detección de cambios no captura todas las propiedades para cada tipo de recurso — Consulta la documentación de CloudFormation para obtener la lista de 'cambios no admitidos'; complementa con reglas de AWS Config para una cobertura completa
Combinar con: github

Combinaciones

Combínalo con otros MCPs para multiplicar por 10

aws + github

Correlaciona un PR de despliegue con la alarma de CloudWatch resultante — identifica el commit roto

La alarma de CloudWatch prod-latency-p99 se activó a las 14:22. Encuentra el PR de GitHub fusionado a main más cercano a esa hora, resume su diff, y cuéntame qué trozo probablemente causó la regresión.✓ Copiado
aws + postgres

Para Postgres alojado en RDS, combina observabilidad a nivel de AWS con acceso a SQL

Alarma de RDS 'cpu > 80%' en prod-db-01. Correlaciona con pg_stat_statements — ¿qué consultas se ejecutaron más durante el pico?✓ Copiado

Exporta inventarios de recursos de AWS a CSV locales para documentos de cumplimiento

Exporta todos los buckets de S3 con su configuración de encriptación y configuración de acceso público a /reports/s3-audit-2026-04.csv.✓ Copiado

Herramientas

Lo que expone este MCP

HerramientaEntradasCuándo llamarCoste
call_aws service: str, operation: str, parameters: object Equivalente genérico de AWS CLI — cualquier servicio, cualquier operación de lectura generalmente gratuito; algunos servicios (CE) facturan por llamada
describe_stack stack_name: str Introspección de CloudFormation free
detect_stack_drift / describe_stack_drift_detection_status stack_name: str Verifica cambios de IaC vs activos free
list_functions / get_function / invoke_function Nombre de Lambda, payload? Administra y prueba Lambdas — invocar es una operación de escritura, protegida costos de invocación según precios de Lambda
list_buckets / get_object / list_objects_v2 Parámetros de S3 Inventario de S3 y acceso a contenido standard S3 request pricing
start_query / get_query_results (Logs Insights) logGroupName, queryString, startTime, endTime Análisis de registros en uno o más grupos de registros $0.005 por GB escaneado
get_metric_data JSON de consulta de métrica de CloudWatch Extracciones de métricas de series temporales free tier applies
get_cost_and_usage TimePeriod, Granularity, GroupBy, Metrics Consultas de Cost Explorer $0.01 per API call
list_services / describe_services / list_tasks (ECS) parámetros de cluster Introspección de cluster/servicio de ECS free
describe_db_instances (RDS) identificador? Inventario de RDS; usa MCP de postgres para SQL real free

Coste y límites

Lo que cuesta ejecutarlo

Cuota de API
Por servicio. La mayoría de las llamadas describe/list son gratuitas; algunas API facturan por llamada (Cost Explorer $0.01, Logs Insights $0.005/GB escaneado)
Tokens por llamada
200-2000 tokens típicos; los resultados de Logs Insights pueden ser grandes — siempre establece un límite de filas
Monetario
El MCP en sí es gratuito. Tu factura de AWS refleja cualquier llamada a API que haga el agente.
Consejo
Limita ventanas de tiempo, limita filas de resultado, cachea salida describe-* por sesión. Un bucle descuidado de Logs Insights durante 30 días de registros detallados puede escanear TB de datos.

Seguridad

Permisos, secretos, alcance

Ámbitos mínimos: arn:aws:iam::aws:policy/ReadOnlyAccess (para uso de solo lectura)
Almacenamiento de credenciales: Cadena de credenciales estándar de AWS — variables de entorno, ~/.aws/credentials, SSO, o rol de instancia. Nunca codifiques claves.
Salida de datos: Directo a endpoints de API de AWS (regional). Sin terceros.
No conceder nunca: AdministratorAccess iam:* write kms:Decrypt en claves sensibles sin scoping

Resolución de problemas

Errores comunes y soluciones

Could not load credentials from any providers

Ejecuta aws sts get-caller-identity — si eso falla, arregla tu configuración de CLI primero. El MCP usa la misma cadena.

Verificar: aws sts get-caller-identity
AccessDenied on a Describe call

Tu rol no tiene el permiso específico. Lee el error — nombra la acción faltante. Añade al rol o cambia de perfil.

Throttling: Rate exceeded

Estás golpeando límites de API de servicio (p. ej. CloudFormation 1 req/s). Retrocede; la mayoría de los SDK reintenten automáticamente pero los bucles masivos lo traspasen. Añade sleeps explícitos en prompts multi-llamada.

uvx can't find awslabs.<server>

Formato de nombre de paquete: awslabs.<name>-mcp-server. Comprueba el README del repositorio awslabs/mcp para la lista actual — los nombres cambiaron a fines de 2025.

Verificar: uvx --help | head

Alternativas

AWS Labs MCP vs otros

AlternativaCuándo usarlaContrapartida
Cloudflare MCPEjecutas en Cloudflare (Workers/R2/D1) en lugar de AWSNube diferente; no es un reemplazo directo
Terraform MCP (community)Quieres flujos de trabajo IaC-first en todas las nubesMenor cobertura de depuración de estado activo
Directo `aws` CLI mediante un MCP de shellQuieres que Claude ejecute cualquier comando CLI, no solo los preaproadosSuperficie de ataque mucho mayor; evita a menos que esté aislado

Más

Recursos

📖 Lee el README oficial en GitHub

🐙 Ver issues abiertas

🔍 Ver todos los 400+ servidores MCP y Skills