Labsco
MCP SERVER

AWS CodePipeline MCP Server

by cuongdev

Drive AWS CodePipeline in plain language — list and trigger pipelines, approve a manual gate, retry a failed stage, read execution logs and CloudWatch metrics.

Build Systems & CI/CD
Summary
Approvals and retries are the part worth having in chat.

Listing pipelines is convenient; approving a manual gate or retrying the stage that just failed is what saves an actual context switch during a deploy. The credential story is the good news here — profiles, SSO and instance roles all work, so nothing needs a permanent access key sitting in a dotfile.

What it is

An MCP server for AWS CodePipeline, written for Windsurf's Cascade assistant but usable from any MCP client. It covers the operational half of a pipeline: what state it is in, what ran, what failed, and the actions you would otherwise take in the console.

What you get
  • `list_pipelines` with no parameters, `get_pipeline_state` for one pipeline, `get_pipeline_details` for its full definition
  • `list_pipeline_executions`, `get_pipeline_execution_logs` for one execution, `trigger_pipeline` to start a run, `stop_pipeline_execution` with an optional reason
  • `approve_action` — approve or reject a manual approval gate, taking the stage, action, token, a boolean and optional comments
  • `retry_stage` — re-run a failed stage of a specific execution
  • `get_pipeline_metrics` — CloudWatch performance metrics over a `period`, `startTime` and `endTime`
  • `tag_pipeline_resource` for key-value tags, and `create_pipeline_webhook` with a target action, authentication type such as `GITHUB_HMAC`, and JSON-path filters so a push to one branch triggers the pipeline
Requirements

An AWS principal with CodePipeline permissions, plus CloudWatch read access if you want metrics. You do not need long-lived keys in a file: set `AWS_PROFILE` to a named profile from `~/.aws/credentials`, or use an SSO profile after `aws sso login`, or run on EC2, ECS, Lambda or EKS with an attached role and set only `AWS_REGION`. Static `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` work too. Node.js v14 or later; clone the repository, `npm install`, `npm run build`, then point the client at `dist/index.js`. Verify the profile first with `aws sts get-caller-identity` — an expired SSO session is the usual cause of a server that starts but cannot see anything. Package `mcp-codepipeline-server` at 1.0.0, ISC.

Setup effort

One command — npx -y path/to/mcp-codepipeline-server/dist/index.js