GitHub MCP Server

GitHub MCP Server

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

Overview

基本能力

产品定位

GitHub MCP Server 是一个专门为开发者设计的工具,旨在通过 MCP 协议提供与 GitHub API 的深度集成,支持自动化工作流和高级交互功能。

核心功能

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

适用场景

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

工具列表

用户工具

  • get_me - 获取认证用户的详细信息

问题工具

  • get_issue - 获取仓库中问题的内容
  • get_issue_comments - 获取 GitHub 问题的评论
  • create_issue - 在 GitHub 仓库中创建新问题
  • add_issue_comment - 向问题添加评论
  • list_issues - 列出和筛选仓库问题
  • update_issue - 更新 GitHub 仓库中的现有问题
  • search_issues - 搜索问题和拉取请求

拉取请求工具

  • get_pull_request - 获取特定拉取请求的详细信息
  • list_pull_requests - 列出和筛选仓库拉取请求
  • merge_pull_request - 合并拉取请求
  • get_pull_request_files - 获取拉取请求中更改的文件列表
  • get_pull_request_status - 获取拉取请求所有状态检查的组合状态
  • update_pull_request_branch - 用基础分支的最新更改更新拉取请求分支
  • get_pull_request_comments - 获取拉取请求的评论
  • get_pull_request_reviews - 获取拉取请求的审查
  • create_pull_request_review - 在拉取请求审查上创建审查
  • create_pull_request - 创建新的拉取请求

仓库工具

  • create_or_update_file - 在仓库中创建或更新单个文件
  • push_files - 在单个提交中推送多个文件
  • search_repositories - 搜索 GitHub 仓库
  • create_repository - 创建新的 GitHub 仓库
  • get_file_contents - 获取文件或目录的内容
  • fork_repository - 分叉仓库
  • create_branch - 创建新分支
  • list_commits - 获取仓库分支的提交

搜索工具

  • search_code - 在 GitHub 仓库中搜索代码
  • search_users - 搜索 GitHub 用户

代码扫描工具

  • get_code_scanning_alert - 获取代码扫描警报
  • list_code_scanning_alerts - 列出仓库的代码扫描警报

常见问题解答

  • 需要 Docker 来运行容器化服务
  • 需要 GitHub 个人访问令牌来访问 GitHub API
  • 支持通过环境变量或配置文件覆盖工具描述

使用教程

使用依赖

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

安装教程

使用 VS Code 安装

  1. 使用 README 顶部的一键安装按钮
  2. 或者手动添加以下 JSON 配置到 VS Code 的用户设置 (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>"
      }
    }
  }
}

从源代码构建

如果没有 Docker,可以在 cmd/github-mcp-server 目录中使用 go 构建二进制文件,并使用 github-mcp-server stdio 命令,同时设置 GITHUB_PERSONAL_ACCESS_TOKEN 环境变量为你的令牌。

调试方式

  • 使用 --gh-host 标志或 GH_HOST 环境变量设置 GitHub Enterprise Server 主机名
  • 使用 --export-translations 标志导出当前翻译
  • 通过环境变量覆盖工具描述,例如:
export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="替代描述"

许可证

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