/ Annuaire / Playground / AWS Labs MCP
● Officiel awslabs 🔑 Nécessite votre clé

AWS Labs MCP

par awslabs · awslabs/mcp

Collection officielle AWS Labs — un MCP par service (S3, Lambda, CloudFormation, ECS, RDS, CloudWatch). Lecture seule par défaut.

Suite AWS Labs MCP. Plutôt qu'un serveur géant, AWS livre une famille : aws-api (style CLI général), plus des serveurs spécialisés pour S3, Lambda, CloudFormation, ECS, RDS, CloudWatch, Cost Explorer, et plus. Lecture d'abord ; les écritures nécessitent un consentement explicite via des variables d'environnement.

Pourquoi l'utiliser

Fonctionnalités clés

Démo en direct

Aperçu en pratique

aws.replay ▶ prêt
0/0

Installer

Choisissez votre client

~/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"
      ]
    }
  }
}

Ouvrez Claude Desktop → Settings → Developer → Edit Config. Redémarrez après avoir enregistré.

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

Cursor utilise le même schéma mcpServers que Claude Desktop. La config projet l'emporte sur la globale.

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

Cliquez sur l'icône MCP Servers dans la barre latérale Cline, puis "Edit Configuration".

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

Même format que Claude Desktop. Redémarrez Windsurf pour appliquer.

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

Continue utilise un tableau d'objets serveur plutôt qu'une map.

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

Ajoutez dans context_servers. Zed recharge à chaud à la sauvegarde.

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

Une seule ligne. Vérifiez avec claude mcp list. Supprimez avec claude mcp remove.

Cas d'usage

Usages concrets : AWS Labs MCP

Diagnostiquez une alarme CloudWatch en corrélant logs, métriques et déploiements récents

👤 Ingénieurs SRE et d'astreinte ⏱ ~15 min intermediate

Quand l'utiliser : Une alarme vient de se déclencher et vous voulez aller de 'quel service, quel déploiement, quelle ligne de log' sans basculer à travers la console.

Prérequis
  • Credentials AWS avec CloudWatch + CloudFormation en lectureaws sso login avec un rôle ayant la politique gérée ReadOnlyAccess
  • Serveur aws-cloudwatch-mcp en cours d'exécutionuvx awslabs.cloudwatch-mcp-server — ou installez le bundle
Déroulement
  1. Tirez les détails de l'alarme et les ressources affectées
    Décrivez l'alarme CloudWatch 'prod-api-5xx-high'. Quelle ressource surveille-t-elle, quel seuil, quel est l'état actuel ?✓ Copié
    → Config d'alarme plus historique d'état (quand elle a basculé)
  2. Interrogez les logs autour de la violation
    Exécutez une requête Logs Insights sur le groupe de logs /aws/ecs/prod-api de 10 minutes avant le déclenchement de l'alarme jusqu'à maintenant. Trouvez les lignes de log au niveau ERROR regroupées par modèle de message.✓ Copié
    → Modèles d'erreur principaux avec comptages
  3. Corrélation avec déploiements récents
    Listez les déploiements CodeDeploy vers le service prod-api au cours des 6 dernières heures. Un déploiement correspond-il à la pointe d'erreurs ?✓ Copié
    → Chronologie de déploiement alignée sur le début des erreurs

Résultat : Une hypothèse concrète comme 'le déploiement abc123 à 14:22 UTC correspond à l'apparition 5xx à 14:23' avec les preuves à l'appui.

Pièges
  • Les requêtes Logs Insights sur un grand groupe de logs sans fenêtre de temps coûtent de l'argent réel — Incluez toujours les limites @timestamp plus étroites que 1 heure ; le MCP ne vous empêchera pas de facturer $$$
  • Les ressources inter-comptes nécessitent le bon profil de credentials — Définissez la variable d'environnement AWS_PROFILE par invocation de serveur ; ne supposez pas que le profil par défaut est celui que vous voulez
Combiner avec : sentry · github

Auditez un bucket S3 pour les objets publics et l'état du chiffrement

