AWS CodePipeline MCP Server

by cuongdev
Verified

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Manages environment variables for the MCP server, including AWS credentials and configuration settings.

  • Used for cloning the MCP server repository during the installation process.

  • Enables creation of webhooks for GitHub integration with AWS CodePipeline, supporting features like triggering pipelines based on GitHub events such as commits to specific branches.

AWS CodePipeline MCP サーバー

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

著者: Cuong T Nguyen

特徴

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

前提条件

  • Node.js (v14以降)
  • CodePipeline にアクセスできる AWS アカウント
  • CodePipeline、CloudWatch、IAM(タグ付け用)の権限を持つ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ファイルを更新します。
AWS_REGION=us-east-1 AWS_ACCESS_KEY_ID=your_access_key_id AWS_SECRET_ACCESS_KEY=your_secret_access_key PORT=3000

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

使用法

プロジェクトを構築する

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_ACCESS_KEY_ID": "your_access_key_id", "AWS_SECRET_ACCESS_KEY": "your_secret_access_key" } } } }
  1. ディレクトリが存在しない場合は作成します。
mkdir -p ~/.codeium/windsurf touch ~/.codeium/windsurf/mcp_config.json
  1. Windsurfを再起動して新しいMCPサーバー構成をロードします

カスケードと併用

設定が完了すると、Windsurf の自然言語を使って AWS CodePipeline を操作できるようになります。例えば、以下のようになります。

  • 「すべての CodePipeline パイプラインを一覧表示する」
  • 「『production-deploy』パイプラインの現在の状態を教えてください」
  • 「「テストビルド」パイプラインをトリガーする」
  • 「データ処理パイプラインのメトリクスを取得する」
  • 「frontend-deploy」パイプライン用のWebhookを作成する

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

MCPツール

コアパイプライン管理

ツール名説明パラメータ
list_pipelinesすべての CodePipeline パイプラインを一覧表示するなし
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パイプラインのWebhookを作成するpipelineName : パイプラインの名前webhookName : ウェブフックの名前targetAction : ウェブフックのターゲットアクションauthentication : 認証タイプauthenticationConfiguration : オプションの認証設定filters : オプションのイベントフィルター

トラブルシューティング

よくある問題

  1. 接続拒否エラー:
    • 指定されたポートでサーバーが実行中であることを確認する
    • ポートがファイアウォールによってブロックされていないか確認する
  2. AWS 認証情報エラー:
    • .envファイルで AWS 認証情報を確認する
    • IAMユーザーに必要な権限があることを確認する
  3. Windsurf が MCP サーバーを検出しません:
    • mcp_config.jsonファイルの形式を確認する
    • サーバーのURLが正しいことを確認してください
    • 変更を加えたらWindsurfを再起動してください

ログ

サーバーはコンソールに情報を記録します。トラブルシューティングのために以下のログを確認してください。

# Run with more verbose logging DEBUG=* npm start

GitHub 統合用の Webhook の作成

{ "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

-
security - not tested
F
license - not found
-
quality - not tested

AWS CodePipeline と統合されたモデルコンテキストプロトコル サーバー。ユーザーは自然言語コマンドを使用して Windsurf および Cascade を通じてパイプラインを管理できます。

  1. Features
    1. Prerequisites
      1. Installation
        1. Usage
          1. Build the project
          2. Start the server
        2. Integration with Windsurf
          1. Setup Steps
          2. Using with Cascade
        3. MCP Tools
          1. Core Pipeline Management
          2. Pipeline Details and Metrics
          3. Pipeline Actions and Integrations
        4. Troubleshooting
          1. Common Issues
          2. Logs
        5. Examples
          1. Creating a Webhook for GitHub Integration
          2. Getting Pipeline Metrics
        6. License
          ID: urm7jwtady