Helm发布MCP服务器

一个用于自动化管理GitHub仓库中Dify EE Helm图表发布的MCP服务器,支持多仓库管理、发布分支创建、预发布检查和发布工作流触发。

  • by GareArc
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 GareArc/dify-helm-ee-release-mcp

使用说明

Helm发布MCP服务器

MCP(模型上下文协议)服务器,用于在GitHub存储库中自动发布Dify EE Helm chart。

特性

  • 多回购管理:从单个服务器配置和管理多个存储库
  • 发布分支创建:从任何git ref(标签、分支、SHA)创建发布分支
  • 放行前检查:触发CVE扫描、基准测试、许可证审查和线性检查表
  • 发布工作流:通过工作流触发器发布Helm图表
  • 基于标签的构建:通过在发布分支上创建标签来构建触发器
  • 每回购代币:每个存储库使用不同的GitHub令牌
  • 灵活配置:基于YAML的存储库配置,支持环境变量

快速开始

先决条件

  • Python 3.11+
  • 紫外线 (推荐)或pip
  • GitHub个人访问令牌(见下文)

GitHub令牌设置

创建一个 细粒度个人访问令牌 在 GitHub设置>开发者设置>细粒度令牌:

权限 访问级别 必需
目录 读写 克隆、提交、推送、创建分支/标签
拉取请求 读写 创建和合并PR
行动 读写 触发工作流,检查运行状态
元数据 阅读 API访问必需

存储库访问:选择“仅选择存储库”,然后选择要管理的存储库,或选择“所有存储库”以供组织范围访问。

安装

# Clone the repository
git clone https://github.com/yourorg/helm-release-mcp.git
cd helm-release-mcp

# Install dependencies
uv sync

配置

  1. 复制示例环境文件:

    cp .env.example .env
    
  2. 编辑 .env 并设置您的GitHub令牌:

    HELM_MCP_GITHUB_TOKEN=ghp_your_token_here
    
  3. 在中配置您的存储库 config/repos.yaml:

    repositories:
      - name: dify
        github: langgenius/dify
        type: dify
        description: Dify core services
    
       - name: dify-helm
         github: langgenius/dify-helm
         type: dify-helm
         description: Dify Helm charts
         settings:
           github_token: ${DIFY_HELM_GITHUB_TOKEN}
           cve_scan_workflow: .github/workflows/cve.yaml
           benchmark_workflow: .github/workflows/benchmark.yaml
           license_review_workflow: .github/workflows/enterprise-license.yaml
           linear_checklist_workflow: .github/workflows/linear-checklist.yaml
           release_workflow: .github/workflows/release.yaml
    
       - name: dify-enterprise
         github: langgenius/dify-enterprise
         type: dify-enterprise
         description: Dify Enterprise services monorepo
         settings:
           github_token: ${DIFY_ENTERPRISE_GITHUB_TOKEN}
    
       - name: dify-enterprise-frontend
         github: langgenius/dify-enterprise-frontend
         type: dify-enterprise-frontend
         description: Dify Enterprise frontend
         settings:
           github_token: ${DIFY_ENTERPRISE_FRONTEND_GITHUB_TOKEN}
    
    

    看 docs/configuration.md 以获取完整的配置参考。

运行服务器

uv run helm-release-mcp

要在本地通过HTTP运行:

HELM_MCP_TRANSPORT=streamable-http HELM_MCP_HOST=0.0.0.0 HELM_MCP_PORT=8000 uv run helm-release-mcp

启用身份验证后:

HELM_MCP_AUTH_TOKEN=your-secret-token HELM_MCP_TRANSPORT=streamable-http HELM_MCP_HOST=0.0.0.0 HELM_MCP_PORT=8000 uv run helm-release-mcp

HTTP API终结点

当使用HTTP传输运行时,服务器会公开:

端点 需要身份验证 描述
POST /mcp 是(如果 HELM_MCP_AUTH_TOKEN set) MCP协议端点
GET /api/health 否 健康检查端点
GET /api/tool-calls 是 列出待处理的工具调用

身份验证在 Authorization 头球

curl -H "Authorization: Bearer your-secret-token" http://localhost:8000/mcp

MCP客户端配置

对于Claude Desktop,请在MCP设置中添加:

{
  "mcpServers": {
    "helm-release": {
      "command": "uv",
      "args": ["--directory", "/path/to/helm-release-mcp", "run", "helm-release-mcp"],
      "env": {
        "HELM_MCP_GITHUB_TOKEN": "ghp_xxxx",
        "HELM_MCP_AUTH_TOKEN": "your-long-random-token",
        "DIFY_GITHUB_TOKEN": "ghp_yyyy",
        "DIFY_HELM_GITHUB_TOKEN": "ghp_zzzz",
        "DIFY_ENTERPRISE_GITHUB_TOKEN": "ghp_aaaa",
        "DIFY_ENTERPRISE_FRONTEND_GITHUB_TOKEN": "ghp_bbbb"
      }
    }
  }
}

可用工具

全球工具

发现工具

  • list_repos() -列出所有托管存储库
  • get_repo_status(repo) -获取存储库的高级状态
  • get_repo_operations(repo) -获取存储库的可用操作

分支和提交工具

  • create_branch(repo, branch, base_ref) -从git ref(标签、分支或SHA)创建远程分支
  • get_release_branch_info(repo, branch) -通过提交详细信息和工作流运行获取分支信息
  • check_commit_in_branch(repo, commit, branch) -检查提交SHA是否在分支中

公关工具

  • check_pr(repo, pr_number?, pr_url?) -通过数字或URL获取PR状态(状态、检查、评论)
  • check_pr_in_branch(repo, branch, pr_number?, pr_url?) -检查PR是否在分支机构中
  • list_open_prs(repo, base?) -列出打开的拉取请求

工作流工具

  • check_workflow(repo, run_id) -检查工作流运行状态
  • wait_for_workflow(repo, run_id, timeout?, poll_interval?) -等待工作流完成
  • list_workflow_runs(repo, workflow_file?, branch?, tag?, status?, limit?) -列出最近运行的工作流(需要分支或标记)

Dify企业运营

  • dify-enterprise__create_tag(branch, tag) -在分支上创建标签以触发构建/CI

Dify企业前端运营

  • dify-enterprise-frontend__create_tag(branch, tag) -在分支上创建标签以触发构建/CI

Dify Helm操作

  • dify-helm__trigger_cve_scan(branch) -在发布分支上触发容器安全扫描
  • dify-helm__trigger_benchmark(branch) -在发布分支上触发基准测试
  • dify-helm__trigger_license_review(branch) -触发发布分支上的依赖许可证审查
  • dify-helm__trigger_linear_checklist(branch) -在发布分支上触发线性发布检查表
  • dify-helm__release(branch) -触发发布工作流以发布Helm chart

示例工作流程

# 1. Create release branch from any ref (tag, branch, or SHA)
dify__create_release_branch("0.15.3", "release/ee-1.0.0")

# 2. Run pre-release checks on dify-helm
dify-helm__trigger_cve_scan("release/1.0.0")
dify-helm__trigger_benchmark("release/1.0.0")
dify-helm__trigger_license_review("release/1.0.0")
dify-helm__trigger_linear_checklist("release/1.0.0")

# 3. Release Helm chart
dify-helm__release("release/1.0.0")

# 4. Tag enterprise repos to trigger builds
dify-enterprise__create_tag("release/1.0.0", "v1.0.0")
dify-enterprise-frontend__create_tag("release/1.0.0", "v1.0.0")

存储库类型

迪菲

用于Dify核心服务存储库。支持:

  • 从任何git ref(标签、分支或SHA)创建发布分支

dify舵

用于Dify Helm图表存储库。支持:

  • CVE扫描工作流触发
  • 基准测试工作流触发器
  • 许可证审查工作流触发器
  • 线性检查表工作流触发器
  • 发布Helm charts的工作流程

dify企业

对于Dify Enterprise单回购。支持:

  • 在分支上创建标签以触发构建

dify企业前端

用于Dify企业前端存储库。支持:

  • 在分支上创建标签以触发构建

DockerHub发布

创建一个git标签,如下所示 v1.2.3 触发DockerHub发布工作流。配置这些存储库机密:

  • DOCKERHUB_USERNAME
  • DOCKERHUB_TOKEN

图像将发布到 DOCKERHUB_USERNAME/helm-release-mcp 带标签 vX.Y.Z 和 latest.

发展

# Install dev dependencies
uv sync

# Run linting
make lint

# Run type checking
uv run mypy src/

# Run tests
uv run pytest

许可证

麻省理工学院