👤 Ingénieurs en sécurité, examinateurs de conformité ⏱ ~20 min intermediate

Quand l'utiliser : Avant un test de pénétration ou un audit, vous voulez un inventaire rapide de la posture du bucket.

Prérequis
  • Permissions S3:List et S3:GetBucket* — Attachez la politique gérée SecurityAudit (lecture seule)
Déroulement
  1. Listez les buckets et tirez leurs politiques
    Listez tous les buckets S3 dans ce compte. Pour chaque, récupérez : config Public Access Block, ACL bucket, politique bucket, config chiffrement par défaut.✓ Copié
    → Tableau de posture par bucket
  2. Signalez les buckets à risque
    Mettez en surbrillance tout bucket où Public Access Block est désactivé, OU le chiffrement est désactivé, OU la politique bucket contient Principal: '*'.✓ Copié
    → Liste courte de buckets à risque avec raisons
  3. Échantillonnez quelques objets des buckets signalés
    Pour chaque bucket signalé, listez les 5 premiers objets et montrez leurs ACL. Certains sont-ils réellement lisibles par le monde ?✓ Copié
    → Confirmation au niveau objet plutôt que juste au niveau bucket

Résultat : Une liste de remédiation priorisée pour votre examen de sécurité.

Pièges
  • Les politiques bucket peuvent accorder un accès public même quand les ACL semblent privés — Évaluez les deux ; utilisez les API GetPublicAccessBlock et GetBucketPolicyStatus, pas seulement les ACL
Combiner avec : filesystem

Découvrez pourquoi la facture AWS de ce mois a augmenté

👤 Chefs d'ingénierie, ops financières ⏱ ~25 min intermediate

Quand l'utiliser : La facture est en hausse de 30% et vous avez 48 heures pour l'expliquer à la finance.

Prérequis
  • Accès à l'API Cost Explorer — Activez Cost Explorer dans la console de facturation ; accordez ce:GetCostAndUsage à votre rôle
Déroulement
  1. Obtenez les deltas de coût quotidiens
    Tirez le coût brut total par jour pour les 60 derniers jours. Identifiez tout jour où le coût a augmenté de >20% par rapport à la moyenne mobile sur 7 jours.✓ Copié
    → Série de coût quotidien plus jours d'anomalie signalés
  2. Décomposez par service pour l'anomalie
    Pour le jour d'anomalie le plus important, décomposez le coût par service. Quel service a entraîné la pointe ?✓ Copié
    → Moteur au niveau service identifié
  3. Décomposez davantage par ressource
    Pour ce service, décomposez par type d'utilisation et tag de ressource. Quelle ressource spécifique en est responsable ?✓ Copié
    → Culpabilité au niveau ressource — par ex. 'passerelle NAT dans us-east-1 a traité 12 TB'

Résultat : Une réponse d'un paragraphe pour la finance : 'la pointe était X causée par Y ; le correctif est Z'.

Pièges
  • Cost Explorer a un délai pouvant aller jusqu'à 24h — les coûts d'aujourd'hui ne sont pas entièrement là encore — Limitez les requêtes pour se terminer au moins 1 jour avant ; notez le délai explicitement dans votre réponse
  • Chaque appel d'API Cost Explorer coûte 0,01 $ — Ne bouclez pas les requêtes dans un script sans limites ; le MCP ne vous empêchera pas
Combiner avec : filesystem

Déboguez un Lambda défaillant en lisant ses invocations récentes et ses logs

👤 Ingénieurs sans serveur ⏱ ~15 min intermediate

Quand l'utiliser : Un Lambda lance des erreurs par intermittence et vous voulez voir les entrées, les erreurs et les tendances de durée.

