](https://mseep.ai/app/cuongdev-mcp-codepipeline-server)
AWS CodePipeline MCP服务器
这是一个与AWS CodePipeline集成的模型上下文协议(MCP)服务器,允许您通过Windsurf和Cascade管理管道。该服务器提供了一个标准化的接口,用于与AWS CodePipeline服务进行交互。
作者 阮
特性
- 列出所有管道
- 获取管道状态和详细的管道定义
- 列出管道执行情况
- 批准或拒绝手动批准操作
- 重试失败的阶段
- 触发管道执行
- 查看管道执行日志
- 停止管道执行
- 标记管道资源
- 创建用于自动管道触发的webhooks
- 获取管道性能指标
先决条件
- Node.js(v14或更高版本)
- 具有CodePipeline访问权限的AWS帐户
- 具有CodePipeline、CloudWatch和IAM权限的AWS凭据(用于标记)
- 带Cascade AI助手的Windsurf IDE
安装
- 克隆此存储库:
git clone https://github.com/cuongdev/mcp-codepipeline-server.git
cd mcp-codepipeline-server- 安装依赖项:
npm install- 创建一个
.env文件基于.env.example模板:
cp .env.example .env- 更新
.env文件中包含您的AWS凭据和配置:
AWS_REGION=us-east-1
AWS_ACCESS_KEY_ID=your_access_key_id
AWS_SECRET_ACCESS_KEY=your_secret_access_key
PORT=3000备注:为了安全起见,永远不要承诺 .env 文件到版本控制。用法
构建项目
npm run build启动服务器
npm start对于自动重启的开发:
npm run dev与Windsurf集成
此MCP服务器旨在与Windsurf配合使用,允许Cascade通过自然语言请求与AWS CodePipeline交互。
设置步骤
- 确保服务器正在运行:
npm start- 将服务器配置添加到Windsurf MCP配置文件中
~/.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- 重新启动Windsurf以加载新的MCP服务器配置
与Cascade一起使用
配置后,您可以在Windsurf中使用自然语言与AWS CodePipeline进行交互。例如:
- “列出我的所有CodePipeline管道”
- “显示我的‘生产部署’管道的当前状态”
- “触发‘测试构建’流程”
- “获取我的‘数据处理’管道的指标”
- “为我的‘前端部署’管道创建一个webhook”
Cascade将把这些请求转换为适当的MCP工具调用。
MCP工具
核心管道管理
| 工具名称 | 描述 | 参数 |
|---|---|---|
list_pipelines | 列出所有CodePipeline管道 | 无 |
get_pipeline_state | 获取特定管道的状态 | pipelineName:管道名称 |
list_pipeline_executions | 列出特定管道的执行情况 | pipelineName:管道名称 |
trigger_pipeline | 触发管道执行 | pipelineName:管道名称 |
stop_pipeline_execution | 停止管道执行 | pipelineName:管道名称 |
executionId:执行ID reason:停止的可选原因|
管道细节和指标
| 工具名称 | 描述 | 参数 |
|---|---|---|
get_pipeline_details | 获取管道的完整定义 | pipelineName:管道名称 |
get_pipeline_execution_logs | 获取管道执行的日志 | pipelineName:管道名称 |
executionId:执行ID | ||
get_pipeline_metrics | 获取管道的性能指标 | pipelineName:管道名称 |
period:可选度量周期(秒) startTime:指标的可选开始时间 endTime:指标的可选结束时间|
管道操作和集成
| 工具名称 | 描述 | 参数 |
|---|---|---|
approve_action | 批准或拒绝手动批准操作 | pipelineName:管道名称 |
stageName:舞台名称 actionName:行动名称 token:批准令牌 approved:布尔值,表示批准或拒绝 comments:可选评论| | retry_stage |重试失败的阶段| pipelineName:管道名称 stageName:舞台名称 pipelineExecutionId:执行ID| | tag_pipeline_resource |添加或更新管道资源的标签| pipelineName:管道名称 tags:用于标记的键值对数组| | create_pipeline_webhook |为管道创建webhook| pipelineName:管道名称 webhookName:webhook的名称 targetAction:webhook的目标操作 authentication:身份验证类型 authenticationConfiguration:可选身份验证配置 filters:可选事件筛选器|
故障排除
常见问题
- 连接被拒绝错误:
- 确保服务器在指定端口上运行 - 检查端口是否被防火墙阻止
- AWS凭据错误:
- 在中验证您的AWS凭据 .env 文件 - 确保您的IAM用户具有必要的权限
- Windsurf未检测到MCP服务器:
- 检查 mcp_config.json 文件格式 - 确保服务器URL正确 - 更改后重新启动Windsurf
日志
服务器将信息记录到控制台。检查这些日志以进行故障排除:
# Run with more verbose logging
DEBUG=* npm start例子
为GitHub集成创建Webhook
{
"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"
}许可证
国际协调委员会
