M

MCP CodePipeline 服务端

@cuongdev/mcp-codepipeline-server
0 Stars 331 次浏览 cuongdev 更新于 2026-08-23

一个集成了AWS CodePipeline的模型上下文协议服务器,允许用户通过Windsurf和Cascade使用自然语言命令管理管道。

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "codepipeline": {
      "args": [
        "-y",
        "path/to/mcp-codepipeline-server/dist/index.js"
      ],
      "command": "npx",
      "env": {
        "AWS_ACCESS_KEY_ID": "your_access_key_id",
        "AWS_REGION": "us-east-1",
        "AWS_SECRET_ACCESS_KEY": "your_secret_access_key"
      }
    }
  }
}

该服务需要配置环境变量:AWS_ACCESS_KEY_ID、AWS_REGION、AWS_SECRET_ACCESS_KEY、PORT

服务介绍

AWS CodePipeline MCP 服务器

这是一个与 AWS CodePipeline 集成的 Model Context Protocol (MCP) 服务器,允许您通过 Windsurf 和 Cascade 管理您的管道。该服务器提供了一个标准化的接口,用于与 AWS CodePipeline 服务进行交互。

作者: Cuong T Nguyen

功能

  • 列出所有管道
  • 获取管道状态和详细的管道定义
  • 列出管道执行
  • 批准或拒绝手动批准操作
  • 重试失败的阶段
  • 触发管道执行
  • 查看管道执行日志
  • 停止管道执行
  • 标记管道资源
  • 创建 Webhook 以自动触发管道
  • 获取管道性能指标

先决条件

  • Node.js (v14 或更高版本)
  • 具有 CodePipeline 访问权限的 AWS 账户
  • 具有 CodePipeline、CloudWatch 和 IAM(用于标记)权限的 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 文件:
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 进行交互。

设置步骤

  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_ACCESS_KEY_ID": "your_access_key_id",
        "AWS_SECRET_ACCESS_KEY": "your_secret_access_key"
      }
    }
  }
}
  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: 执行 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: 可选事件过滤器

故障排除

常见问题

  1. 连接被拒绝错误:

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

    • .env文件中验证您的AWS凭据
    • 确保您的IAM用户具有必要的权限
  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

相关 MCP 服务