Déroulement
  1. Décrivez la fonction
    Décrivez la fonction Lambda my-api-handler. Quel runtime, mémoire, timeout, dernière modification ?✓ Copié
    → Snapshot de config
  2. Tirez les erreurs récentes des CloudWatch Logs
    Logs Insights : pour /aws/lambda/my-api-handler au cours des 2 dernières heures, montrez les lignes d'erreur avec leur requestId, durée et temps init. Groupez par type d'erreur.✓ Copié
    → Catégories d'erreurs avec requestIds représentatifs
  3. Récupérez une requête de bout en bout
    Choisissez un requestId défaillant. Tirez le flux de log complet pour cette invocation — START, tous les prints, END, REPORT. Dites-moi ce qui s'est passé.✓ Copié
    → Récit d'une invocation unique avec minutage démarrage à froid et cause d'erreur

Résultat : Cause d'erreur spécifique plus un chemin de correctif (plus de mémoire, mise à jour dep, config de nouvelle tentative, etc.).

Pièges
  • La concurrence approvisionnée fausse les chiffres de démarrage à froid — Filtrez les lignes REPORT où Init Duration est présent — ce sont les démarrages à froid ; ignorez-les si vous déboguez les invocations chaud
Combiner avec : github · sentry

Détectez la déviation entre les stacks CloudFormation et les ressources en direct

👤 Ingénieurs de plateforme, devops ⏱ ~30 min advanced

Quand l'utiliser : Vous soupçonnez que quelqu'un a cliqué dans la console et a changé une ressource en dehors de l'IaC.

Déroulement
  1. Listez les stacks et déclenchez la détection de déviation
    Listez tous les stacks CloudFormation ACTIVE. Pour chaque, démarrez une détection de déviation et interrogez jusqu'à ce que tout soit complet.✓ Copié
    → Statut de déviation par stack : IN_SYNC / DRIFTED / NOT_CHECKED
  2. Creusez dans les stacks déviés
    Pour chaque stack avec le statut DRIFTED, listez quelles ressources ont dévié et quelle propriété diffère.✓ Copié
    → Diffs au niveau ressource (par ex. 'SG permet 0.0.0.0/0 mais le modèle dit 10.0.0.0/8')
  3. Décidez : mettez à jour le modèle ou revenez
    Pour chaque déviation, recommandez : l'état en direct est-il intentionnel (mettez à jour le modèle pour correspondre) ou accidentel (revenez la ressource) ? Basez-vous sur la nature de la modification.✓ Copié
    → Recommandation par déviation avec raisonnement

Résultat : Votre IaC de retour en sync avec la réalité, avec un journal de décision.

Pièges
  • La détection de déviation ne capture pas toutes les propriétés pour tous les types de ressources — Vérifiez la documentation CloudFormation pour la liste 'déviation non supportée' ; complétez avec les règles AWS Config pour une couverture complète
Combiner avec : github

Combinaisons

Associez-le à d'autres MCPs pour un effet X10

aws + github

Corréllez une PR de déploiement avec l'alarme CloudWatch résultante — identifiez le commit qui casse

L'alarme CloudWatch prod-latency-p99 s'est déclenchée à 14:22. Trouvez la PR GitHub fusionnée à main la plus proche de ce moment, résumez sa diff, et dites-moi quel bloc a probablement causé la régression.✓ Copié
aws + postgres

Pour Postgres hébergé sur RDS, combinez l'observabilité au niveau AWS avec l'accès SQL

Alarme RDS 'cpu > 80%' sur prod-db-01. Corréllez avec pg_stat_statements — quelles requêtes ont le plus tournées pendant la pointe ?✓ Copié

Exportez les inventaires de ressources AWS vers des CSV locaux pour les documents de conformité

Exportez tous les buckets S3 avec sa config de chiffrement et ses paramètres d'accès public vers /reports/s3-audit-2026-04.csv.✓ Copié

Outils

Ce que ce MCP expose

