/ ディレクトリ / プレイグラウンド / AWS Labs MCP
● 公式 awslabs 🔑 自分のキーが必要

AWS Labs MCP

作者 awslabs · awslabs/mcp

AWS Labs 公式コレクション — サービスごとに独立した MCP(S3、Lambda、CloudFormation、ECS、RDS、CloudWatch)を提供。デフォルトは読み取り専用です。

AWS Labs の MCP スイートです。単一の巨大なサーバーではなく、AWS はファミリーとして提供しています:aws-api(汎用 CLI スタイル)に加え、S3、Lambda、CloudFormation、ECS、RDS、CloudWatch、Cost Explorer などの専用サーバーがあります。すべて読み取り優先で、書き込みには環境変数フラグによる明示的なオプトインが必要です。

なぜ使うのか

主な機能

ライブデモ

実際の動作

aws.replay ▶ 準備完了
0/0

インストール

クライアントを選択

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

Claude Desktop → Settings → Developer → Edit Config を開く。保存後、アプリを再起動。

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

Cursor は Claude Desktop と同じ mcpServers スキーマを使用。プロジェクト設定はグローバルより優先。

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

Cline サイドバーの MCP Servers アイコンをクリックし、"Edit Configuration" を選択。

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

Claude Desktop と同じ形式。Windsurf を再起動して反映。

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

Continue はマップではなくサーバーオブジェクトの配列を使用。

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

context_servers に追加。保存時に Zed がホットリロード。

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

ワンライナー。claude mcp list で確認、claude mcp remove で削除。

ユースケース

実用的な使い方: AWS Labs MCP

ログ、メトリクス、直近のデプロイを相関させて CloudWatch アラームをトリアージする

👤 SRE およびオンコールエンジニア ⏱ ~15 min intermediate

使うタイミング: アラームが発火し、コンソールのタブを切り替えることなく「どのサービスか、どのデプロイか、どのログ行か」を特定したいとき。

前提条件
  • CloudWatch + CloudFormation の読み取り権限を持つ AWS 認証情報aws sso login で ReadOnlyAccess マネージドポリシーを持つロールを使用
  • aws-cloudwatch-mcp サーバーが起動していることuvx awslabs.cloudwatch-mcp-server — またはバンドルをインストール
フロー
  1. アラームの詳細と影響を受けるリソースを取得する
    Describe CloudWatch alarm 'prod-api-5xx-high'. What resource does it watch, what threshold, what's the current state?✓ コピーしました
    → アラーム設定と状態履歴(いつ切り替わったか)
  2. 閾値超過前後のログをクエリする
    Run a Logs Insights query over the /aws/ecs/prod-api log group from 10 minutes before the alarm fired until now. Find ERROR-level log lines grouped by message template.✓ コピーしました
    → エラーテンプレートの上位とカウント
  3. 直近のデプロイと相関させる
    List CodeDeploy deployments to the prod-api service in the last 6 hours. Does any deploy time correlate with the error spike?✓ コピーしました
    → エラー発生時刻と並べたデプロイのタイムライン

結果: 「14:22 UTC のデプロイ abc123 が 14:23 の 5xx 発生と相関している」のような具体的な仮説と、それを裏付けるエビデンス。

注意点
  • 時間ウィンドウを指定せずに大きなログループに Logs Insights クエリを実行すると、実際のコストが発生する — 常に @timestamp の範囲を1時間未満に絞ること。MCP は高額な請求を防止しません
  • クロスアカウントリソースには適切な認証プロファイルが必要 — サーバー起動ごとに AWS_PROFILE 環境変数を設定すること。デフォルトプロファイルが目的のものとは限りません
組み合わせ: sentry · github

S3 バケットのパブリックオブジェクトと暗号化ステータスを監査する

👤 セキュリティエンジニア、コンプライアンスレビュアー ⏱ ~20 min intermediate

使うタイミング: ペネトレーションテストや監査の前に、バケットのセキュリティ態勢を素早く把握したいとき。

前提条件
  • S3:List および S3:GetBucket* の権限 — SecurityAudit マネージドポリシー(読み取り専用)をアタッチ
フロー
  1. バケットを一覧し、ポリシーを取得する
    List all S3 buckets in this account. For each, fetch: Public Access Block config, bucket ACL, bucket policy, default encryption config.✓ コピーしました
    → バケットごとのセキュリティ態勢テーブル
  2. リスクのあるバケットをフラグする
    Highlight any bucket where Public Access Block is off, OR encryption is off, OR the bucket policy contains Principal: '*'.✓ コピーしました
    → リスクのあるバケットの短いリストと理由
  3. フラグされたバケットのオブジェクトをサンプリングする
    For each flagged bucket, list the first 5 objects and show their ACLs. Are any actually world-readable?✓ コピーしました
    → バケットレベルだけでなく、オブジェクトレベルでの確認

結果: セキュリティレビュー向けの優先順位付きの修正リスト。

