Cường Tuấn Nguyễn/mcp-codepipeline-server
Built by Metorial, the integration platform for agentic AI.
Cường Tuấn Nguyễn/mcp-codepipeline-server
Server Summary
List all pipelines
Get pipeline state
List pipeline executions
Approve or reject actions
Retry failed stages
Trigger pipeline executions
View execution logs
Stop pipeline executions
Tag pipeline resources
Create webhooks for automation
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 credentials and configuration:AWS_REGION=us-east-1
AWS_ACCESS_KEY_ID=your_access_key_id
AWS_SECRET_ACCESS_KEY=your_secret_access_key
PORT=3000
Note: For security, never commit your
.env
file to version control.
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_ACCESS_KEY_ID": "your_access_key_id",
"AWS_SECRET_ACCESS_KEY": "your_secret_access_key"
}
}
}
}
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:
.env
fileWindsurf 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