Skip to main content
Glama
by cuongdev

AWS CodePipeline MCP サーバー

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

著者: Cuong T Nguyen

特徴

  • すべてのパイプラインを一覧表示する

  • パイプラインの状態と詳細なパイプライン定義を取得する

  • パイプライン実行の一覧

  • 手動承認アクションを承認または拒否する

  • 失敗したステージを再試行する

  • パイプライン実行をトリガーする

  • パイプライン実行ログを表示する

  • パイプラインの実行を停止する

  • パイプラインリソースのタグ付け

  • パイプラインの自動トリガー用のWebhookを作成する

  • パイプラインのパフォーマンス指標を取得する

Related MCP server: Code Merge MCP

前提条件

  • 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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cuongdev/mcp-codepipeline-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server