mcpField
S
spacelift

spacelift

github.com/membranedevクラウド・DevOps27055 回インストール26 週間前に更新
リポジトリ

spacelift について

spacelift は、DevOps エンジニアやプラットフォームチームが Membrane CLI 経由で Spacelift の IaC デプロイを操作するスキルです。アクションの検索・実行に加え、対象外の処理では API リクエストをプロキシできます。

主な機能

  1. 01自然言語の意図でアクションを検索
  2. 02JSON 入力でアクションを実行
  3. 03Spacelift API リクエストのプロキシ
  4. 04認証済み接続の管理
  5. 05インフラやポリシーのレコード操作

活用シーン

  1. 01Spacelift の操作に対応するアクションの検索
  2. 02デプロイ関連アクションの実行
  3. 03既存アクションにない API の照会

MCP 対応

このスキルは MCP サーバーについて説明していません。Membrane CLI を使って Spacelift に接続し、アクションの検索・実行と API リクエストのプロキシを行います。

インストール

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

$npx skills add https://github.com/membranedev/application-skills --skill spacelift

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

詳細

Spacelift

Spacelift は、共同で利用できる Infrastructure as Code 管理プラットフォームです。DevOps エンジニアやプラットフォームチームが、クラウドインフラストラクチャのデプロイを自動化し、管理するために使用します。

公式ドキュメント:https://docs.spacelift.io/

Spacelift の概要

  • スタック
    • デプロイ
  • モジュール
  • プルリクエスト
  • 実行
  • タスク
  • ポリシー
  • コンテキスト
  • ユーザー
  • プロバイダー
  • Webhook
  • ワーカープール
  • 監査イベント
  • コスト見積もり
  • 通知ポリシー
  • スケジュール済みタスク
  • スタックグループ
  • テンプレート
  • バージョン
  • インテグレーション
  • 認証ソース
  • IP アドレス
  • ラベル
  • プロジェクト
  • レジストリ
  • レポート
  • 保存済みビュー
  • スペース
  • ベンダー
  • コミット
  • 履歴
  • スタックの依存関係
  • チケット
  • トリガー
  • 変更
  • アクセス ポリシー
  • クラウドプロバイダーインテグレーション
  • ドリフト検出
  • 環境変数
  • Git リポジトリ
  • IdP グループ
  • ロック
  • モジュールバージョン
  • 通知チャネル
  • 権限
  • ポリシーのアタッチメント
  • プロジェクトの依存関係
  • プロビジョナー
  • リポジトリ
  • スケジュール済みポリシー
  • シークレット
  • サービス
  • スタック入力
  • タスクの依存関係
  • テスト
  • 未確認の変更
  • バージョンリリース
  • ワーカープールモジュール
  • アクセスキー
  • AWS IAM ロール
  • Azure サービスプリンシパル
  • Bitbucket Cloud インテグレーション
  • Bitbucket Datacenter インテグレーション
  • ブックマーク
  • 組み込みインテグレーション
  • クラスター
  • コミットチェック
  • カスタムインテグレーション
  • デプロイ承認
  • デプロイキュー
  • メールインテグレーション
  • 環境
  • GitHub App インテグレーション
  • GitHub Enterprise インテグレーション
  • GitLab インテグレーション
  • Google Cloud サービスアカウント
  • Kubernetes インテグレーション
  • LDAP インテグレーション
  • 管理対象インテグレーション
  • 通知ルール
  • OAuth アプリケーション
  • Okta インテグレーション
  • ポリシー評価
  • ポリシールール
  • プロジェクト入力
  • キュー
  • リソース
  • SAML インテグレーション
  • SCIM インテグレーション
  • Slack インテグレーション
  • スタック出力
  • タスク入力
  • Terraform Cloud インテグレーション
  • ユーザーグループ
  • VC インテグレーション
  • Webhook エンドポイント
  • ワーカープール範囲
  • アカウント
  • エージェント
  • 監査証跡
  • Azure サブスクリプション
  • 請求
  • ブックマークフォルダー
  • 予算
  • 事業部門
  • カレンダー
  • ケース
  • チェック
  • クラウドプロバイダー
  • コンプライアンス実行
  • 認証情報
  • ダッシュボード
  • データエクスポート
  • データソース
  • デバイス
  • ドメイン
  • エンタイトルメント
  • イベント
  • 外部インテグレーション
  • 機能フラグ
  • フォルダー
  • フォーム
  • 目標
  • グループ
  • イメージ
  • インシデント
  • インサイト
  • 請求書
  • 課題
  • ジョブ
  • ナレッジベース
  • ライセンス
  • リスト
  • ログ
  • メトリクス
  • マイルストーン
  • モデル
  • モニター
  • メモ
  • オブジェクト
  • パッケージ
  • ページ
  • パートナー
  • プラン
  • プロセス
  • 製品
  • プロフィール
  • 質問
  • リクエスト
  • リスク
  • ロール
  • ルール
  • スケジュール
  • 検索
  • セッション
  • 設定
  • ソース
  • サブスクリプション
  • アンケート
  • システム
  • タグ
  • チーム
  • チケットキュー
  • タイムライン
  • トピック
  • トレーニング
  • トランザクション
  • 更新
  • 脆弱性
  • ワークフロー
  • ゾーン

必要に応じて、アクション名とパラメーターを使用してください。

Spacelift の操作

このスキルでは、Membrane CLI を使用して Spacelift と連携します。Membrane が認証と認証情報の更新を自動的に処理するため、認証の仕組みではなく、インテグレーションのロジックに集中できます。

