Helm发布MCP服务器
MCP(模型上下文协议)服务器,用于在GitHub存储库中自动发布Dify EE Helm chart。
特性
- 多回购管理:从单个服务器配置和管理多个存储库
- 发布分支创建:从任何git ref(标签、分支、SHA)创建发布分支
- 放行前检查:触发CVE扫描、基准测试、许可证审查和线性检查表
- 发布工作流:通过工作流触发器发布Helm图表
- 基于标签的构建:通过在发布分支上创建标签来构建触发器
- 每回购代币:每个存储库使用不同的GitHub令牌
- 灵活配置:基于YAML的存储库配置,支持环境变量
快速开始
先决条件
- Python 3.11+
- 紫外线 (推荐)或pip
- 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配置
- 复制示例环境文件:
cp .env.example .env- 编辑
.env并设置您的GitHub令牌:
HELM_MCP_GITHUB_TOKEN=ghp_your_token_here- 在中配置您的存储库
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-mcpHTTP 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/mcpMCP客户端配置
对于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_USERNAMEDOCKERHUB_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许可证
麻省理工学院
