A community-driven registry for Claude, Cursor, Windsurf, Cline & more. Not affiliated with Anthropic.
Are you the author? Sign in to claim
This is a Model Context Protocol (MCP) server that integrates with AWS CodePipeline, allowing you to manage your pipelin
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
git clone https://github.com/cuongdev/mcp-codepipeline-server.git
cd mcp-codepipeline-server
npm install
.env file based on the .env.example template:cp .env.example .env
.env file with your AWS configuration (see .env.example):AWS_REGION=us-east-1
AWS_PROFILE=your-aws-profile
Note: For security, never commit your
.envfile to version control.
You do not need long-lived access keys in .env. Pick one approach:
| Approach | Configuration |
|---|---|
| AWS profile (recommended for local dev) | AWS_PROFILE=my-profile — uses ~/.aws/credentials / ~/.aws/config |
| AWS SSO | aws configure sso then aws sso login --profile my-sso and set AWS_PROFILE=my-sso |
| Static keys | Set AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY (and AWS_SESSION_TOKEN for temporary creds) |
| IAM role | Run on EC2/ECS/Lambda/EKS with an attached role; set only AWS_REGION |
If access keys are omitted, the AWS SDK uses its default credential provider chain.
A profile is a named entry in ~/.aws/credentials and ~/.aws/config. Set AWS_PROFILE to that name in .env or MCP config.
Requires AWS CLI.
aws configure --profile codepipeline-dev
You will be prompted for:
| Prompt | Example |
|---|---|
| AWS Access Key ID | AKIA... |
| AWS Secret Access Key | (secret) |
| Default region name | us-east-1 |
| Default output format | json |
Then in .env:
AWS_REGION=us-east-1
AWS_PROFILE=codepipeline-dev
aws configure sso --profile codepipeline-sso
Follow the prompts (SSO start URL, SSO region, account, role). Then log in before starting the MCP server:
aws sso login --profile codepipeline-sso
In .env:
AWS_REGION=us-east-1
AWS_PROFILE=codepipeline-sso
SSO sessions expire; run aws sso login again when you see credential errors.
aws sts get-caller-identity --profile codepipeline-dev
aws codepipeline list-pipelines --region us-east-1 --profile codepipeline-dev
If both commands succeed, the MCP server can use the same AWS_PROFILE and AWS_REGION.
~/.aws/credentials:
[codepipeline-dev]
aws_access_key_id = AKIA...
aws_secret_access_key = ...
~/.aws/config:
[profile codepipeline-dev]
region = us-east-1
output = json
npm run build
npm start
For development with auto-restart:
npm run dev
This MCP server is designed to work with Windsurf, allowing Cascade to interact with AWS CodePipeline through natural language requests.
npm start
~/.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"
}
}
}
}
mkdir -p ~/.codeium/windsurf
touch ~/.codeium/windsurf/mcp_config.json
Once configured, you can interact with AWS CodePipeline using natural language in Windsurf. For example:
Cascade will translate these requests into the appropriate MCP tool calls.
| Tool Name | Description | Parameters |
|---|---|---|
list_pipelines | List all CodePipeline pipelines | None |
get_pipeline_state | Get the state of a specific pipeline | pipelineName: Name of the pipeline |
list_pipeline_executions | List executions for a specific pipeline | pipelineName: Name of the pipeline |
trigger_pipeline | Trigger a pipeline execution | pipelineName: Name of the pipeline |
stop_pipeline_execution | Stop a pipeline execution | pipelineName: Name of the pipelineexecutionId: Execution IDreason: Optional reason for stopping |
| Tool Name | Description | Parameters |
|---|---|---|
get_pipeline_details | Get the full definition of a pipeline | pipelineName: Name of the pipeline |
get_pipeline_execution_logs | Get logs for a pipeline execution | pipelineName: Name of the pipelineexecutionId: Execution ID |
get_pipeline_metrics | Get performance metrics for a pipeline | pipelineName: Name of the pipelineperiod: Optional metric period in secondsstartTime: Optional start time for metricsendTime: Optional end time for metrics |
| Tool Name | Description | Parameters |
|---|---|---|
approve_action | Approve or reject a manual approval action | pipelineName: Name of the pipelinestageName: Name of the stageactionName: Name of the actiontoken: Approval tokenapproved: Boolean indicating approval or rejectioncomments: Optional comments |
retry_stage | Retry a failed stage | pipelineName: Name of the pipelinestageName: Name of the stagepipelineExecutionId: Execution ID |
tag_pipeline_resource | Add or update tags for a pipeline resource | pipelineName: Name of the pipelinetags: Array of key-value pairs for tagging |
create_pipeline_webhook | Create a webhook for a pipeline | pipelineName: Name of the pipelinewebhookName: Name for the webhooktargetAction: Target action for the webhookauthentication: Authentication typeauthenticationConfiguration: Optional auth configfilters: Optional event filters |
Connection refused error:
AWS credential errors:
aws sso login --profile YOUR_PROFILE if needed, then set AWS_PROFILEAWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY in .env or MCP envAWS credentials: default provider chain vs static keysWindsurf not detecting the MCP server:
mcp_config.json file formatThe server logs information to the console. Check these logs for troubleshooting:
# Run with more verbose logging
DEBUG=* npm start
{
"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
Run Claude Code as an MCP server so any agent can delegate coding tasks to it
Browser automation using accessibility snapshots instead of screenshots
MCP server integration for DaVinci Resolve Studio
mcp-language-server gives MCP enabled clients access semantic tools like get definition, references, rename, and diagnos