GitHub

你是否曾经希望AI能够直接操作你的GitHub仓库,创建Issue、合并PR、搜索代码,甚至自动审查代码?今天要介绍的开源项目GitHub MCP服务器,正是为了实现这个目标而设计的。它由模型上下文协议官方团队开发,深度集成GitHub API,支持代码仓库管理、自动化审查等智能操作。

重要通知:该项目的开发已移至GitHub官方仓库 https://github.com/github/github-mcp-server。本文基于原版介绍,建议使用新版。

项目基本信息

信息项详情
项目名称GitHub
GitHub地址https://github.com/modelcontextprotocol/servers/tree/main/src/github
项目描述深度集成GitHub API接口,支持代码仓库管理、自动化审查等智能操作。开发者可通过标准化协议快速对接GitHub生态,实现CI/CD流程智能化升级,提升研发效能。
作者modelcontextprotocol
开源协议MIT License
开源状态公开状态
LanguagesTypeScript, JavaScript
支持平台Windows / macOS / Linux
最后更新2026-04-23

一、项目介绍

GitHub MCP服务器是MCP官方提供的GitHub集成工具,让AI能够通过标准化协议与GitHub交互。它支持文件操作、仓库管理、搜索功能等,涵盖了GitHub API的核心能力。

这个服务器提供了20+个MCP工具,覆盖以下功能领域:

  • 文件操作:创建/更新文件、批量推送文件、获取文件内容
  • 仓库管理:创建仓库、分叉仓库、创建分支
  • Issue管理:创建、更新、列出、添加评论
  • PR管理:创建、合并、获取详情、列出、添加评论、创建审查
  • 搜索功能:搜索代码、搜索Issues/PRs、搜索用户、搜索仓库
  • 提交管理:列出提交记录

二、核心优势

功能全面

提供了20+个MCP工具,覆盖了GitHub开发流程的各个环节。

自动分支创建

在创建/更新文件或推送更改时,如果分支不存在,则会自动创建,简化工作流程。

批量操作

支持单文件和多文件操作,可以在单个提交中推送多个文件。

高级搜索

支持GitHub的高级搜索语法,可以按语言、仓库、路径、扩展名等搜索代码,按标签、作者、状态等搜索Issues/PRs。

完整的PR工作流

支持创建、审查、合并PR,获取PR的文件变更、状态检查、评论和审查信息。

官方维护

由MCP官方团队维护,与MCP协议同步更新,稳定可靠。

三、适用场景

AI辅助开发

让AI帮你创建Issue、提交代码、创建PR、审查代码,自动化开发流程。

CI/CD集成

在CI/CD流程中集成GitHub MCP,实现自动化的代码提交、PR创建和合并。

代码搜索与分析

AI可以利用高级搜索功能,快速定位特定代码模式、查找示例代码。

项目管理自动化

AI可以根据团队需求,自动创建Issue、分配任务、更新状态。

四、安装教程

系统要求

工具用途下载/安装方式
Node.jsJavaScript运行环境[https://nodejs.org/] (版本要求:18.0 或以上)
GitHub个人访问令牌认证[https://github.com/settings/tokens]
MCP客户端如Claude Desktop、Cursor等根据客户端官网下载

安装步骤

第一步:创建GitHub个人访问令牌

  1. 前往GitHub Settings -> Developer settings -> Personal access tokens -> Tokens (classic)
  2. 点击"Generate new token (classic)"
  3. 选择repo权限(对私有仓库的完全控制权限)
  4. 如果只处理公共仓库,只选择public_repo权限即可
  5. 复制生成的令牌

第二步:配置MCP客户端

对于Claude Desktop

找到配置文件:

  • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows:%APPDATA%\Claude\claude_desktop_config.json

使用NPX(推荐)

{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "你的令牌"
      }
    }
  }
}

使用Docker

{
  "mcpServers": {
    "github": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "-e", "GITHUB_PERSONAL_ACCESS_TOKEN", "mcp/github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "你的令牌"
      }
    }
  }
}

对于VS Code

在用户设置(JSON)中添加:

{
  "mcp": {
    "servers": {
      "github": {
        "command": "npx",
        "args": ["-y", "@modelcontextprotocol/server-github"],
        "env": {
          "GITHUB_PERSONAL_ACCESS_TOKEN": "你的令牌"
        }
      }
    }
  }
}

第三步:重启客户端

保存配置后,重启Claude Desktop或Cursor。

五、使用示例