注意点
  • バケットポリシーは ACL がプライベートに見えてもパブリックアクセスを許可できる — 両方を評価すること。ACL だけでなく GetPublicAccessBlock と GetBucketPolicyStatus API を使用してください
組み合わせ: filesystem

今月の AWS 請求額が急増した原因を調査する

👤 エンジニアリングリード、ファイナンスオプス ⏱ ~25 min intermediate

使うタイミング: 請求額が30%上昇し、48時間以内に経理部門へ説明が必要なとき。

前提条件
  • Cost Explorer API へのアクセス — 請求コンソールで Cost Explorer を有効化し、ロールに ce:GetCostAndUsage を付与
フロー
  1. 日次コストの変動を取得する
    Pull total blended cost per day for the last 60 days. Identify any day where cost jumped >20% vs 7-day trailing average.✓ コピーしました
    → 日次コスト推移と異常日のフラグ
  2. 異常日のサービス別内訳を確認する
    For the biggest anomaly day, break down cost by service. Which service drove the spike?✓ コピーしました
    → サービスレベルの要因特定
  3. リソースレベルまでさらに掘り下げる
    For that service, break down by usage-type and resource tag. Which specific resource is responsible?✓ コピーしました
    → リソースレベルの原因特定 — 例:「us-east-1 の NAT ゲートウェイが 12 TB を処理」

結果: 経理部門向けの一段落の回答:「急増の原因は X で、Y が引き起こした。対策は Z」。

注意点
  • Cost Explorer には最大24時間の遅延がある — 当日のコストは完全ではない — クエリの終了日を少なくとも1日前に制限し、回答に遅延がある旨を明記すること
  • Cost Explorer の API コールは1回あたり $0.01 かかる — 上限なしでスクリプト内のループクエリを実行しないこと。MCP は制限しません
組み合わせ: filesystem

直近の呼び出しとログを確認して、障害が発生している Lambda をデバッグする

👤 サーバーレスエンジニア ⏱ ~15 min intermediate

使うタイミング: Lambda が断続的にエラーを発生させており、入力、エラー、実行時間の傾向を確認したいとき。

フロー
  1. 関数の詳細を確認する
    Describe Lambda function my-api-handler. What runtime, memory, timeout, last modified?✓ コピーしました
    → コンフィグのスナップショット
  2. CloudWatch Logs から直近のエラーを取得する
    Logs Insights: for /aws/lambda/my-api-handler in the last 2 hours, show error lines with their requestId, duration, and init time. Group by error type.✓ コピーしました
    → エラーカテゴリと代表的な requestId
  3. 1つのリクエストをエンドツーエンドで取得する
    Pick one failing requestId. Pull the full log stream for that invocation — START, all prints, END, REPORT. Tell me what happened.✓ コピーしました
    → コールドスタートのタイミングとエラー原因を含む、1回の呼び出しのナラティブ

結果: 具体的なエラー原因と修正パス(メモリ増設、依存関係のアップグレード、リトライ設定など)。

注意点
  • プロビジョンドコンカレンシーはコールドスタートの数値を歪める — REPORT 行で Init Duration が存在するものをフィルタリング — それがコールドスタート。ウォームな呼び出しをデバッグ中の場合は無視すること
組み合わせ: github · sentry

CloudFormation スタックと実際のリソースの間のドリフトを検出する

👤 プラットフォームエンジニア、DevOps ⏱ ~30 min advanced

使うタイミング: 誰かがコンソールで直接操作し、IaC の管理外でリソースを変更した疑いがあるとき。

フロー
  1. スタックを一覧し、ドリフト検出をトリガーする
    List all ACTIVE CloudFormation stacks. For each, start a drift detection and poll until all complete.✓ コピーしました
    → スタックごとのドリフトステータス:IN_SYNC / DRIFTED / NOT_CHECKED
  2. ドリフトしたスタックを詳しく調査する
    For each stack with status DRIFTED, list which resources drifted and what property differs.✓ コピーしました
    → リソースレベルの差分(例:「SG は 0.0.0.0/0 を許可しているが、テンプレートでは 10.0.0.0/8」)
  3. テンプレートを更新するか、リソースを元に戻すかを判断する
    For each drift, recommend: is the live state intentional (update the template to match) or accidental (revert the resource)? Base it on the nature of the change.✓ コピーしました
    → ドリフトごとの推奨事項と理由

結果: IaC と実態が再び同期し、判断ログが残った状態。

注意点
  • ドリフト検出はすべてのリソースタイプのすべてのプロパティを検出できるわけではない — CloudFormation のドキュメントで「サポートされないドリフト」リストを確認し、網羅的なカバレッジには AWS Config ルールで補完すること
組み合わせ: github

組み合わせ

他のMCPと組み合わせて10倍の力を

aws + github

デプロイ PR と結果として発生した CloudWatch アラームを相関させ、原因となるコミットを特定する

