AWS CodePipeline MCP Server
This server provides a Model Context Protocol (MCP) interface for managing AWS CodePipeline resources via natural language (e.g., through Windsurf/Cascade) or direct MCP tool calls.
List Pipelines – Retrieve all CodePipeline pipelines in your AWS account
Get Pipeline State – Check the current status of a specific pipeline
Get Pipeline Details – Fetch the full definition and configuration of a pipeline
List Pipeline Executions – View the execution history for a pipeline
Trigger Pipeline – Start a new pipeline execution manually
Stop Pipeline Execution – Halt an in-progress execution, with an optional reason
Approve or Reject Actions – Handle manual approval gates within a pipeline stage, with optional comments
Retry Failed Stages – Re-run a failed stage in a pipeline execution
Get Execution Logs – Retrieve logs for a specific pipeline execution
Get Pipeline Metrics – Fetch CloudWatch performance metrics (e.g., duration, success rate) over a configurable time range
Tag Pipeline Resources – Add or update tags (key-value pairs) on a pipeline
Create Webhooks – Set up webhooks (e.g., GitHub HMAC, IP-based, or unauthenticated) for automatic pipeline triggering with optional event filters
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.
Serves as the runtime environment for the MCP server, required for installation and execution of the AWS CodePipeline integration.
Used for package management and running scripts to build, start, and develop the MCP server for AWS CodePipeline integration.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@AWS CodePipeline MCP Server show me the current state of my production-deploy pipeline"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
AWS CodePipeline MCP Server
This is a Model Context Protocol (MCP) server that integrates with AWS CodePipeline, allowing you to manage your pipelines through Windsurf and Cascade. The server provides a standardized interface for interacting with AWS CodePipeline services.
Author: Cuong T Nguyen
Features
List all pipelines
Get pipeline state and detailed pipeline definitions
List pipeline executions
Approve or reject manual approval actions
Retry failed stages
Trigger pipeline executions
View pipeline execution logs
Stop pipeline executions
Tag pipeline resources
Create webhooks for automatic pipeline triggering
Get pipeline performance metrics
Related MCP server: Log Analyzer with MCP
Prerequisites
Node.js (v14 or later)
AWS account with CodePipeline access
AWS credentials with permissions for CodePipeline and CloudWatch (read metrics)
Windsurf IDE with Cascade AI assistant
Installation
Clone this repository:
git clone https://github.com/cuongdev/mcp-codepipeline-server.git
cd mcp-codepipeline-serverInstall dependencies:
npm installCreate a
.envfile based on the.env.exampletemplate:
cp .env.example .envUpdate the
.envfile with your AWS configuration (see.env.example):
AWS_REGION=us-east-1
AWS_PROFILE=your-aws-profileNote: For security, never commit your
.envfile to version control.
AWS authentication
You do not need long-lived access keys in .env. Pick one approach:
Approach | Configuration |
AWS profile (recommended for local dev) |
|
AWS SSO |
|
Static keys | Set |
IAM role | Run on EC2/ECS/Lambda/EKS with an attached role; set only |
If access keys are omitted, the AWS SDK uses its default credential provider chain.
Creating an AWS profile
A profile is a named entry in ~/.aws/credentials and ~/.aws/config. Set AWS_PROFILE to that name in .env or MCP config.
Option A: Access keys (IAM user)
Requires AWS CLI.
aws configure --profile codepipeline-devYou will be prompted for:
Prompt | Example |
AWS Access Key ID |
|
AWS Secret Access Key | (secret) |
Default region name |
|
Default output format |
|
Then in .env:
AWS_REGION=us-east-1
AWS_PROFILE=codepipeline-devOption B: AWS SSO (IAM Identity Center)
aws configure sso --profile codepipeline-ssoFollow the prompts (SSO start URL, SSO region, account, role). Then log in before starting the MCP server:
aws sso login --profile codepipeline-ssoIn .env:
AWS_REGION=us-east-1
AWS_PROFILE=codepipeline-ssoSSO sessions expire; run aws sso login again when you see credential errors.
Verify the profile
aws sts get-caller-identity --profile codepipeline-dev
aws codepipeline list-pipelines --region us-east-1 --profile codepipeline-devIf both commands succeed, the MCP server can use the same AWS_PROFILE and AWS_REGION.
Files created (reference)
~/.aws/credentials:
[codepipeline-dev]
aws_access_key_id = AKIA...
aws_secret_access_key = ...~/.aws/config:
[profile codepipeline-dev]
region = us-east-1
output = jsonUsage
Build the project
npm run buildStart the server
npm startFor development with auto-restart:
npm run devIntegration with Windsurf
This MCP server is designed to work with Windsurf, allowing Cascade to interact with AWS CodePipeline through natural language requests.
Setup Steps
Make sure the server is running:
npm startAdd the server configuration to your Windsurf MCP config file at
~/.codeium/windsurf/mcp_config.json:
{
"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"
}
}
}
}Create the directory if it doesn't exist:
mkdir -p ~/.codeium/windsurf
touch ~/.codeium/windsurf/mcp_config.jsonRestart Windsurf to load the new MCP server configuration
Using with Cascade
Once configured, you can interact with AWS CodePipeline using natural language in Windsurf. For example:
"List all my CodePipeline pipelines"
"Show me the current state of my 'production-deploy' pipeline"
"Trigger the 'test-build' pipeline"
"Get metrics for my 'data-processing' pipeline"
"Create a webhook for my 'frontend-deploy' pipeline"
Cascade will translate these requests into the appropriate MCP tool calls.
MCP Tools
Core Pipeline Management
Tool Name | Description | Parameters |
| List all CodePipeline pipelines | None |
| Get the state of a specific pipeline |
|
| List executions for a specific pipeline |
|
| Trigger a pipeline execution |
|
| Stop a pipeline execution |
|
Pipeline Details and Metrics
Tool Name | Description | Parameters |
| Get the full definition of a pipeline |
|
| Get logs for a pipeline execution |
|
| Get performance metrics for a pipeline |
|
Pipeline Actions and Integrations
Tool Name | Description | Parameters |
| Approve or reject a manual approval action |
|
| Retry a failed stage |
|
| Add or update tags for a pipeline resource |
|
| Create a webhook for a pipeline |
|
Troubleshooting
Common Issues
Connection refused error:
Ensure the server is running on the specified port
Check if the port is blocked by a firewall
AWS credential errors:
For profiles/SSO: run
aws sso login --profile YOUR_PROFILEif needed, then setAWS_PROFILEFor static keys: verify
AWS_ACCESS_KEY_IDandAWS_SECRET_ACCESS_KEYin.envor MCPenvEnsure the principal has CodePipeline (and CloudWatch for metrics) permissions
Check server startup logs for
AWS credentials: default provider chainvsstatic keys
Windsurf not detecting the MCP server:
Check the
mcp_config.jsonfile formatEnsure the server URL is correct
Restart Windsurf after making changes
Logs
The server logs information to the console. Check these logs for troubleshooting:
# Run with more verbose logging
DEBUG=* npm startExamples
Creating a Webhook for GitHub Integration
{
"pipelineName": "my-pipeline",
"webhookName": "github-webhook",
"targetAction": "Source",
"authentication": "GITHUB_HMAC",
"authenticationConfiguration": {
"SecretToken": "my-secret-token"
},
"filters": [
{
"jsonPath": "$.ref",
"matchEquals": "refs/heads/main"
}
]
}Getting Pipeline Metrics
{
"pipelineName": "my-pipeline",
"period": 86400,
"startTime": "2025-03-10T00:00:00Z",
"endTime": "2025-03-17T23:59:59Z"
}License
ISC
Available Tools
12 toolsapprove_actionC
Approve or reject a manual approval action
Inputs: pipelineName (required), stageName (required), actionName (required), token (required), +2 more.
create_pipeline_webhookC
Create a webhook for a pipeline to enable automatic triggering
Inputs: pipelineName (required), webhookName (required), targetAction (required), authentication (required), +2 more.
get_pipeline_detailsC
Get the full definition of a specific pipeline
Inputs: pipelineName (required).
get_pipeline_execution_logsC
Get logs for a pipeline execution
Inputs: pipelineName (required), executionId (required).
get_pipeline_metricsC
Get performance metrics for a pipeline
Inputs: pipelineName (required), period, startTime, endTime.
get_pipeline_stateC
Get the state of a specific pipeline
Inputs: pipelineName (required).
list_pipeline_executionsC
List executions for a specific pipeline
Inputs: pipelineName (required).
list_pipelinesB
List all CodePipeline pipelines
Inputs: no named parameters.
retry_stageC
Retry a failed stage
Inputs: pipelineName (required), stageName (required), pipelineExecutionId (required).
stop_pipeline_executionC
Stop a pipeline execution
Inputs: pipelineName (required), executionId (required), reason.
tag_pipeline_resourceC
Add or update tags for a pipeline resource
Inputs: pipelineName (required), tags (required).
trigger_pipelineC
Trigger a pipeline execution
Inputs: pipelineName (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 12 tools
Every tool has a clearly distinct purpose targeting specific CodePipeline operations with no ambiguity. For example, get_pipeline_details retrieves definitions while get_pipeline_state shows status, and list_pipeline_executions enumerates runs versus get_pipeline_execution_logs fetches logs. The descriptions reinforce non-overlapping functionality.
All tools follow a consistent verb_noun pattern with snake_case throughout, such as list_pipelines, get_pipeline_details, and stop_pipeline_execution. The naming is predictable and readable, making it easy for agents to infer functionality from the names alone.
With 12 tools, the server is well-scoped for managing AWS CodePipeline operations. Each tool earns its place by covering essential actions like listing, retrieving, triggering, stopping, and monitoring pipelines, without being overly sparse or bloated for the domain.
The tool set provides strong coverage for core pipeline workflows, including CRUD-like operations (list, get, trigger, stop) and lifecycle management (approve, retry, tag). A minor gap is the lack of tools for creating or deleting pipelines, which might require workarounds, but the existing surface supports most agent tasks effectively.
Maintenance
Related MCP Connectors
The Buildkite MCP server exposes Buildkite product data (pipelines, builds, jobs, and test data) to AI tools, editors, and agents through the Model Context Protocol. It provides capabilities including pipeline creation and management, build monitoring with specialized tools like 'wait_for_build', efficient log querying using Apache Parquet conversion and caching, and OAuth-based authentication for both read-write and read-only access to Buildkite's REST API.
The AWS Knowledge MCP server is a fully managed remote Model Context Protocol server that provides real-time access to official AWS content in an LLM-compatible format. It offers structured access to AWS documentation, code samples, blog posts, What's New announcements, Well-Architected best practices, and regional availability information for AWS APIs and CloudFormation resources. Key capabilities include searching and reading documentation in markdown format, getting content recommendations, listing AWS regions, and checking regional availability for services and features.
A Model Context Protocol server for Wix AI tools
MCP server that lets your AI assistant build and deploy apps, hosting each one at a live URL.
Related MCP Servers
- AlicenseCqualityDmaintenanceA Model Context Protocol server allowing Claude AI to interact with AWS resources through natural language, enabling users to query and manage AWS services without using the traditional AWS Console or CLI.36ISC

Log Analyzer with MCPofficial
AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that provides AI assistants access to AWS CloudWatch Logs, enabling browsing, searching, summarizing, and correlating logs across multiple AWS services.170Apache 2.0- AlicenseNot gradedqualityNot gradedmaintenanceA Model Context Protocol (MCP) server that enables AI tools like chatbots to interact with and control Jenkins, allowing users to trigger jobs, check build statuses, and perform other Jenkins operations through natural language.MIT
- AlicenseNot gradedqualityNot gradedmaintenanceProvides a chat interface with natural language processing to deploy and manage AWS resources through an integrated Model Context Protocol (MCP) server.2-