配置完成后,你就可以在MCP客户端中使用自然语言来操作GitHub了。

示例1:创建或更新文件

用户指令:“在my-repo仓库的main分支上创建一个README.md文件”

AI会调用create_or_update_file工具:

{
  "owner": "username",
  "repo": "my-repo",
  "path": "README.md",
  "content": "# My Project\n\nThis is a description.",
  "message": "Initial commit",
  "branch": "main"
}

示例2:批量推送文件

用户指令:“一次性推送src目录下的所有文件”

AI会调用push_files工具:

{
  "owner": "username",
  "repo": "my-repo",
  "branch": "main",
  "files": [
    {"path": "src/index.js", "content": "console.log('hello');"},
    {"path": "src/utils.js", "content": "export const add = (a,b) => a+b;"}
  ],
  "message": "Add source files"
}

示例3:创建Issue

用户指令:“在my-repo中创建一个标题为‘Bug: 登录页面崩溃’的Issue”

AI会调用create_issue工具:

{
  "owner": "username",
  "repo": "my-repo",
  "title": "Bug: 登录页面崩溃",
  "body": "详细描述...",
  "labels": ["bug", "high-priority"]
}

示例4:创建PR

用户指令:“从feature分支向main分支创建一个PR,标题为‘添加用户认证功能’”

AI会调用create_pull_request工具:

{
  "owner": "username",
  "repo": "my-repo",
  "title": "添加用户认证功能",
  "head": "feature",
  "base": "main",
  "body": "实现了JWT认证"
}

示例5:搜索代码

用户指令:“搜索使用React Hooks的代码示例”

AI会调用search_code工具:

{
  "q": "useState language:javascript"
}

示例6:创建PR审查

用户指令:“批准PR #123”

AI会调用create_pull_request_review工具:

{
  "owner": "username",
  "repo": "my-repo",
  "pull_number": 123,
  "event": "APPROVE",
  "body": "代码质量很好,可以合并"
}

示例7:合并PR

用户指令:“使用squash方式合并PR #123”

AI会调用merge_pull_request工具:

{
  "owner": "username",
  "repo": "my-repo",
  "pull_number": 123,
  "merge_method": "squash"
}

示例8:搜索语法示例

代码搜索

  • q: "import express" language:typescript path:src/
  • q: "useState" repo:facebook/react

Issues搜索

  • q: "memory leak" is:issue is:open label:bug
  • q: "security" author:username

用户搜索

  • q: "fullstack developer" location:London followers:>100

六、常见问题

问题1:提示“Bad credentials”

解决方案:

  • 确认GitHub个人访问令牌正确且未过期
  • 检查令牌是否有repopublic_repo权限
  • 重新生成令牌后重试

问题2:创建文件时分支不存在

解决方案:服务器会自动创建分支,无需手动创建。如果失败,确认有创建分支的权限。

问题3:搜索功能返回结果有限

解决方案:

  • 使用更精确的搜索语法
  • 注意GitHub搜索的限制(最多1000个结果)
  • 使用分页参数per_pagepage

问题4:Docker方式无法连接

解决方案:

  • 确认Docker已安装并运行
  • 检查网络配置
  • 尝试NPX方式作为替代

问题5:PR审查时无法添加行内评论

解决方案:使用comments参数,每个评论包含pathpositionbody

七、总结

GitHub MCP服务器是MCP生态中最全面的代码托管平台集成工具。它提供了20+个工具,覆盖了从代码提交到PR合并的完整开发流程。

这个项目的最大价值在于:

  1. 功能全面:覆盖文件操作、仓库管理、Issue、PR、搜索等核心功能
  2. 官方维护:由MCP官方团队维护,稳定可靠
  3. 智能操作:自动分支创建、批量操作等简化工作流程
  4. 高级搜索:支持GitHub强大的搜索语法
  5. CI/CD就绪:可集成到自动化开发流程中

如果你是GitHub用户,并且希望用AI来辅助开发,GitHub MCP服务器是必备工具。 建议使用GitHub官方新版:https://github.com/github/github-mcp-server

标签: 开发者工具

已有 34 条评论

    1. KevinKeep KevinKeep

      Docker方式适合服务器部署。

    2. LisaLink LisaLink

      VS Code配置需要放在mcp.servers下。

    3. MikeMCP MikeMCP

      创建Issue时可以分配用户和里程碑。

    4. NinaNote NinaNote

      搜索用户支持按位置、关注者筛选。

    5. OscarOpen OscarOpen

      获取提交记录可以按分支筛选。