mcpField
A
AWS CodePipeline MCP Server

AWS CodePipeline MCP Server

本地服务
github.com/cuongdev云与基础设施522 周前更新

关于 AWS CodePipeline MCP Server

一个将 AWS CodePipeline 管理能力提供给 Windsurf 和 Cascade 的 MCP 服务,适用于需要通过自然语言操作流水线的团队。它支持执行管理、审批、日志、指标和 Webhook 等操作。

主要功能

  1. 01列出流水线并查看定义与状态
  2. 02查看、触发或停止执行
  3. 03审批操作或重试失败阶段
  4. 04查看执行日志与性能指标
  5. 05管理资源标签和 Webhook

适用场景

  1. 01检查流水线当前状态与历史执行
  2. 02启动流水线或停止某次执行
  3. 03审批人工操作或重试失败阶段
  4. 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

安装

  1. 克隆此仓库:
git clone https://github.com/cuongdev/mcp-codepipeline-server.git
cd mcp-codepipeline-server
  1. 安装依赖项:
npm install
  1. 根据 .env.example 模板创建 .env 文件:
cp .env.example .env
  1. 使用你的 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 IDAKIA...
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 交互。

设置步骤
  1. 确保服务正在运行:
npm start
  1. 将服务配置添加到 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"
      }
    }
  }
}
  1. 如果目录不存在,请创建该目录:
mkdir -p ~/.codeium/windsurf
touch ~/.codeium/windsurf/mcp_config.json
  1. 重启 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:执行 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为流水线创建 WebhookpipelineName:流水线名称
webhookName:Webhook 名称
targetAction:Webhook 的目标操作
authentication:身份验证类型
authenticationConfiguration:身份验证配置(可选)
filters:事件筛选条件(可选)

故障排除

常见问题
  1. 连接被拒绝错误:

    • 确保服务正在指定端口上运行
    • 检查端口是否被防火墙阻止
  2. AWS 凭证错误:

    • 对于配置文件/SSO:如有需要,运行 aws sso login --profile YOUR_PROFILE,然后设置 AWS_PROFILE
    • 对于静态密钥:检查 .env 或 MCP env 中的 AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY
    • 确保主体具有 CodePipeline(以及用于指标的 CloudWatch)权限
    • 检查服务启动日志,确认显示的是 AWS credentials: default provider chain 还是 static keys
  3. 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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。