GitHub MCP Server

GitHub MCP Server

通过 GitHub API 实现与 GitHub 的交互,支持文件操作、仓库管理、高级搜索和问题跟踪,并提供全面的错误处理和自动分支创建功能。

编程文档访问
Git管理工具
访问服务器

Tools

create_or_update_file

Create or update a single file in a GitHub repository

search_repositories

Search for GitHub repositories

create_repository

Create a new GitHub repository in your account

get_file_contents

Get the contents of a file or directory from a GitHub repository

push_files

Push multiple files to a GitHub repository in a single commit

create_issue

Create a new issue in a GitHub repository

create_pull_request

Create a new pull request in a GitHub repository

fork_repository

Fork a GitHub repository to your account or specified organization

create_branch

Create a new branch in a GitHub repository

README

GitHub MCP 服务器

用于 GitHub API 的 MCP 服务器,支持文件操作、仓库管理、搜索功能等。

功能

  • 自动分支创建: 在创建/更新文件或推送更改时,如果分支不存在,则自动创建分支
  • 全面的错误处理: 针对常见问题提供清晰的错误消息
  • Git 历史记录保留: 操作维护正确的 Git 历史记录,无需强制推送
  • 批量操作: 支持单文件和多文件操作
  • 高级搜索: 支持搜索代码、问题/PR 和用户

工具

  1. create_or_update_file

    • 在仓库中创建或更新单个文件
    • 输入:
      • owner (string): 仓库所有者(用户名或组织)
      • repo (string): 仓库名称
      • path (string): 创建/更新文件的路径
      • content (string): 文件内容
      • message (string): 提交消息
      • branch (string): 在哪个分支中创建/更新文件
      • sha (可选 string): 被替换文件的 SHA(用于更新)
    • 返回: 文件内容和提交详情
  2. push_files

    • 在单个提交中推送多个文件
    • 输入:
      • owner (string): 仓库所有者
      • repo (string): 仓库名称
      • branch (string): 推送到的分支
      • files (array): 要推送的文件,每个文件都包含 pathcontent
      • message (string): 提交消息
    • 返回: 更新后的分支引用
  3. search_repositories

    • 搜索 GitHub 仓库
    • 输入:
      • query (string): 搜索查询
      • page (可选 number): 分页的页码
      • perPage (可选 number): 每页结果数(最多 100)
    • 返回: 仓库搜索结果
  4. create_repository

    • 创建一个新的 GitHub 仓库
    • 输入:
      • name (string): 仓库名称
      • description (可选 string): 仓库描述
      • private (可选 boolean): 仓库是否应为私有
      • autoInit (可选 boolean): 是否使用 README 初始化
    • 返回: 创建的仓库详情
  5. get_file_contents

    • 获取文件或目录的内容
    • 输入:
      • owner (string): 仓库所有者
      • repo (string): 仓库名称
      • path (string): 文件/目录的路径
      • branch (可选 string): 从哪个分支获取内容
    • 返回: 文件/目录内容
  6. create_issue

    • 创建一个新的 issue
    • 输入:
      • owner (string): 仓库所有者
      • repo (string): 仓库名称
      • title (string): Issue 标题
      • body (可选 string): Issue 描述
      • assignees (可选 string[]): 要分配的用户名
      • labels (可选 string[]): 要添加的标签
      • milestone (可选 number): 里程碑编号
    • 返回: 创建的 issue 详情
  7. create_pull_request

    • 创建一个新的 pull request
    • 输入:
      • owner (string): 仓库所有者
      • repo (string): 仓库名称
      • title (string): PR 标题
      • body (可选 string): PR 描述
      • head (string): 包含更改的分支
      • base (string): 合并到的分支
      • draft (可选 boolean): 创建为草稿 PR
      • maintainer_can_modify (可选 boolean): 允许维护者编辑
    • 返回: 创建的 pull request 详情
  8. fork_repository

    • Fork 一个仓库
    • 输入:
      • owner (string): 仓库所有者
      • repo (string): 仓库名称
      • organization (可选 string): Fork 到的组织
    • 返回: Fork 的仓库详情
  9. create_branch

    • 创建一个新的分支
    • 输入:
      • owner (string): 仓库所有者
      • repo (string): 仓库名称
      • branch (string): 新分支的名称
      • from_branch (可选 string): 源分支(默认为仓库默认分支)
    • 返回: 创建的分支引用
  10. list_issues

    • 列出和过滤仓库 issue
    • 输入:
      • owner (string): 仓库所有者
      • repo (string): 仓库名称
      • state (可选 string): 按状态过滤 ('open', 'closed', 'all')
      • labels (可选 string[]): 按标签过滤
      • sort (可选 string): 按 ('created', 'updated', 'comments') 排序
      • direction (可选 string): 排序方向 ('asc', 'desc')
      • since (可选 string): 按日期过滤 (ISO 8601 时间戳)
      • page (可选 number): 页码
      • per_page (可选 number): 每页结果数
    • 返回: issue 详情数组
  11. update_issue

    • 更新现有的 issue
    • 输入:
      • owner (string): 仓库所有者
      • repo (string): 仓库名称
      • issue_number (number): 要更新的 issue 编号
      • title (可选 string): 新标题
      • body (可选 string): 新描述
      • state (可选 string): 新状态 ('open' 或 'closed')
      • labels (可选 string[]): 新标签
      • assignees (可选 string[]): 新受让人
      • milestone (可选 number): 新里程碑编号
    • 返回: 更新后的 issue 详情
  12. add_issue_comment

    • 向 issue 添加评论
    • 输入:
      • owner (string): 仓库所有者
      • repo (string): 仓库名称
      • issue_number (number): 要评论的 issue 编号
      • body (string): 评论文本
    • 返回: 创建的评论详情
  13. search_code

    • 搜索 GitHub 仓库中的代码
    • 输入:
      • q (string): 使用 GitHub 代码搜索语法的搜索查询
      • sort (可选 string): 排序字段 ('indexed' only)
      • order (可选 string): 排序顺序 ('asc' 或 'desc')
      • per_page (可选 number): 每页结果数(最多 100)
      • page (可选 number): 页码
    • 返回: 带有仓库上下文的代码搜索结果
  14. search_issues

    • 搜索 issue 和 pull request
    • 输入:
      • q (string): 使用 GitHub issue 搜索语法的搜索查询
      • sort (可选 string): 排序字段 (comments, reactions, created, etc.)
      • order (可选 string): 排序顺序 ('asc' 或 'desc')
      • per_page (可选 number): 每页结果数(最多 100)
      • page (可选 number): 页码
    • 返回: issue 和 pull request 搜索结果
  15. search_users

    • 搜索 GitHub 用户
    • 输入:
      • q (string): 使用 GitHub 用户搜索语法的搜索查询
      • sort (可选 string): 排序字段 (followers, repositories, joined)
      • order (可选 string): 排序顺序 ('asc' 或 'desc')
      • per_page (可选 number): 每页结果数(最多 100)
      • page (可选 number): 页码
    • 返回: 用户搜索结果
  16. list_commits

  • 获取仓库中某个分支的提交
  • 输入:
    • owner (string): 仓库所有者
    • repo (string): 仓库名称
    • page (可选 string): 页码
    • per_page (可选 string): 每页记录数
    • sha (可选 string): 分支名称
  • 返回: 提交列表
  1. get_issue
  • 获取仓库中 issue 的内容
  • 输入:
    • owner (string): 仓库所有者
    • repo (string): 仓库名称
    • issue_number (number): 要检索的 issue 编号
  • 返回: Github Issue 对象 & 详情
  1. get_issue_comments
  • 获取 issue 或 pull request 上的评论
  • 输入:
    • owner (string): 仓库所有者
    • repo (string): 仓库名称
    • issue_number (number): 要检索评论的 Issue/PR 编号
  • 返回: GitHub 评论对象数组,包含评论 ID、正文文本、作者和时间戳

