GitHub Actions 工作流管理服务

用于GitHub Actions API的MCP服务器,使AI助手能够管理和操作GitHub Actions工作流,适用于多种AI编码助手。

  • by ko1ynnky
  • TypeScript
  • 本地部署
  • 41 星标
  • 更新于
在 GitHub 查看 ko1ynnky/github-actions-mcp-server

使用说明

GitHub操作MCP服务器

⚠️ 存档通知:一旦官方GitHub MCP服务器添加了Actions支持,此存储库将很快存档。看 github/github mcp服务器#491 了解官方实施的详细信息。

用于GitHub Actions API的MCP服务器,使人工智能助手能够管理和操作GitHub Action工作流。与多种AI编码助手兼容,包括Claude Desktop、Codeium和Windsurf。

特性

  • 完整的工作流管理:列出、查看、触发、取消和重新运行工作流
  • 工作流运行分析:获取有关工作流运行及其作业的详细信息
  • 全面的错误处理:使用增强的详细信息清除错误消息
  • 灵活的类型验证:稳健的类型检查,优雅地处理API变体
  • 以安全为中心的设计:超时处理、速率限制和严格的URL验证

工具

  1. list_workflows

    • 在GitHub存储库中列出工作流
    • 输入:
      • owner (string):存储库所有者(用户名或组织)
      • repo (string):存储库名称
      • page (可选编号):分页页码
      • perPage (可选数字):每页结果(最多100个)
    • 返回:存储库中的工作流列表
  2. get_workflow

    • 获取特定工作流的详细信息
    • 输入:
      • owner (string):存储库所有者(用户名或组织)
      • repo (string):存储库名称
      • workflowId (字符串或数字):工作流的ID或文件名
    • 返回:有关工作流的详细信息
  3. get_workflow_usage

    • 获取工作流的使用统计信息
    • 输入:
      • owner (string):存储库所有者(用户名或组织)
      • repo (string):存储库名称
      • workflowId (字符串或数字):工作流的ID或文件名
    • 返回:使用统计数据,包括计费分钟数
  4. list_workflow_runs

    • 列出存储库或特定工作流的所有工作流运行
    • 输入:
      • owner (string):存储库所有者(用户名或组织)
      • repo (string):存储库名称
      • workflowId (可选字符串或数字):工作流的ID或文件名
      • actor (可选字符串):按触发工作流的用户筛选
      • branch (可选字符串):按分支筛选
      • event (可选字符串):按事件类型筛选
      • status (可选字符串):按状态筛选
      • created (可选字符串):按创建日期筛选(YYYY-MM-DD)
      • excludePullRequests (可选布尔值):排除PR触发的运行
      • checkSuiteId (可选编号):按检查套件ID筛选
      • page (可选编号):分页页码
      • perPage (可选数字):每页结果(最多100个)
    • 返回:符合条件的工作流运行列表
  5. get_workflow_run

    • 获取特定工作流运行的详细信息
    • 输入:
      • owner (string):存储库所有者(用户名或组织)
      • repo (string):存储库名称
      • runId (number):工作流运行的ID
    • 返回:有关特定工作流运行的详细信息
  6. get_workflow_run_jobs

    • 获取特定工作流运行的作业
    • 输入:
      • owner (string):存储库所有者(用户名或组织)
      • repo (string):存储库名称
      • runId (number):工作流运行的ID
      • filter (可选字符串):按完成状态筛选作业(“latest”、“all”)
      • page (可选编号):分页页码
      • perPage (可选数字):每页结果(最多100个)
    • 返回:工作流运行中的作业列表
  7. trigger_workflow

    • 触发工作流运行
    • 输入:
      • owner (string):存储库所有者(用户名或组织)
      • repo (string):存储库名称
      • workflowId (字符串或数字):工作流的ID或文件名
      • ref (string):运行工作流的引用(分支、标记或SHA)
      • inputs (可选对象):输入工作流参数
    • 返回:有关触发的工作流运行的信息
  8. cancel_workflow_run

    • 取消工作流运行
    • 输入:
      • owner (string):存储库所有者(用户名或组织)
      • repo (string):存储库名称
      • runId (number):工作流运行的ID
    • 返回:取消操作的状态
  9. rerun_workflow

    • 重新运行工作流运行
    • 输入:
      • owner (string):存储库所有者(用户名或组织)
      • repo (string):存储库名称
      • runId (number):工作流运行的ID
    • 返回:重新运行操作的状态

