mcpField
A
AWS CodePipeline MCP Server

AWS CodePipeline MCP Server

ローカル
github.com/cuongdevクラウド・インフラ522 週間前に更新

AWS CodePipeline MCP Server について

AWS CodePipeline の管理機能を Windsurf と Cascade に提供する MCP サーバーです。自然言語でパイプラインを扱いたいチーム向けに、実行管理、承認、ログ、メトリクス、Webhook 操作を提供します。

主な機能

  1. 01パイプライン一覧・定義・状態の確認
  2. 02実行の表示・開始・停止
  3. 03アクションの承認や失敗ステージの再試行
  4. 04実行ログとパフォーマンス指標の確認
  5. 05リソースタグと Webhook の管理

活用シーン

  1. 01パイプラインの状態と実行履歴の確認
  2. 02パイプラインの開始や実行の停止
  3. 03手動アクションの承認や失敗ステージの再試行
  4. 04指標の確認と Webhook トリガーの設定

MCP 対応

Windsurf の Cascade に AWS CodePipeline 用ツールを提供し、パイプラインや実行、その関連操作の照会・管理を可能にします。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

AWS CodePipeline MCP Server

これは AWS CodePipeline と連携する Model Context Protocol(MCP)サーバーです。Windsurf と Cascade を通じて、パイプラインを管理できます。このサーバーは、AWS CodePipeline サービスとやり取りするための標準化されたインターフェースを提供します。

作者: Cuong T Nguyen

機能

  • すべてのパイプラインを一覧表示
  • パイプラインの状態と詳細なパイプライン定義を取得
  • パイプラインの実行を一覧表示
  • 手動承認アクションを承認または拒否
  • 失敗したステージを再試行
  • パイプラインの実行をトリガー
  • パイプライン実行ログを表示
  • パイプラインの実行を停止
  • パイプラインリソースにタグを付与
  • パイプラインを自動的にトリガーする Webhook を作成
  • パイプラインのパフォーマンス指標を取得

前提条件

  • Node.js(v14 以降)
  • CodePipeline にアクセスできる AWS アカウント
  • CodePipeline および CloudWatch(指標の読み取り)の権限を持つ AWS 認証情報
  • Cascade AI アシスタントを備えた Windsurf IDE

インストール

  1. このリポジトリをクローンします。
git clone https://github.com/cuongdev/mcp-codepipeline-server.git
cd mcp-codepipeline-server
  1. 依存関係をインストールします。
npm install
  1. .env.example テンプレートを基に .env ファイルを作成します。
cp .env.example .env
  1. AWS の設定を .env ファイルに記入します(.env.example を参照)。
AWS_REGION=us-east-1
AWS_PROFILE=your-aws-profile

注: セキュリティのため、.env ファイルをバージョン管理にコミットしないでください。

AWS 認証

.env に長期間有効なアクセスキーを設定する必要はありません。次のいずれかの方法を選択してください。

方法設定
AWS プロファイル(ローカル開発に推奨)AWS_PROFILE=my-profile — ~/.aws/credentials / ~/.aws/config を使用します
AWS SSOaws configure sso を実行し、次に aws sso login --profile my-sso を実行して、AWS_PROFILE=my-sso を設定します
静的キーAWS_ACCESS_KEY_ID と AWS_SECRET_ACCESS_KEY を設定します(一時的な認証情報の場合は AWS_SESSION_TOKEN も設定します)
IAM ロールロールをアタッチした状態で EC2/ECS/Lambda/EKS 上で実行し、AWS_REGION のみを設定します

アクセスキーを省略すると、AWS SDK はデフォルトの認証情報プロバイダーチェーンを使用します。

AWS プロファイルの作成

プロファイルは、~/.aws/credentials と ~/.aws/config に登録される名前付きエントリです。.env または MCP 設定で AWS_PROFILE にその名前を設定します。

オプション A:アクセスキー(IAM ユーザー)

AWS CLI が必要です。

aws configure --profile codepipeline-dev

次の項目の入力を求められます。

プロンプト例
AWS Access Key IDAKIA...
AWS Secret Access Key(シークレット)
Default region nameus-east-1
Default output formatjson

次に、.env に以下を設定します。

AWS_REGION=us-east-1
AWS_PROFILE=codepipeline-dev
オプション B:AWS SSO(IAM Identity Center)
aws configure sso --profile codepipeline-sso

プロンプトに従って入力します(SSO 開始 URL、SSO リージョン、アカウント、ロール)。その後、MCP サーバーを起動する前にログインします。

aws sso login --profile codepipeline-sso

.env に以下を設定します。

AWS_REGION=us-east-1
AWS_PROFILE=codepipeline-sso

SSO セッションには有効期限があります。認証情報エラーが表示された場合は、aws sso login を再度実行してください。

プロファイルの確認
aws sts get-caller-identity --profile codepipeline-dev
aws codepipeline list-pipelines --region us-east-1 --profile codepipeline-dev

両方のコマンドが成功すれば、MCP サーバーは同じ AWS_PROFILE と AWS_REGION を使用できます。

作成されるファイル(参考)

~/.aws/credentials:

[codepipeline-dev]
aws_access_key_id = AKIA...
aws_secret_access_key = ...

~/.aws/config:

[profile codepipeline-dev]
region = us-east-1
output = json

使い方

プロジェクトのビルド
npm run build
サーバーの起動
npm start

