mcpField
O
ops-deploy

ops-deploy

github.com/davepoonクラウド・DevOps3.7k76 回インストール今日更新
リポジトリ

ops-deploy について

ops-deployは、ECS、GitHub Actions、Vercelのデプロイ状況を確認するClaudeスキルです。サービスとCIの情報を集めてダッシュボードにまとめ、状況に応じたログ確認や、承認後のデプロイ操作を提示します。

主な機能

  1. 01ECSクラスターとサービスの稼働確認
  2. 02直近のGitHub Actions実行の確認
  3. 03Vercelプロジェクトのデプロイ確認
  4. 04状況に応じた操作を示すダッシュボード
  5. 05デプロイのライブ監視とタスク追跡

活用シーン

  1. 01ECSサービスの稼働数と目標数の確認
  2. 02失敗したCI実行の特定とログ確認
  3. 03プロジェクトごとの最近のVercelデプロイ確認
  4. 04進行中のデプロイの監視

MCP 対応

Vercel MCPツールでプロジェクトとデプロイを一覧表示し、ビルドログを取得します。ツールを利用できない場合に備え、Vercel APIによる代替手段も記載されています。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/davepoon/buildwithclaude --skill ops-deploy

インストール後、Claude Code で/ops-deployを入力して読み込まれたか確認します。

詳細

OPS ► デプロイ状況

実行時コンテキスト

実行前に、利用可能なコンテキストを読み込んでください。

  1. 設定:${CLAUDE_PLUGIN_DATA_DIR:-$HOME/.claude/plugins/data/ops-ops-marketplace}/preferences.json を読み込みます

    • timezone — すべてのデプロイのタイムスタンプを正しいタイムゾーンで表示します
  2. デーモンのヘルス状態:${CLAUDE_PLUGIN_DATA_DIR}/daemon-health.json を読み込みます

    • infra-monitor の状態を確認します — 実行されていない場合は、ECS のデータが古い可能性があることを明記します
  3. シークレット:AWS と Vercel の認証情報が必要です。

    シークレットの解決
    • AWS:$AWS_PROFILE / $AWS_ACCESS_KEY_ID を確認 → doppler secrets get AWS_ACCESS_KEY_ID --plain → 設定にある vault クエリコマンド
    • Vercel トークン:$VERCEL_TOKEN を確認 → doppler secrets get VERCEL_TOKEN --plain → vault

CLI/API リファレンス

aws CLI
コマンド用途出力
aws ecs list-clusters --output jsonすべての ECS クラスター{clusterArns: [...]}
aws ecs list-services --cluster <name> --output jsonクラスター内のサービス{serviceArns: [...]}
aws ecs describe-services --cluster <name> --services <arn> --output jsonサービスのヘルス状態{services: [{serviceName, status, runningCount, desiredCount, pendingCount}]}
aws logs tail /ecs/<service> --since 1h --format shortECS ログログ行
gh CLI(GitHub)
コマンド用途出力
gh run list --repo <owner/repo> --limit 5 --json status,conclusion,name,headBranch,createdAt,databaseIdCI の実行JSON 配列
gh run view <id> --repo <repo> --log-failed失敗した CI のログログ出力
gh run watch <run-id> --repo <repo>CI の実行をストリーミングライブ出力(Monitor と併用)

Agent Teams のサポート

CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 が設定されている場合、デプロイプラットフォームを並行して確認する際は Agent Teams を使用してください。これにより、次のことが可能になります。

  • エージェントがコンテキストを共有し、実行中に連携できます
  • 優先順位をリアルタイムで調整できます
  • エージェントは作業が完了するたびに進捗を報告します

チームの設定(フラグが有効な場合のみ):

TeamCreate("deploy-team")
Agent(team_name="deploy-team", name="ecs-checker", prompt="List all ECS clusters and describe service health, running/desired counts")
Agent(team_name="deploy-team", name="vercel-checker", prompt="List Vercel projects and recent deployments with status")
Agent(team_name="deploy-team", name="ci-checker", prompt="Check GitHub Actions runs across all registered repos for failures")

フラグが設定されていない場合は、標準のファイア・アンド・フォーゲット方式のサブエージェントを使用します。

フェーズ 1 — デプロイデータを並行して収集

ECS サービス(すべてのクラスター)
${CLAUDE_PLUGIN_ROOT}/bin/ops-infra 2>/dev/null || \
aws ecs list-clusters --output json 2>/dev/null
ECS サービスの詳細
for cluster in $(aws ecs list-clusters --output json 2>/dev/null | jq -r '.clusterArns[]'); do
  cluster_name=$(basename "$cluster")
  aws ecs list-services --cluster "$cluster_name" --output json 2>/dev/null | \
    jq -r '.serviceArns[]' | while read svc; do
    aws ecs describe-services --cluster "$cluster_name" --services "$svc" \
      --output json 2>/dev/null | jq '.services[] | {name: .serviceName, desired: .desiredCount, running: .runningCount, pending: .pendingCount, image: (.taskDefinition // "unknown"), status: .status}'
  done
