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.
shell
git clone https://github.com/cuongdev/mcp-codepipeline-server.git
cd mcp-codepipeline-server
shell
npm install
.env
file based on the .env.example
template:shell
cp .env.example .env
.env
file with your AWS credentials and configuration:env
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.
shell
npm start
~/.codeium/windsurf/mcp_config.json
: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"
}
}
}
}
shell
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 pipeline executionId : Execution ID reason : 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 pipeline executionId : Execution ID |
get_pipeline_metrics |
Get performance metrics for a pipeline | pipelineName : Name of the pipeline period : Optional metric period in seconds startTime : Optional start time for metrics endTime : Optional end time for metrics |
Tool Name | Description | Parameters |
---|---|---|
approve_action |
Approve or reject a manual approval action | pipelineName : Name of the pipeline stageName : Name of the stage actionName : Name of the action token : Approval token approved : Boolean indicating approval or rejection comments : Optional comments |
retry_stage |
Retry a failed stage | pipelineName : Name of the pipeline stageName : Name of the stage pipelineExecutionId : Execution ID |
tag_pipeline_resource |
Add or update tags for a pipeline resource | pipelineName : Name of the pipeline tags : Array of key-value pairs for tagging |
create_pipeline_webhook |
Create a webhook for a pipeline | pipelineName : Name of the pipeline webhookName : Name for the webhook targetAction : Target action for the webhook authentication : Authentication type authenticationConfiguration : Optional auth config filters : Optional event filters |
.env
filemcp_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
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.
No releases published
No packages published