使用AI编码助手

此MCP服务器与多种AI编码助手兼容,包括Claude Desktop、Codeium和Windsurf。

克劳德桌面

首先,确保您已经构建了项目(请参阅下面的构建部分)。然后,将以下内容添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "github-actions": {
      "command": "node",
      "args": [
        "<path-to-mcp-server>/dist/index.js"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
      }
    }
  }
}

可待因

将以下配置添加到Codeium MCP配置文件中(通常位于 ~/.codeium/windsurf/mcp_config.json 基于Unix的系统或 %USERPROFILE%\.codeium\windsurf\mcp_config.json 在Windows上):

{
  "mcpServers": {
    "github-actions": {
      "command": "node",
      "args": [
        "<path-to-mcp-server>/dist/index.js"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
      }
    }
  }
}

帆板运动

Windsurf使用与Codeium相同的配置格式。将服务器添加到您的Windsurf MCP配置中,如上所示。

构建

Unix/Linux/macOS

克隆存储库并构建:

git clone https://github.com/ko1ynnky/github-actions-mcp-server.git
cd github-actions-mcp-server
npm install
npm run build

视窗

对于Windows系统,请使用Windows特定的生成命令:

git clone https://github.com/ko1ynnky/github-actions-mcp-server.git
cd github-actions-mcp-server
npm install
npm run build:win

或者,您可以使用附带的批处理文件:

run-server.bat [optional-github-token]

这将在 dist 您需要运行MCP服务器的目录。

Windows特定说明

先决条件

  • Node.js(v14或更高版本)
  • npm(v6或更高版本)

在Windows上运行服务器

  1. 使用批处理文件(最简单的方法):

    run-server.bat [optional-github-token]
    

    这将检查构建是否存在,必要时进行构建,并启动服务器。

  2. 直接使用npm:

    npm run start
    

在Windows上设置GitHub个人访问令牌

为了获得完整的功能并避免速率限制,您需要设置您的GitHub个人访问令牌。

选项:

  1. 将其作为参数传递给批处理文件:

    run-server.bat your_github_token_here
    
  2. 将其设置为环境变量:

    set GITHUB_PERSONAL_ACCESS_TOKEN=your_github_token_here
    npm run start
    

Windows问题疑难解答

如果您遇到问题:

  1. 构建错误:确保TypeScript安装正确。

    npm install -g typescript
    
  2. 权限问题:确保您在具有适当权限的命令提示符中运行命令。

  3. Node.js错误:验证您使用的是兼容的Node.js版本。

    node --version
    

使用示例

列出存储库中的工作流:

const result = await listWorkflows({
  owner: "your-username",
  repo: "your-repository"
});

触发工作流:

const result = await triggerWorkflow({
  owner: "your-username",
  repo: "your-repository",
  workflowId: "ci.yml",
  ref: "main",
  inputs: {
    environment: "production"
  }
});

故障排除

常见问题

  1. 身份验证错误:

    • 确保您的GitHub令牌具有正确的权限
    • 检查令牌是否正确设置为环境变量
  2. 速率限制:

    • 服务器实现速率限制以避免达到GitHub API限制
    • 如果遇到速率限制错误,请减少请求频率
  3. 类型验证错误:

    • GitHub API响应有时可能与预期的架构不同
    • 服务器实现了灵活的验证来处理大多数变化
    • 如果您遇到持续错误,请打开问题

许可证

此MCP服务器根据MIT许可证获得许可。