/ 目錄 / 演練場 / 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. 取得警報詳情與受影響資源
    描述 CloudWatch 警報 'prod-api-5xx-high'。它監控哪個資源、閾值為何、目前狀態為何?✓ 已複製
    → 警報設定加上狀態歷史(何時觸發)
  2. 查詢警報觸發前後的日誌
    針對 /aws/ecs/prod-api 日誌群組,執行 Logs Insights 查詢,時間範圍為警報觸發前 10 分鐘至現在。找出 ERROR 等級的日誌並依訊息樣板分組。✓ 已複製
    → 各錯誤樣板及其出現次數
  3. 與近期部署進行關聯
    列出過去 6 小時內部署至 prod-api 服務的 CodeDeploy 部署記錄。是否有任何部署時間與錯誤飆升相關?✓ 已複製
    → 部署時間軸與錯誤發生時間的對照

結果: 得出具體假設,例如「UTC 14:22 的部署 abc123 與 14:23 的 5xx 開始時間相關」,並附上佐證資料。

注意事項
  • 對大型日誌群組執行 Logs Insights 查詢時,若未設定時間範圍,將產生可觀費用 — 務必加入 @timestamp 界限,且範圍不超過 1 小時;MCP 不會阻止你產生高額帳單
  • 跨帳號資源需要正確的憑證設定檔 — 在每次伺服器呼叫時設定 AWS_PROFILE 環境變數;不要假設預設設定檔就是你要的那個
搭配使用: sentry · github

稽核 S3 儲存桶的公開物件與加密狀態

👤 資安工程師、合規審查人員 ⏱ ~20 min intermediate

何時使用: 在進行滲透測試或稽核前,你需要快速盤點儲存桶的安全狀態。

前置條件
  • S3:List 與 S3:GetBucket* 權限 — 附加 SecurityAudit 受管政策(唯讀)
步驟
  1. 列出儲存桶並取得其政策
    列出此帳號中所有 S3 儲存桶。針對每個桶,取得:公開存取封鎖設定、儲存桶 ACL、儲存桶政策、預設加密設定。✓ 已複製
    → 每個儲存桶的安全狀態表
  2. 標記有風險的儲存桶
    標示出公開存取封鎖關閉、或加密關閉、或儲存桶政策包含 Principal: '*' 的儲存桶。✓ 已複製
    → 有風險的儲存桶簡短清單及原因
  3. 從標記的儲存桶中抽樣物件
    對每個被標記的儲存桶,列出前 5 個物件並顯示其 ACL。是否有任何物件實際上可被外界讀取?✓ 已複製
    → 物件層級的確認,而非僅限於儲存桶層級

結果: 為你的資安審查提供一份按優先順序排列的修補清單。

注意事項
  • 即使 ACL 看起來是私有的,儲存桶政策仍可能授予公開存取 — 兩者都要評估;使用 GetPublicAccessBlock 與 GetBucketPolicyStatus API,不要只看 ACL
搭配使用: filesystem

找出本月 AWS 帳單暴增的原因

👤 工程主管、財務營運人員 ⏱ ~25 min intermediate

何時使用: 帳單上漲 30%,你有 48 小時要向財務部門說明原因。

前置條件
  • Cost Explorer API 存取權限 — 在帳務主控台啟用 Cost Explorer;將 ce:GetCostAndUsage 授予你的角色
步驟
  1. 取得每日費用差異
    取得過去 60 天每日的混合費用合計。找出費用相較於 7 日移動平均上漲超過 20% 的日期。✓ 已複製
    → 每日費用序列及標記的異常日期
  2. 依服務細分異常日費用
    針對費用異常最大的那天,依服務細分費用。是哪個服務造成飆升?✓ 已複製
    → 識別出服務層級的費用驅動因素
  3. 進一步細分至資源層級
    針對該服務,依用量類型與資源標籤細分費用。是哪個具體資源造成的?✓ 已複製
    → 資源層級的元凶 — 例如「us-east-1 的 NAT gateway 傳輸了 12 TB」

結果: 為財務部門提供一段摘要:「費用飆升是由 Y 造成的 X,修復方式為 Z」。

注意事項
  • Cost Explorer 最多有 24 小時延遲 — 今天的費用可能尚未完整呈現 — 將查詢結束時間限制在至少 1 天前;在回答中明確說明此延遲
  • 每次 Cost Explorer API 呼叫費用為 $0.01 — 不要在腳本中無限制地循環查詢;MCP 不會阻止你這樣做
搭配使用: filesystem

透過讀取近期呼叫記錄與日誌,對失敗的 Lambda 進行除錯

👤 無伺服器架構工程師 ⏱ ~15 min intermediate

何時使用: 某個 Lambda 間歇性地拋出錯誤,你想查看輸入內容、錯誤訊息與執行時間趨勢。

