关于 AWS CodePipeline MCP Server
一个将 AWS CodePipeline 管理能力提供给 Windsurf 和 Cascade 的 MCP 服务,适用于需要通过自然语言操作流水线的团队。它支持执行管理、审批、日志、指标和 Webhook 等操作。
主要功能
- 01列出流水线并查看定义与状态
- 02查看、触发或停止执行
- 03审批操作或重试失败阶段
- 04查看执行日志与性能指标
- 05管理资源标签和 Webhook
适用场景
- 01检查流水线当前状态与历史执行
- 02启动流水线或停止某次执行
- 03审批人工操作或重试失败阶段
- 04查看指标并设置自动触发 Webhook
MCP 相关
该 MCP 服务向 Windsurf 的 Cascade 提供 AWS CodePipeline 工具,可用于查询和管理流水线、执行及相关操作。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
AWS CodePipeline MCP 服务
这是一个与 AWS CodePipeline 集成的模型上下文协议(MCP)服务,可让你通过 Windsurf 和 Cascade 管理流水线。该服务提供了与 AWS CodePipeline 服务交互的标准化接口。
作者: Cuong T Nguyen
功能
- 列出所有流水线
- 获取流水线状态和详细定义
- 列出流水线执行记录
- 批准或拒绝手动审批操作
- 重试失败的阶段
- 触发流水线执行
- 查看流水线执行日志
- 停止流水线执行
- 为流水线资源添加标签
- 创建用于自动触发流水线的 Webhook
- 获取流水线性能指标
前提条件
- Node.js(v14 或更高版本)
- 拥有 CodePipeline 访问权限的 AWS 账户
- 拥有 CodePipeline 和 CloudWatch 权限(读取指标)的 AWS 凭证
- 配备 Cascade AI 助手的 Windsurf IDE
安装
- 克隆此仓库:
git clone https://github.com/cuongdev/mcp-codepipeline-server.git
cd mcp-codepipeline-server
- 安装依赖项:
npm install
- 根据
.env.example模板创建.env文件:
cp .env.example .env
- 使用你的 AWS 配置更新
.env文件(请参阅.env.example):
AWS_REGION=us-east-1
AWS_PROFILE=your-aws-profile
注意:为确保安全,切勿将
.env文件提交到版本控制系统。
AWS 身份验证
你无需在 .env 中使用长期访问密钥。选择以下一种方式:
| 方式 | 配置 |
|---|---|
| AWS 配置文件(本地开发推荐) | AWS_PROFILE=my-profile — 使用 ~/.aws/credentials / ~/.aws/config |
| AWS SSO | 运行 aws configure sso,然后运行 aws sso login --profile my-sso 并设置 AWS_PROFILE=my-sso |
| 静态密钥 | 设置 AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY(临时凭证还需设置 AWS_SESSION_TOKEN) |
| IAM 角色 | 在关联了角色的 EC2/ECS/Lambda/EKS 上运行;仅设置 AWS_REGION |
如果未提供访问密钥,AWS SDK 将使用其默认凭证提供程序链。
创建 AWS 配置文件
配置文件是在 ~/.aws/credentials 和 ~/.aws/config 中定义的命名条目。在 .env 或 MCP 配置中将 AWS_PROFILE 设置为该名称。
选项 A:访问密钥(IAM 用户)
需要安装 AWS CLI。
aws configure --profile codepipeline-dev
系统会提示你输入:
| 提示 | 示例 |
|---|---|
| AWS Access Key ID | AKIA... |
| AWS Secret Access Key | (机密) |
| 默认区域名称 | us-east-1 |
| 默认输出格式 | json |
然后在 .env 中设置:
AWS_REGION=us-east-1
AWS_PROFILE=codepipeline-dev
选项 B:AWS SSO(IAM Identity Center)
aws configure sso --profile codepipeline-sso
按照提示操作(SSO 起始 URL、SSO 区域、账户、角色)。然后在启动 MCP 服务前登录:
aws sso login --profile codepipeline-sso
在 .env 中设置:
AWS_REGION=us-east-1
AWS_PROFILE=codepipeline-sso
SSO 会话会过期;出现凭证错误时,请重新运行 aws sso login。
验证配置文件
aws sts get-caller-identity --profile codepipeline-dev
aws codepipeline list-pipelines --region us-east-1 --profile codepipeline-dev
如果两个命令都成功,则 MCP 服务可以使用相同的 AWS_PROFILE 和 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
开发时启用自动重启:
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_PROFILE": "your-aws-profile"
}
}
}
}
- 如果目录不存在,请创建该目录:
mkdir -p ~/.codeium/windsurf
touch ~/.codeium/windsurf/mcp_config.json
- 重启 Windsurf 以加载新的 MCP 服务配置
在 Cascade 中使用
配置完成后,你可以在 Windsurf 中使用自然语言与 AWS CodePipeline 交互。例如:
- “列出我的所有 CodePipeline 流水线”
- “显示我的‘production-deploy’流水线的当前状态”
- “触发‘test-build’流水线”
- “获取我的‘data-processing’流水线的指标”
- “为我的‘frontend-deploy’流水线创建 Webhook”
Cascade 会将这些请求转换为相应的 MCP 工具调用。
MCP 工具
核心流水线管理
| 工具名称 | 描述 | 参数 |
|---|---|---|
list_pipelines | 列出所有 CodePipeline 流水线 | 无 |
get_pipeline_state | 获取指定流水线的状态 | pipelineName:流水线名称 |
list_pipeline_executions | 列出指定流水线的执行记录 | pipelineName:流水线名称 |
trigger_pipeline | 触发流水线执行 | pipelineName:流水线名称 |
stop_pipeline_execution | 停止流水线执行 | pipelineName:流水线名称executionId:执行 IDreason:停止原因(可选) |
流水线详情和指标
| 工具名称 | 描述 | 参数 |
|---|---|---|
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 凭证错误:
- 对于配置文件/SSO:如有需要,运行
aws sso login --profile YOUR_PROFILE,然后设置AWS_PROFILE - 对于静态密钥:检查
.env或 MCPenv中的AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY - 确保主体具有 CodePipeline(以及用于指标的 CloudWatch)权限
- 检查服务启动日志,确认显示的是
AWS credentials: default provider chain还是static keys
- 对于配置文件/SSO:如有需要,运行
-
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"
}
许可证
ISC
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。