项目简介

本项目是一个实现了Model Context Protocol (MCP) 协议的服务器,旨在为AI助手提供与GitHub Actions交互的能力。通过此服务器,AI助手可以安全、可控地管理GitHub仓库的工作流,例如查看、触发、取消和重新运行工作流等。

主要功能点

  • 全面的工作流管理: 支持列出、查看、触发、取消和重新运行GitHub仓库中的工作流。
  • 工作流运行分析: 能够获取工作流运行的详细信息,包括运行日志和作业信息。
  • 详细的错误处理: 提供清晰的错误信息,方便用户排查问题。
  • 灵活的类型验证: 采用严格的类型检查,确保数据传输的准确性。
  • 安全设计: 内置超时处理、速率限制和URL验证等安全机制,保障服务器稳定运行。

工具列表:

  1. 'list_workflows': 列出仓库中的工作流。
  2. 'get_workflow': 获取特定工作流的详细信息。
  3. 'get_workflow_usage': 获取工作流的资源使用统计。
  4. 'list_workflow_runs': 列出仓库或特定工作流的工作流运行记录。
  5. 'get_workflow_run': 获取特定工作流运行的详细信息。
  6. 'get_workflow_run_jobs': 获取特定工作流运行中的作业列表。
  7. 'trigger_workflow': 触发一个新的工作流运行。
  8. 'cancel_workflow_run': 取消正在运行的工作流。
  9. 'rerun_workflow': 重新运行一个已完成的工作流。

安装步骤

  1. 克隆仓库

    git clone https://github.com/ko1ynnky/github-actions-mcp-server.git
    cd github-actions-mcp-server
  2. 安装依赖

    npm install
  3. 构建项目

    npm run build

    构建完成后,所需文件将生成在 'dist' 目录下。

服务器配置

为了让MCP客户端(例如Claude Desktop)连接到此MCP服务器,您需要在客户端的配置文件中添加服务器信息。以下是一个 'claude_desktop_config.json' 文件的配置示例,您需要根据实际情况进行修改:

{
  "mcpServers": {
    "github-actions": {
      "command": "node",
      "args": [
        "<项目路径>/dist/index.js"  //  将 "<项目路径>" 替换为您的项目绝对路径
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "<您的GitHub Personal Access Token>" // 将 "<您的GitHub Personal Access Token>" 替换为您的GitHub个人访问令牌
      }
    }
  }
}

配置参数说明:

  • 'server name': 'github-actions' (服务器名称,客户端用于识别和调用)
  • 'command': 'node' (运行服务器的命令,这里使用 Node.js)
  • 'args': '["<项目路径>/dist/index.js"]' (启动服务器的参数,指向构建后的 'index.js' 文件)
  • 'env': '{ "GITHUB_PERSONAL_ACCESS_TOKEN": "<您的GitHub Personal Access Token>" }' (环境变量配置,用于设置GitHub API的访问令牌。请务必替换为您的有效Token,并注意Token的权限设置,至少需要 'workflow' 权限。)

基本使用方法

配置完成后,MCP客户端将能够通过 'github-actions' 这个服务器名称来调用上述列出的工具。例如,AI助手可以通过自然语言指令,指示客户端调用 'list_workflows' 工具来获取指定仓库的工作流列表,或者调用 'trigger_workflow' 工具来触发工作流运行。

具体的工具调用和参数传递方式取决于MCP客户端的功能和界面,但通常AI助手可以通过自然语言理解,将用户的指令转换为对MCP服务器特定工具的调用请求。

信息

分类

开发者工具