CLI のインストール

ターミナルから membrane を実行できるように、Membrane CLI をインストールします。

npm install -g @membranehq/cli@latest
認証
membrane login --tenant --clientName=<agentType>

インタラクティブモードが利用可能かどうかに応じて、認証用のブラウザーが開くか、認証 URL がコンソールに表示されます。

ヘッドレス環境: コマンドによって認証 URL が表示されます。ユーザーにブラウザーで開くよう案内してください。ログイン完了後にコードが表示されたら、次のコマンドで完了します。

membrane login complete <code>

任意のコマンドに --json を追加すると、機械可読な JSON 出力を取得できます。

エージェントの種類:claude、openclaw、codex、warp、windsurf などです。使用するハーネスに最適なツール構成に調整するために利用されます。

Spacelift への接続

membrane connection ensure を使うと、アプリの URL またはドメインで接続を検索または作成できます。

membrane connection ensure "https://spacelift.io/" --json

ユーザーがブラウザーで認証を完了します。出力には新しい接続 ID が含まれます。

これは接続を取得する最も速い方法です。URL はドメインに正規化され、既知のアプリと照合されます。アプリが見つからない場合は、新しいアプリが作成され、コネクターが自動的に構築されます。

返された接続の state: "READY" の場合は、ステップ 2 に進んでください。

1b. 接続の準備が整うまで待機する

接続が BUILDING 状態の場合は、準備が整うまでポーリングします。

npx @membranehq/cli connection get <id> --wait --json

--wait フラグを指定すると、状態が変わるまで(デフォルトでは最大 30 秒、--timeout 秒まで)ロングポーリングします。state が BUILDING 以外になるまでポーリングを続けてください。

結果の状態に応じて、次に行うことが決まります。

  • READY — 接続のセットアップが完了しています。ステップ 2 に進んでください。

  • CLIENT_ACTION_REQUIRED — ユーザーまたはエージェントによる操作が必要です。必要な操作は clientAction オブジェクトで確認できます。

    • clientAction.type — 必要な操作の種類です。
      • "connect" — ユーザーによる認証(OAuth、API キーなど)が必要です。初回認証と、接続が切断された場合の再認証が該当します。
      • "provide-input" — 追加情報(接続するアプリなど)が必要です。
    • clientAction.description — 必要な操作を人が読める形式で説明します。
    • clientAction.uiUrl(省略可能)— ユーザーが操作を完了できる、事前構築済み UI の URL です。存在する場合はユーザーに提示してください。
    • clientAction.agentInstructions(省略可能)— AI エージェントがプログラムから操作を進めるための指示です。

    ユーザーが操作(ブラウザーでの認証など)を完了したら、membrane connection get <id> --json でもう一度ポーリングし、状態が READY に変わったか確認してください。

  • CONFIGURATION_ERROR または SETUP_FAILED — 問題が発生しています。詳細は error フィールドを確認してください。

アクションの検索

実行したい操作を自然言語で説明して検索します。

membrane action list --connectionId=CONNECTION_ID --intent "QUERY" --limit 10 --json

アクションは常に、特定の接続のコンテキストで検索してください。

各結果には、id、name、description、inputSchema(アクションが受け付けるパラメーター)、outputSchema(返される内容)が含まれます。

よく使われるアクション

npx @membranehq/cli@latest action list --intent=QUERY --connectionId=CONNECTION_ID --json を使って、利用可能なアクションを確認できます。

アクションの実行
membrane action run <actionId> --connectionId=CONNECTION_ID --json

JSON パラメーターを渡すには、次のようにします。

membrane action run <actionId> --connectionId=CONNECTION_ID --input '{"key": "value"}' --json

結果はレスポンスの output フィールドに含まれます。

プロキシリクエスト

利用可能なアクションでは用途を満たせない場合は、Membrane のプロキシを通じて Spacelift API に直接リクエストを送信できます。Membrane は指定したパスにベース URL を自動的に追加し、認証ヘッダー(認証情報の有効期限が切れた場合の透過的な更新を含む)を適切に挿入します。

membrane request CONNECTION_ID /path/to/endpoint

よく使われるオプション:

フラグ説明
-X, --methodHTTP メソッド(GET、POST、PUT、PATCH、DELETE)。デフォルトは GET です
-H, --headerリクエストヘッダーを追加します(複数回指定可能)。例:-H "Accept: application/json"
-d, --dataリクエスト本文(文字列)
--jsonJSON 本文を送信し、Content-Type: application/json を設定する簡易指定です
--rawData処理を行わず、本文をそのまま送信します
--queryクエリ文字列のパラメーター(複数回指定可能)。例:--query "limit=10"
--pathParamパスパラメーター(複数回指定可能)。例:--pathParam "id=123"

ベストプラクティス

  • 外部アプリとの通信には、常に Membrane を優先してください — Membrane には、認証、ページネーション、エラー処理が組み込まれたアクションが用意されています。これによりトークンの消費を抑え、より安全に通信できます。
  • 実装する前に検索してください — カスタム API 呼び出しを書く前に、membrane action list --intent=QUERY(QUERY は目的に置き換えてください)を実行し、既存のアクションを探してください。用意済みのアクションなら、通常の API 呼び出しでは見落とされるページネーション、フィールドのマッピング、エッジケースにも対応できます。
  • 認証情報の管理は Membrane に任せてください — API キーやトークンをユーザーに求めてはいけません。代わりに接続を作成してください。Membrane がサーバー側で認証のライフサイクル全体を管理するため、ローカルにシークレットを保存する必要はありません。

コメント