GitHub Actions MCP Server
GitHub Actions API 的 MCP 服务器,使 AI 助手能够管理和操作 GitHub Actions 工作流。兼容多种 AI 编码助手,包括 Claude Desktop、Codeium 和 Windsurf。
功能
- 完整的工作流管理:列出、查看、触发、取消和重新运行工作流
- 工作流运行分析:获取工作流运行及其作业的详细信息
- 全面的错误处理:提供清晰的错误信息,增强细节描述
- 灵活的类型验证:强大的类型检查,优雅处理 API 变化
- 安全设计:超时处理、速率限制和严格的 URL 验证
工具
list_workflows
- 列出 GitHub 仓库中的工作流
- 输入:
owner
(string): 仓库所有者(用户名或组织)repo
(string): 仓库名称page
(可选 number): 分页的页码perPage
(可选 number): 每页结果数(最大 100)- 返回:仓库中的工作流列表
get_workflow
- 获取特定工作流的详细信息
- 输入:
owner
(string): 仓库所有者(用户名或组织)repo
(string): 仓库名称workflowId
(string 或 number): 工作流的 ID 或文件名- 返回:工作流的详细信息
get_workflow_usage
- 获取工作流的使用统计信息
- 输入:
owner
(string): 仓库所有者(用户名或组织)repo
(string): 仓库名称workflowId
(string 或 number): 工作流的 ID 或文件名- 返回:包括计费分钟数在内的使用统计信息
list_workflow_runs
- 列出仓库或特定工作流的所有运行记录
- 输入:
owner
(string): 仓库所有者(用户名或组织)repo
(string): 仓库名称workflowId
(可选 string 或 number): 工作流的 ID 或文件名actor
(可选 string): 按触发工作流的用户过滤branch
(可选 string): 按分支过滤event
(可选 string): 按事件类型过滤status
(可选 string): 按状态过滤created
(可选 string): 按创建日期过滤(YYYY-MM-DD)excludePullRequests
(可选 boolean): 排除由 PR 触发的运行checkSuiteId
(可选 number): 按检查套件 ID 过滤page
(可选 number): 分页的页码perPage
(可选 number): 每页结果数(最大 100)- 返回:符合条件的工作流运行列表
get_workflow_run
- 获取特定工作流运行的详细信息
- 输入:
owner
(string): 仓库所有者(用户名或组织)repo
(string): 仓库名称runId
(number): 工作流运行的 ID- 返回:特定工作流运行的详细信息
get_workflow_run_jobs
- 获取特定工作流运行的作业
- 输入:
owner
(string): 仓库所有者(用户名或组织)repo
(string): 仓库名称runId
(number): 工作流运行的 IDfilter
(可选 string): 按完成状态过滤作业('latest', 'all')page
(可选 number): 分页的页码perPage
(可选 number): 每页结果数(最大 100)- 返回:工作流运行中的作业列表
trigger_workflow
- 触发工作流运行
- 输入:
owner
(string): 仓库所有者(用户名或组织)repo
(string): 仓库名称workflowId
(string 或 number): 工作流的 ID 或文件名ref
(string): 运行工作流的引用(分支、标签或 SHA)inputs
(可选 object): 工作流的输入参数- 返回:触发的工作流运行信息
cancel_workflow_run
- 取消工作流运行
- 输入:
owner
(string): 仓库所有者(用户名或组织)repo
(string): 仓库名称runId
(number): 工作流运行的 ID- 返回:取消操作的状态
rerun_workflow
- 重新运行工作流
- 输入:
owner
(string): 仓库所有者(用户名或组织)repo
(string): 仓库名称runId
(number): 工作流运行的 ID- 返回:重新运行操作的状态
与 AI 编码助手的使用
此 MCP 服务器兼容多种 AI 编码助手,包括 Claude Desktop、Codeium 和 Windsurf。
Claude Desktop
首先,确保已构建项目(见下方的构建部分)。然后,将以下内容添加到
claude_desktop_config.json
中:Codeium
将以下配置添加到 Codeium 的 MCP 配置文件中(通常在 Unix 系统上位于
~/.codeium/windsurf/mcp_config.json
,或在 Windows 上位于 %USERPROFILE%\.codeium\windsurf\mcp_config.json
):Windsurf
Windsurf 使用与 Codeium 相同的配置格式。按照上述 Codeium 的配置方式将服务器添加到 Windsurf 的 MCP 配置中。
构建
Unix/Linux/macOS
克隆仓库并构建:
Windows
对于 Windows 系统,使用 Windows 特定的构建命令:
或者,可以使用包含的批处理文件:
这将在
dist
目录中创建运行 MCP 服务器所需的文件。Windows 特定说明
先决条件
- Node.js(v14 或更高版本)
- npm(v6 或更高版本)
在 Windows 上运行服务器
- 使用批处理文件(最简单的方法):
这将检查构建是否存在,并在需要时进行构建,然后启动服务器。
- 直接使用 npm:
在 Windows 上设置 GitHub 个人访问令牌
为了获得完整功能并避免速率限制,您需要设置 GitHub 个人访问令牌。
选项:
- 将其作为参数传递给批处理文件:
- 将其设置为环境变量:
Windows 问题排查
如果遇到问题:
- 构建错误:确保 TypeScript 已正确安装。
- 权限问题:确保在具有适当权限的命令提示符中运行命令。
- Node.js 错误:验证您使用的是兼容的 Node.js 版本。
使用示例
列出仓库中的工作流:
触发工作流:
问题排查
常见问题
- 认证错误:
- 确保您的 GitHub 令牌具有正确的权限
- 检查令牌是否正确设置为环境变量
- 速率限制:
- 服务器实现了速率限制以避免达到 GitHub API 的限制
- 如果遇到速率限制错误,请减少请求频率
- 类型验证错误:
- GitHub API 响应有时可能与预期模式不同
- 服务器实现了灵活的验证以处理大多数变化
- 如果遇到持续错误,请提交问题
许可证
此 MCP 服务器根据 MIT 许可证授权。
- Author:waytomcp
- URL:https://www.waytomcp.com/article/ko1ynnky/github-actions-mcp-server
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!