done
GitHub Actions の最近の実行(レジストリ主導)
REGISTRY="${CLAUDE_PLUGIN_ROOT}/scripts/registry.json"
[ -f "$REGISTRY" ] || REGISTRY="${CLAUDE_PLUGIN_ROOT}/scripts/registry.example.json"
for repo in $(jq -r '.projects[] | select(.gsd == true) | .repos[]' "$REGISTRY" 2>/dev/null); do
  echo "=== $repo ==="
  gh run list --repo "$repo" --limit 5 --json status,conclusion,name,headBranch,createdAt,databaseId 2>/dev/null
done
Vercel のデプロイ

mcp__claude_ai_Vercel__list_projects を使用し、各プロジェクトに対して mcp__claude_ai_Vercel__list_deployments を実行します(プロジェクトごとに最大 5 件)。


フェーズ 2 — ダッシュボードを表示

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 OPS ► DEPLOY STATUS — [timestamp]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

ECS SERVICES
 CLUSTER    SERVICE         D/R/P   STATUS   LAST DEPLOY
 ─────────────────────────────────────────────────────
 [cluster]  [service]       [x/x/x] ACTIVE   [time ago]
 ...

VERCEL DEPLOYMENTS
 PROJECT     ENV        STATUS    COMMIT    DEPLOYED
 ─────────────────────────────────────────────────────
 [project]   production  READY    [sha]     [time ago]
 ...

CI/CD PIPELINE
 REPO              BRANCH   WORKFLOW        STATUS    AGE
 ─────────────────────────────────────────────────────
 example-api       main     Deploy API      ✓ success  2h
 example-web       dev      Build            ✗ failure  1h
 ...

PENDING DEPLOYS (branch ready, not yet deployed)
 [repo] [branch] [PR#] [CI status] → needs merge to trigger

──────────────────────────────────────────────────────

表示後、バッチ化した AskUserQuestion 呼び出し(選択肢は最大 4 つ)を使用します。現在の状態に関連するアクションのみを表示してください(例:失敗がなければ「失敗したサービスのログを表示」は省略します)。関連するアクションが 4 つ以下の場合は、1 回の呼び出しを使用します。4 つを超える場合は、次のように分けます。

AskUserQuestion 呼び出し 1:

  [View logs for [failing service]]
  [Trigger manual deploy for [project]]
  [View build logs for [failing CI run]]
  [More actions...]

AskUserQuestion 呼び出し 2(「その他のアクション...」を選択した場合のみ):

  [Check Vercel [project] runtime logs]
  [Open GitHub Actions for [repo]]
  [Back to dashboard]

プロジェクトごとの詳細確認

$ARGUMENTS にプロジェクトのエイリアスがある場合は、そのプロジェクトのデプロイ情報、直近 10 件の CI 実行、およびログを表示するオプションのみを表示します。

デプロイに失敗した場合は、mcp__claude_ai_Vercel__get_deployment_build_logs または ECS CloudWatch ログでログを表示するオプションを提示します。

ユーザーが手動デプロイ(オプション b)を選択した場合は、実行前に AskUserQuestion で確認します。

Trigger deploy for [project]:
  Environment: [production/staging]
  Branch: [branch]
  Last commit: [sha] — [message]

  [Deploy now]  [View diff since last deploy first]  [Cancel]

ユーザーがログの表示を選択した場合は、ログを表示して AskUserQuestion を使用します。

  [Dispatch fix agent for this failure]  [Redeploy]  [Back to dashboard]

ネイティブツールの使用

Monitor — デプロイのライブストリーミング

進行中のデプロイを監視する場合は、Monitor を使用してログをストリーミングします。

Monitor(command: "gh run watch <run-id> --repo <repo>")

ECS のデプロイでは、Monitor(command: "aws ecs wait services-stable --cluster <cluster> --services <service>") を使用します。

Tasks — デプロイの追跡

デプロイするプロジェクトごとに TaskCreate を使用します。デプロイが成功または失敗したら、TaskUpdate で更新します。

WebFetch — Vercel のフォールバック

Vercel MCP ツールを使用できない場合は、Vercel API に直接 WebFetch を使用します。

WebFetch(url: "https://api.vercel.com/v6/deployments?projectId=<id>&limit=5", headers: {"Authorization": "Bearer $VERCEL_TOKEN"})

コメント