自動再起動を有効にして開発する場合:

npm run dev

Windsurf との連携

この MCP サーバーは Windsurf と連携するように設計されており、自然言語でのリクエストを通じて Cascade が AWS CodePipeline を操作できます。

セットアップ手順
  1. サーバーが実行中であることを確認します。
npm start
  1. サーバー設定を、~/.codeium/windsurf/mcp_config.json にある Windsurf MCP 設定ファイルに追加します。
{
   "mcpServers": {
    "codepipeline": {
      "command": "npx",
      "args": [
        "-y",
        "path/to/mcp-codepipeline-server/dist/index.js"
      ],
      "env": {
        "AWS_REGION": "us-east-1",
        "AWS_PROFILE": "your-aws-profile"
      }
    }
  }
}
  1. ディレクトリが存在しない場合は作成します。
mkdir -p ~/.codeium/windsurf
touch ~/.codeium/windsurf/mcp_config.json
  1. Windsurf を再起動して、新しい MCP サーバー設定を読み込みます
Cascade での使用

設定が完了すると、Windsurf で自然言語を使って AWS CodePipeline を操作できます。たとえば、次のように入力できます。

  • 「CodePipeline のパイプラインをすべて一覧表示して」
  • 「production-deploy パイプラインの現在の状態を表示して」
  • 「test-build パイプラインを実行して」
  • 「data-processing パイプラインのメトリクスを取得して」
  • 「frontend-deploy パイプラインのウェブフックを作成して」

Cascade は、これらのリクエストを適切な MCP ツール呼び出しに変換します。

MCP ツール

パイプラインの基本管理
ツール名説明パラメーター
list_pipelinesCodePipeline のパイプラインをすべて一覧表示しますなし
get_pipeline_state特定のパイプラインの状態を取得しますpipelineName:パイプライン名
list_pipeline_executions特定のパイプラインの実行を一覧表示しますpipelineName:パイプライン名
trigger_pipelineパイプラインの実行を開始しますpipelineName:パイプライン名
stop_pipeline_executionパイプラインの実行を停止しますpipelineName:パイプライン名
executionId:実行 ID
reason:停止する理由(任意)
パイプラインの詳細とメトリクス
ツール名説明パラメーター
get_pipeline_detailsパイプラインの定義全体を取得しますpipelineName:パイプライン名
get_pipeline_execution_logsパイプラインの実行ログを取得しますpipelineName:パイプライン名
executionId:実行 ID
get_pipeline_metricsパイプラインのパフォーマンスメトリクスを取得しますpipelineName:パイプライン名
period:メトリクスの期間(秒、任意)
startTime:メトリクスの開始時刻(任意)
endTime:メトリクスの終了時刻(任意)
パイプラインのアクションと連携
ツール名説明パラメーター
approve_action手動承認アクションを承認または拒否しますpipelineName:パイプライン名
stageName:ステージ名
actionName:アクション名
token:承認トークン
approved:承認または拒否を示すブール値
comments:コメント(任意)
retry_stage失敗したステージを再試行しますpipelineName:パイプライン名
stageName:ステージ名
pipelineExecutionId:実行 ID
tag_pipeline_resourceパイプラインリソースのタグを追加または更新しますpipelineName:パイプライン名
tags:タグ付けに使用するキーと値のペアの配列
create_pipeline_webhookパイプラインのウェブフックを作成しますpipelineName:パイプライン名
webhookName:ウェブフック名
targetAction:ウェブフックの対象アクション
authentication:認証タイプ
authenticationConfiguration:認証設定(任意)
filters:イベントフィルター(任意)

トラブルシューティング

よくある問題
  1. 接続拒否エラー:

    • サーバーが指定したポートで実行されていることを確認してください
    • ポートがファイアウォールによってブロックされていないか確認してください
  2. AWS 認証情報のエラー:

    • プロファイル/SSO の場合:必要に応じて aws sso login --profile YOUR_PROFILE を実行してから、AWS_PROFILE を設定してください
    • 静的キーの場合:.env または MCP の env にある AWS_ACCESS_KEY_ID と AWS_SECRET_ACCESS_KEY を確認してください
    • プリンシパルに CodePipeline(メトリクス用の CloudWatch も含む)の権限があることを確認してください
    • サーバーの起動ログで、AWS credentials: default provider chain と static keys のどちらが表示されているか確認してください
  3. Windsurf が MCP サーバーを検出しない:

    • mcp_config.json ファイルの形式を確認してください
    • サーバー URL が正しいことを確認してください
    • 変更後に Windsurf を再起動してください
ログ

サーバーはコンソールに情報を記録します。トラブルシューティングの際は、これらのログを確認してください。

# Run with more verbose logging
DEBUG=* npm start

例

GitHub 連携用ウェブフックの作成
{
  "pipelineName": "my-pipeline",
  "webhookName": "github-webhook",
  "targetAction": "Source",
  "authentication": "GITHUB_HMAC",
  "authenticationConfiguration": {
    "SecretToken": "my-secret-token"
  },
  "filters": [
    {
      "jsonPath": "$.ref",
      "matchEquals": "refs/heads/main"
    }
  ]
}
パイプラインメトリクスの取得
{
  "pipelineName": "my-pipeline",
  "period": 86400,
  "startTime": "2025-03-10T00:00:00Z",
  "endTime": "2025-03-17T23:59:59Z"
}

ライセンス

ISC

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。