GitHub MCP Server

GitHub MCP Server

site icon
2025.04.14 0
GoGitHub 集成开发工具自动化开发效率
GitHub MCP Server 是一个基于 Model Context Protocol (MCP) 的服务,提供与 GitHub API 的无缝集成,为开发者和工具提供高级自动化和交互能力。
View on GitHub

Overview

基本能力

产品定位

GitHub MCP Server 是一个为开发者设计的工具,旨在通过 MCP 协议提供对 GitHub API 的高级访问和自动化能力。

核心功能

  • 与 GitHub API 的无缝集成
  • 提供多种工具用于管理 GitHub 仓库、问题、拉取请求等
  • 支持 GitHub Enterprise Server
  • 支持国际化描述覆盖

适用场景

  • 自动化 GitHub 工作流和流程
  • 从 GitHub 仓库提取和分析数据
  • 构建与 GitHub 生态系统交互的 AI 工具和应用程序

工具列表

  1. 用户工具
  2. get_me: 获取认证用户的详细信息

  3. 问题工具

  4. get_issue: 获取仓库中问题的内容
  5. get_issue_comments: 获取问题的评论
  6. create_issue: 创建新问题
  7. add_issue_comment: 添加问题评论
  8. list_issues: 列出和过滤仓库问题
  9. update_issue: 更新现有问题
  10. search_issues: 搜索问题和拉取请求

  11. 拉取请求工具

  12. get_pull_request: 获取特定拉取请求的详细信息
  13. list_pull_requests: 列出和过滤仓库拉取请求
  14. merge_pull_request: 合并拉取请求
  15. get_pull_request_files: 获取拉取请求中更改的文件列表
  16. get_pull_request_status: 获取拉取请求的所有状态检查的合并状态
  17. update_pull_request_branch: 用基础分支的最新更改更新拉取请求分支
  18. get_pull_request_comments: 获取拉取请求的评论
  19. get_pull_request_reviews: 获取拉取请求的审查
  20. create_pull_request_review: 创建拉取请求审查
  21. create_pull_request: 创建新拉取请求
  22. update_pull_request: 更新现有拉取请求

  23. 仓库工具

  24. create_or_update_file: 创建或更新仓库中的单个文件
  25. push_files: 在单个提交中推送多个文件
  26. search_repositories: 搜索 GitHub 仓库
  27. create_repository: 创建新 GitHub 仓库
  28. get_file_contents: 获取文件或目录内容
  29. fork_repository: 分叉仓库
  30. create_branch: 创建新分支
  31. list_commits: 获取仓库分支的提交

  32. 搜索工具

  33. search_code: 跨 GitHub 仓库搜索代码
  34. search_users: 搜索 GitHub 用户

  35. 代码扫描工具

  36. get_code_scanning_alert: 获取代码扫描警报
  37. list_code_scanning_alerts: 列出仓库的代码扫描警报

常见问题解答

  1. 如何设置 GitHub Enterprise Server? 使用 --gh-host 标志或设置 GH_HOST 环境变量来指定 GitHub Enterprise Server 主机名

  2. 如何覆盖工具描述? 创建 github-mcp-server-config.json 文件或使用 GITHUB_MCP_ 前缀的环境变量

使用教程

使用依赖

  1. 安装 Docker
  2. 创建 GitHub 个人访问令牌

安装教程

使用 VS Code

  1. 使用 README 顶部的一键安装按钮
  2. 或手动添加以下 JSON 配置到用户设置 (JSON) 文件:
{
  "mcp": {
    "inputs": [
      {
        "type": "promptString",
        "id": "github_token",
        "description": "GitHub Personal Access Token",
        "password": true
      }
    ],
    "servers": {
      "github": {
        "command": "docker",
        "args": [
          "run",
          "-i",
          "--rm",
          "-e",
          "GITHUB_PERSONAL_ACCESS_TOKEN",
          "ghcr.io/github/github-mcp-server"
        ],
        "env": {
          "GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}"
        }
      }
    }
  }
}

使用 Claude Desktop

{
  "mcpServers": {
    "github": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "ghcr.io/github/github-mcp-server"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
      }
    }
  }
}

从源代码构建

cd cmd/github-mcp-server
go build
GITHUB_PERSONAL_ACCESS_TOKEN=your_token ./github-mcp-server stdio

调试方式

  1. 确保 Docker 正在运行
  2. 验证 GitHub 个人访问令牌是否有效
  3. 检查环境变量是否正确设置
  4. 使用 --export-translations 标志导出当前翻译以进行配置验证
./github-mcp-server --export-translations
cat github-mcp-server-config.json

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。