OutilEntréesQuand appelerCoût
call_aws service: str, operation: str, parameters: object Équivalent CLI AWS générique — tout service, toute opération de lecture usually free; some services (CE) bill per call
describe_stack stack_name: str Introspection CloudFormation free
detect_stack_drift / describe_stack_drift_detection_status stack_name: str Vérifiez la déviation IaC-vs-live free
list_functions / get_function / invoke_function Lambda name, payload? Gérez et testez les Lambdas — invoke est une opération d'écriture, verrouillée invoke costs per Lambda pricing
list_buckets / get_object / list_objects_v2 S3 params Inventaire S3 et accès au contenu standard S3 request pricing
start_query / get_query_results (Logs Insights) logGroupName, queryString, startTime, endTime Analytique de logs sur un ou plusieurs groupes de logs $0.005 per GB scanned
get_metric_data CloudWatch metric query JSON Tirages de métriques en séries chronologiques free tier applies
get_cost_and_usage TimePeriod, Granularity, GroupBy, Metrics Requêtes Cost Explorer $0.01 per API call
list_services / describe_services / list_tasks (ECS) cluster params Introspection cluster/service ECS free
describe_db_instances (RDS) identifier? Inventaire RDS ; utilisez le MCP postgres pour le SQL réel free

Coût et limites

Coût d'exécution

Quota d'API
Par service. La plupart des appels describe/list sont gratuits ; certaines API facturent par appel (Cost Explorer 0,01 $, Logs Insights 0,005 $/GB analysés)
Tokens par appel
200-2000 tokens typiques ; les résultats de Logs Insights peuvent être volumineux — définissez toujours une limite de lignes
Monétaire
Le MCP lui-même est gratuit. Votre facture AWS reflète les appels API que l'agent effectue.
Astuce
Délimitez les fenêtres de temps, délimitez les lignes de résultat, mettez en cache la sortie describe-* par session. Une boucle Logs Insights imprudente sur 30 jours de logs détaillés peut analyser TB de données.

Sécurité

Permissions, secrets, portée

Portées minimales : arn:aws:iam::aws:policy/ReadOnlyAccess (for read-only use)
Stockage des identifiants : Chaîne de credentials AWS standard — variables d'environnement, ~/.aws/credentials, SSO ou rôle instance. Ne codez jamais les clés en dur.
Sortie de données : Direct vers les points de terminaison AWS API (régionaux). Pas de tiers.
Ne jamais accorder : AdministratorAccess iam:* write kms:Decrypt on sensitive keys without scoping

Dépannage

Erreurs courantes et correctifs

Impossible de charger les credentials à partir d'un fournisseur quelconque

Exécutez aws sts get-caller-identity — si cela échoue, corrigez d'abord votre configuration CLI. Le MCP utilise la même chaîne.

Vérifier : aws sts get-caller-identity
AccessDenied sur un appel Describe

Votre rôle manque la permission spécifique. Lisez l'erreur — elle nomme l'action manquante. Ajoutez au rôle ou changez de profil.

Ralentissement : débit dépassé

Vous atteignez les limites de l'API du service (par ex. CloudFormation 1 req/s). Reculez ; la plupart des SDK réessayent automatiquement mais les boucles en vrac dépassent. Ajoutez des sommeil explicites dans les invites multi-appel.

uvx ne peut pas trouver awslabs.<server>

Format du nom du package : awslabs.<name>-mcp-server. Vérifiez le README du référentiel awslabs/mcp pour la liste actuelle — les noms ont changé fin 2025.

Vérifier : uvx --help | head

Alternatives

AWS Labs MCP vs autres

AlternativeQuand l'utiliserCompromis
Cloudflare MCPVous exécutez sur Cloudflare (Workers/R2/D1) au lieu d'AWSCloud différent ; pas un substitut direct
Terraform MCP (community)Vous voulez des workflows IaC-first sur plusieurs cloudsCouverture moins complète du débogage de l'état en direct
Utilisation directe de `aws` CLI via un MCP shellVous voulez que Claude exécute n'importe quelle commande CLI, pas seulement les pré-approuvéesSurface d'attaque beaucoup plus grande ; à éviter sauf si isolée

Plus

Ressources

📖 Lire le README officiel sur GitHub

🐙 Voir les issues ouvertes

🔍 Parcourir les 400+ serveurs MCP et Skills