gh-actions-mcp
项目简介
gh-actions-mcp 是一个以 MCP 协议实现的服务器端应用,专注提供对 GitHub Actions 的上下文信息、执行工具以及提示模板等能力。通过 MCP 客户端发起的 JSON-RPC 请求,服务器返回资源数据、执行工具调用结果以及渲染好的提示模板,帮助大语言模型在与 GitHub Actions 的集成场景中获取所需信息并执行外部操作。
主要功能点
- 列出仓库中所有工作流(list_workflows)
- 列出指定工作流的运行历史(list_runs)
- 获取单个工作流运行的详情、日志、作业等(get_run、get_run_jobs、get_run_logs、get_log_files、get_artifact 等)
- 触发、取消、重试工作流运行(trigger_workflow、cancel_workflow_run、rerun_workflow、wait_for_run 等)
- 检索并过滤工作流日志(get_workflow_logs、get_log_section、list_log_sections 等)
- 获取和下载工作流产物和工件内容(get_artifact、download_artifact、get_artifact_content 等)
- 查询并汇总 Check Runs、等待 Check 完成等(get_check_status、wait_for_commit_checks 等)
- 任务与运行的状态等待、并发控制和输出格式化(compact/plain 与 full/pretty 输出)
注意:该服务器以 MCP 框架提供后端能力,内部通过 GitHub API 与仓库数据进行交互,并对外暴露符合 MCP 的工具和参数结构,客户端通过 JSON-RPC 与其通信。
安装步骤
- 构建与安装
- 运行构建命令以生成可执行文件
- 使用安装命令将构建产物安装到系统路径
- 依赖准备
- 需要 Go 环境(如 Go 1.20 及以上)
- 需要 GitHub Token,具备访问目标仓库的权限(最常见做法:通过 GITHUB_TOKEN 环境变量或 --token 参数提供;在 macOS 上也支持通过 keychain 获取令牌)
- 令牌获取方式
- 直接通过命令行参数 --token 提供
- 或设置环境变量 GITHUB_TOKEN/GH_TOKEN
- 或在 macOS 上通过 gh auth login 自动获取(需要 GH CLI 配置)
服务器配置(JSON,供 MCP 客户端使用)
说明:MCP 客户端需要知道服务器的启动命令及参数,以下为示例配置,实际使用请将占位符替换为你的环境信息。配置中包含服务器名称、启动命令及默认参数,便于快速接入 MCP 客户端。
{ "server_name": "gh-actions", "command": "/path/to/gh-actions-mcp", "args": [ "--repo-owner", "<your_owner>", "--repo-name", "<your_repo>", "--token", "<your_github_token>" ], "notes": "token 可以通过 GITHUB_TOKEN 环境变量注入,或通过 gh auth login 使用系统钥匙串获取。若使用 macOS,请确保 gh CLI 已登录以支持钥匙串集成。" }
参数说明
- server_name: MCP 客户端在 UI 或日志中显示的服务器名称,应与实际部署的一致
- command: 服务器执行文件的实际路径
- args: 启动时需要的参数,包含仓库拥有者、仓库名称以及访问令牌
- 备注/注释: 说明 token 的获取方式和安全性
基本使用方法
- 启动方式
- 使用标注的命令行参数启动 gh-actions-mcp 服务,传入目标仓库信息与认证信息
- 运行模式
- 服务器默认通过 Stdio 提供 MCP 能力,适配 Claude Desktop 等客户端
- 也可根据需要调整传输模式和端口(如 SSE、HTTP 等,需在代码中相应修改或使用此仓库提供的扩展选项)
- 与 MCP 客户端对接
- MCP 客户端通过 JSON-RPC 发起对上述工具的调用,如 list_workflows、get_run、wait_for_run 等
- 客户端会接收结构化的 JSON 结果或文本结果,方便在对话系统中呈现
- 运行前的准备
- 确保本地或远程 GitHub 令牌可用
- 确保仓库 OWNER、REPO 名字正确无误,否则会在 API 调用阶段返回鉴权或资源定位相关错误