AWS CodePipeline
STDIOAWS CodePipeline管理服务器
AWS CodePipeline管理服务器
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
.envfile 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