步驟
  1. 描述函式基本資訊
    描述 Lambda 函式 my-api-handler。執行環境、記憶體、逾時設定、最後修改時間為何?✓ 已複製
    → 設定快照
  2. 從 CloudWatch Logs 取得近期錯誤
    Logs Insights:針對 /aws/lambda/my-api-handler 過去 2 小時的日誌,顯示包含 requestId、執行時間與初始化時間的錯誤日誌,並依錯誤類型分組。✓ 已複製
    → 各錯誤類別及代表性的 requestId
  3. 取得單一請求的完整紀錄
    挑選一個失敗的 requestId,取得該次呼叫的完整日誌串流 — START、所有輸出、END、REPORT。告訴我發生了什麼事。✓ 已複製
    → 單次呼叫的完整敘述,包含冷啟動時間與錯誤原因

結果: 找出具體錯誤原因,並提供修復方向(增加記憶體、升級相依套件、調整重試設定等)。

注意事項
  • 預置並行會影響冷啟動數據 — 篩選含有 Init Duration 的 REPORT 日誌行 — 那些才是冷啟動;若在除錯暖啟動呼叫,請忽略這些數據
搭配使用: github · sentry

偵測 CloudFormation 堆疊與實際資源之間的設定偏差

👤 平台工程師、DevOps ⏱ ~30 min advanced

何時使用: 你懷疑有人直接在主控台點選並修改了資源,繞過了 IaC 流程。

步驟
  1. 列出堆疊並觸發偏差偵測
    列出所有處於 ACTIVE 狀態的 CloudFormation 堆疊。針對每個堆疊,啟動偏差偵測並輪詢直到全部完成。✓ 已複製
    → 每個堆疊的偏差狀態:IN_SYNC / DRIFTED / NOT_CHECKED
  2. 深入調查有偏差的堆疊
    針對狀態為 DRIFTED 的每個堆疊,列出哪些資源發生偏差,以及哪個屬性有所不同。✓ 已複製
    → 資源層級的差異(例如「安全群組允許 0.0.0.0/0,但範本設定為 10.0.0.0/8」)
  3. 決策:更新範本或還原資源
    針對每項偏差,建議應如何處理:實際狀態是刻意調整的(更新範本以符合現況),還是誤操作(還原資源)?請根據變更的性質判斷。✓ 已複製
    → 每項偏差的建議及理由

結果: 讓你的 IaC 回歸與實際狀態同步,並附有決策記錄。

注意事項
  • 偏差偵測並非涵蓋所有資源類型的所有屬性 — 查閱 CloudFormation 文件中「不支援偏差偵測」的清單;搭配 AWS Config 規則以取得更全面的覆蓋
搭配使用: github

組合

與其他 MCP 搭配,撬動十倍槓桿

aws + github

將部署 PR 與後續觸發的 CloudWatch 警報關聯起來,找出導致問題的提交

CloudWatch 警報 prod-latency-p99 於 14:22 觸發。找出最接近該時間合併至 main 的 GitHub PR,摘要其差異內容,並告訴我哪個程式碼區塊最可能造成此次效能退化。✓ 已複製
aws + postgres

針對 RDS 託管的 Postgres,結合 AWS 層級的可觀測性與 SQL 存取能力

RDS 警報 'cpu > 80%' 發生在 prod-db-01。與 pg_stat_statements 進行關聯 — 飆升期間哪些查詢執行最頻繁?✓ 已複製

將 AWS 資源清單匯出為本機 CSV 檔案,供合規文件使用

將每個 S3 儲存桶及其加密設定與公開存取設定匯出至 /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 跨一個或多個日誌群組的日誌分析 $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 掃描量)
每次呼叫 Token 數
一般為 200-2000 個 token;Logs Insights 的查詢結果可能很大 — 務必設定回傳筆數上限
費用
MCP 本身免費。你的 AWS 帳單會反映代理程式所發出的所有 API 呼叫費用。
提示
限制時間範圍、限制回傳筆數、在同一工作階段中快取 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 次)。請降低頻率;大多數 SDK 會自動重試,但大量循環呼叫會超出限制。在多次呼叫的提示中加入明確的等待間隔。

uvx can't find awslabs.<server>

套件名稱格式為 awslabs.<name>-mcp-server。請查閱 awslabs/mcp 儲存庫的 README 以取得目前的清單 — 名稱在 2025 年底曾有所變更。

驗證: uvx --help | head

替代方案

AWS Labs MCP 對比其他方案

替代方案何時用它替代權衡
Cloudflare MCP你的服務部署在 Cloudflare(Workers/R2/D1)而非 AWS不同雲端供應商,無法直接替換
Terraform MCP (community)你想要跨雲端的 IaC 優先工作流程對實際狀態除錯的覆蓋範圍較有限
Direct `aws` CLI via a shell MCP你希望 Claude 能執行任意 CLI 指令,而不僅限於預先核准的操作攻擊面大幅擴大;除非在沙箱環境中,否則應避免使用

更多

資源

📖 閱讀 GitHub 上的官方 README

🐙 查看未解決的 issue

🔍 瀏覽全部 400+ MCP 伺服器和 Skills