CloudWatch alarm prod-latency-p99 fired at 14:22. Find the GitHub PR merged to main closest to that time, summarize its diff, and tell me which hunk most likely caused the regression.✓ コピーしました
aws + postgres

RDS でホストされている Postgres に対して、AWS レベルの可観測性と SQL アクセスを組み合わせる

RDS alarm 'cpu > 80%' on prod-db-01. Correlate with pg_stat_statements — which queries ran most during the spike?✓ コピーしました

AWS リソースインベントリをローカル CSV にエクスポートしてコンプライアンス文書を作成する

Export every S3 bucket with its encryption config and public-access settings to /reports/s3-audit-2026-04.csv.✓ コピーしました

ツール

このMCPが提供する機能

ツール入力呼び出すタイミングコスト
call_aws service: str, operation: str, parameters: object 汎用の AWS CLI 相当 — 任意のサービス、任意の読み取りオペレーション usually free; some services (CE) bill per call
describe_stack stack_name: str CloudFormation のイントロスペクション free
detect_stack_drift / describe_stack_drift_detection_status stack_name: str IaC と実態のドリフトを確認 free
list_functions / get_function / invoke_function Lambda name, payload? Lambda の管理とテスト — invoke は書き込み操作のためゲート制御あり invoke costs per Lambda pricing
list_buckets / get_object / list_objects_v2 S3 params S3 のインベントリとコンテンツアクセス standard S3 request pricing
start_query / get_query_results (Logs Insights) logGroupName, queryString, startTime, endTime 1つまたは複数のロググループにまたがるログ分析 $0.005 per GB scanned
get_metric_data CloudWatch metric query JSON 時系列メトリクスの取得 free tier applies
get_cost_and_usage TimePeriod, Granularity, GroupBy, Metrics Cost Explorer のクエリ $0.01 per API call
list_services / describe_services / list_tasks (ECS) cluster params ECS クラスター/サービスのイントロスペクション free
describe_db_instances (RDS) identifier? RDS のインベントリ。実際の SQL には postgres MCP を使用 free

コストと制限

運用コスト

APIクォータ
サービスごとに異なります。ほとんどの describe/list コールは無料ですが、一部の API はコールごとに課金されます(Cost Explorer $0.01、Logs Insights $0.005/GB スキャン)
呼び出しあたりのトークン
通常 200〜2000 トークン。Logs Insights の結果は大きくなりがちなので、常に行数制限を設定してください
金額
MCP 自体は無料です。エージェントが実行する API コールに応じて AWS の請求が発生します。
ヒント
時間ウィンドウを絞り、結果の行数を制限し、describe-* の出力をセッション内でキャッシュしてください。30日分の詳細ログに対する Logs Insights のループクエリは TB 単位のデータをスキャンする可能性があります。

セキュリティ

権限、シークレット、影響範囲

最小スコープ: arn:aws:iam::aws:policy/ReadOnlyAccess (for read-only use)
認証情報の保管: 標準の AWS 認証チェーン — 環境変数、~/.aws/credentials、SSO、またはインスタンスロール。キーをハードコードしないでください。
データ送信先: AWS API エンドポイント(リージョナル)に直接接続します。サードパーティを経由しません。
絶対に付与しない: AdministratorAccess iam:* write kms:Decrypt on sensitive keys without scoping

トラブルシューティング

よくあるエラーと対処法

Could not load credentials from any providers

aws sts get-caller-identity を実行してください。これが失敗する場合は、まず CLI のセットアップを修正してください。MCP は同じ認証チェーンを使用します。

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

ロールに特定の権限が不足しています。エラーメッセージに不足しているアクションが記載されています。ロールに追加するか、プロファイルを切り替えてください。

Throttling: Rate exceeded

サービスの API 制限に達しています(例:CloudFormation 1 req/s)。バックオフしてください。ほとんどの SDK は自動リトライしますが、一括ループは制限を超えます。マルチコールプロンプトに明示的なスリープを追加してください。

uvx can't find awslabs.<server>

パッケージ名の形式:awslabs.<name>-mcp-server。現在のリストは awslabs/mcp リポジトリの README を確認してください — 名前は2025年後半に変更されました。

確認: uvx --help | head

代替案

AWS Labs MCP 他との比較

代替案代わりに使う場面トレードオフ
Cloudflare MCPAWS ではなく Cloudflare(Workers/R2/D1)を使用している場合異なるクラウドのため、そのまま置き換えはできません
Terraform MCP (community)クラウド横断の IaC ファーストワークフローが必要な場合ライブ状態のデバッグカバレッジが少ない
Direct `aws` CLI via a shell MCP事前承認されたコマンドだけでなく、Claude に任意の CLI コマンドを実行させたい場合攻撃対象領域が大幅に拡大するため、サンドボックス環境以外では避けてください

その他

リソース

📖 GitHub の公式 README を読む

🐙 オープンな issue を見る

🔍 400以上のMCPサーバーとSkillsを見る