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.
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.
- `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
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.
One command — npx -y path/to/mcp-codepipeline-server/dist/index.js