搜索查询语法

代码搜索

  • language:javascript: 按编程语言搜索
  • repo:owner/name: 在特定仓库中搜索
  • path:app/src: 在特定路径中搜索
  • extension:js: 按文件扩展名搜索
  • 示例: q: "import express" language:typescript path:src/

Issues 搜索

  • is:issueis:pr: 按类型过滤
  • is:openis:closed: 按状态过滤
  • label:bug: 按标签搜索
  • author:username: 按作者搜索
  • 示例: q: "memory leak" is:issue is:open label:bug

Users 搜索

  • type:usertype:org: 按帐户类型过滤
  • followers:>1000: 按关注者过滤
  • location:London: 按位置搜索
  • 示例: q: "fullstack developer" location:London followers:>100

有关详细的搜索语法,请参阅 GitHub 的搜索文档

设置

个人访问令牌

创建一个具有适当权限的 GitHub 个人访问令牌:

  • 转到 个人访问令牌(在 GitHub 设置 > 开发者设置中)
  • 选择您希望此令牌访问的仓库(公共、全部或选择)
  • 创建一个具有 repo 范围(“完全控制私有仓库”)的令牌
    • 或者,如果仅使用公共仓库,则仅选择 public_repo 范围
  • 复制生成的令牌

与 Claude Desktop 一起使用

要将其与 Claude Desktop 一起使用,请将以下内容添加到您的 claude_desktop_config.json 中:

{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-github"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
      }
    }
  }
}

许可证

此 MCP 服务器在 MIT 许可证下获得许可。 这意味着您可以自由使用、修改和分发该软件,但须遵守 MIT 许可证的条款和条件。 有关更多详细信息,请参阅项目存储库中的 LICENSE 文件。

推荐服务器

e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选
AIO-MCP Server

AIO-MCP Server

🚀 集成了 AI 搜索、RAG 和多服务(GitLab/Jira/Confluence/YouTube)的一体化 MCP 服务器,旨在增强 AI 驱动的开发工作流程。来自 Folk。

精选
本地
https://github.com/Streen9/react-mcp

https://github.com/Streen9/react-mcp

react-mcp 与 Claude Desktop 集成,能够根据用户提示创建和修改 React 应用程序。

精选
本地
Exa MCP Server

Exa MCP Server

一个模型上下文协议服务器,它使像 Claude 这样的人工智能助手能够以安全和受控的方式,使用 Exa AI 搜索 API 执行实时网络搜索。

精选
mcp-perplexity

mcp-perplexity

Perplexity API 的 MCP 服务器。

精选
MCP Web Research Server

MCP Web Research Server

一个模型上下文协议服务器,使 Claude 能够通过集成 Google 搜索、提取网页内容和捕获屏幕截图来进行网络研究。

精选
PubMedSearch MCP Server

PubMedSearch MCP Server

一个模型内容协议(Model Content Protocol)服务器,提供从 PubMed 数据库搜索和检索学术论文的工具。

精选
mcp-codex-keeper

mcp-codex-keeper

作为开发知识的守护者,为 AI 助手提供精心策划的最新文档和最佳实践访问权限。

精选
Perplexity Deep Research MCP

Perplexity Deep Research MCP

一个服务器,它允许 AI 助手使用 Perplexity 的 sonar-deep-research 模型进行网络搜索,并提供引用支持。

精选