Skip to main content
Glama

GitHub MCP 服务器

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

任务小队修改

  • github pat 现在是根据请求动态变化的,并且不必通过环境变量包含,但仍然会回到环境变量。
  • 名称:mcp-github

特征

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

工具

  1. create_or_update_file
    • 在存储库中创建或更新单个文件
    • 输入:
      • owner (字符串):存储库所有者(用户名或组织)
      • repo (字符串):存储库名称
      • path (字符串):创建/更新文件的路径
      • content (字符串):文件的内容
      • message (字符串):提交消息
      • branch (字符串):创建/更新文件的分支
      • sha (可选字符串):被替换文件的 SHA(用于更新)
    • 返回:文件内容和提交详细信息
  2. push_files
    • 在一次提交中推送多个文件
    • 输入:
      • owner (字符串):存储库所有者
      • repo (字符串):存储库名称
      • branch (字符串):要推送到的分支
      • files (数组):要推送的文件,每个文件都有pathcontent
      • message (字符串):提交消息
    • 返回:更新的分支参考
  3. search_repositories
    • 搜索 GitHub 存储库
    • 输入:
      • query (字符串):搜索查询
      • page (可选数字):分页的页码
      • perPage (可选数字):每页结果数(最多 100 条)
    • 返回:存储库搜索结果
  4. create_repository
    • 创建一个新的 GitHub 存储库
    • 输入:
      • name (字符串):存储库名称
      • description (可选字符串):存储库描述
      • private (可选布尔值):repo 是否应为私有
      • autoInit (可选布尔值):使用 README 初始化
    • 返回:创建的存储库详细信息
  5. get_file_contents
    • 获取文件或目录的内容
    • 输入:
      • owner (字符串):存储库所有者
      • repo (字符串):存储库名称
      • path (字符串):文件/目录的路径
      • branch (可选字符串):从中获取内容的分支
    • 返回:文件/目录内容
  6. create_issue
    • 创建新问题
    • 输入:
      • owner (字符串):存储库所有者
      • repo (字符串):存储库名称
      • title (字符串):问题标题
      • body (可选字符串):问题描述
      • assignees (可选字符串[]):要分配的用户名
      • labels (可选字符串[]):要添加的标签
      • milestone (可选数字):里程碑编号
    • 返回:创建问题详情
  7. create_pull_request
    • 创建新的拉取请求
    • 输入:
      • owner (字符串):存储库所有者
      • repo (字符串):存储库名称
      • title (字符串):PR 标题
      • body (可选字符串):PR 描述
      • head (字符串):包含更改的分支
      • base (字符串):要合并到的分支
      • draft (可选布尔值):创建为 PR 草稿
      • maintainer_can_modify (可选布尔值):允许维护者编辑
    • 返回:创建的拉取请求详细信息
  8. fork_repository
    • 派生一个存储库
    • 输入:
      • owner (字符串):存储库所有者
      • repo (字符串):存储库名称
      • organization (可选字符串):要分叉的组织
    • 返回:分叉存储库详细信息
  9. create_branch
    • 创建新分支
    • 输入:
      • owner (字符串):存储库所有者
      • repo (字符串):存储库名称
      • branch (字符串):新分支的名称
      • from_branch (可选字符串):源分支(默认为 repo default)
    • 返回:创建的分支引用
  10. list_issues
  • 列出并过滤存储库问题
  • 输入:
    • owner (字符串):存储库所有者
    • repo (字符串):存储库名称
    • state (可选字符串):按状态过滤('打开','关闭','全部')
    • labels (可选字符串[]):按标签过滤
    • sort (可选字符串):按('创建','更新','评论')排序
    • direction (可选字符串):排序方向('asc','desc')
    • since (可选字符串):按日期过滤(ISO 8601 时间戳)
    • page (可选数字):页码
    • per_page (可选数字):每页结果数
  • 返回:问题详细信息数组
  1. update_issue
  • 更新现有问题
  • 输入:
    • owner (字符串):存储库所有者
    • repo (字符串):存储库名称
    • issue_number (数字):要更新的问题编号
    • title (可选字符串):新标题
    • body (可选字符串):新的描述
    • state (可选字符串):新状态(“打开”或“关闭”)
    • labels (可选字符串[]):新标签
    • assignees (可选字符串[]):新受让人
    • milestone (可选数字):新的里程碑编号
  • 返回:更新的问题详情
  1. add_issue_comment
  • 向问题添加评论
  • 输入:
    • owner (字符串):存储库所有者
    • repo (字符串):存储库名称
    • issue_number (数字):要评论的问题编号
    • body (字符串):评论文本
  • 返回:创建的评论详情
  1. search_code
  • 在 GitHub 存储库中搜索代码
  • 输入:
    • q (字符串):使用 GitHub 代码搜索语法的搜索查询
    • sort (可选字符串):排序字段(仅限“索引”)
    • order (可选字符串):排序顺序('asc' 或 'desc')
    • per_page (可选数字):每页结果数(最多 100 条)
    • page (可选数字):页码
  • 返回:带有存储库上下文的代码搜索结果
  1. search_issues
  • 搜索问题和拉取请求
  • 输入:
    • q (字符串):使用 GitHub 问题搜索语法进行搜索查询
    • sort (可选字符串):排序字段(评论、反应、创建等)
    • order (可选字符串):排序顺序('asc' 或 'desc')
    • per_page (可选数字):每页结果数(最多 100 条)
    • page (可选数字):页码
  • 返回:问题和拉取请求搜索结果
  1. search_users
  • 搜索 GitHub 用户
  • 输入:
    • q (字符串):使用 GitHub 用户搜索语法的搜索查询
    • sort (可选字符串):排序字段(关注者、存储库、加入)
    • order (可选字符串):排序顺序('asc' 或 'desc')
    • per_page (可选数字):每页结果数(最多 100 条)
    • page (可选数字):页码
  • 返回:用户搜索结果
  1. list_commits
  • 获取存储库中分支的提交
  • 输入:
    • owner (字符串):存储库所有者
    • repo (字符串):存储库名称
    • page (可选字符串):页码
    • per_page (可选字符串):每页记录数
    • sha (可选字符串):分支名称
  • 返回:提交列表
  1. get_issue
  • 获取存储库中问题的内容
  • 输入:
    • owner (字符串):存储库所有者
    • repo (字符串):存储库名称
    • issue_number (数字):要检索的问题编号
  • 返回:Github Issue 对象和详细信息
  1. get_pull_request
  • 获取特定拉取请求的详细信息
  • 输入:
    • owner (字符串):存储库所有者
    • repo (字符串):存储库名称
    • pull_number (数字):拉取请求编号
  • 返回:拉取请求详细信息,包括差异和审核状态
  1. list_pull_requests
  • 列出并过滤存储库拉取请求
  • 输入:
    • owner (字符串):存储库所有者
    • repo (字符串):存储库名称
    • state (可选字符串):按状态过滤('打开','关闭','全部')
    • head (可选字符串):按主管用户/组织和分支进行过滤
    • base (可选字符串):按基本分支过滤
    • sort (可选字符串):按('创建','更新','受欢迎程度','长期运行')排序
    • direction (可选字符串):排序方向('asc','desc')
    • per_page (可选数字):每页结果数(最多 100 条)
    • page (可选数字):页码
  • 返回:拉取请求详细信息数组
  1. create_pull_request_review
  • 对拉取请求创建评论
  • 输入:
    • owner (字符串):存储库所有者
    • repo (字符串):存储库名称
    • pull_number (数字):拉取请求编号
    • body (字符串):评论文本
    • event (字符串):审查操作('APPROVE','REQUEST_CHANGES','COMMENT')
    • commit_id (可选字符串):提交审核的 SHA
    • comments (可选数组):特定于行的注释,每行包含:
      • path (字符串):文件路径
      • position (数字):差异中的行位置
      • body (字符串):评论文本
  • 返回:创建评论详情
  1. merge_pull_request
  • 合并拉取请求
  • 输入:
    • owner (字符串):存储库所有者
    • repo (字符串):存储库名称
    • pull_number (数字):拉取请求编号
    • commit_title (可选字符串):合并提交的标题
    • commit_message (可选字符串):合并提交的额外详细信息
    • merge_method (可选字符串):合并方法('merge','squash','rebase')
  • 返回:合并结果详情
  1. get_pull_request_files
  • 获取拉取请求中更改的文件列表
  • 输入:
    • owner (字符串):存储库所有者
    • repo (字符串):存储库名称
    • pull_number (数字):拉取请求编号
  • 返回:包含补丁和状态详细信息的已更改文件数组
  1. get_pull_request_status
  • 获取拉取请求所有状态检查的综合状态
  • 输入:
    • owner (字符串):存储库所有者
    • repo (字符串):存储库名称
    • pull_number (数字):拉取请求编号
  • 返回:综合状态检查结果和个人检查详情
  1. update_pull_request_branch
  • 使用基础分支的最新更改来更新拉取请求分支(相当于 GitHub 的“更新分支”按钮)
  • 输入:
    • owner (字符串):存储库所有者
    • repo (字符串):存储库名称
    • pull_number (数字):拉取请求编号
    • expected_head_sha (可选字符串):拉取请求的 HEAD ref 的预期 SHA
  • 返回:分支更新时的成功消息
  1. get_pull_request_comments
  • 获取拉取请求的审核意见
  • 输入:
    • owner (字符串):存储库所有者
    • repo (字符串):存储库名称
    • pull_number (数字):拉取请求编号
  • 返回:拉取请求审核评论数组,其中包含评论文本、作者和差异中的位置等详细信息
  1. get_pull_request_reviews
  • 获取拉取请求的评论
  • 输入:
    • owner (字符串):存储库所有者
    • repo (字符串):存储库名称
    • pull_number (数字):拉取请求编号
  • 返回:拉取请求评审数组,其中包含评审状态(APPROVED、CHANGES_REQUESTED 等)、评审人和评审主体等详细信息

搜索查询语法

代码搜索

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

问题搜索

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

用户搜索

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

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

设置

个人访问令牌

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

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

与 Claude Desktop 一起使用

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

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

NPX

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

建造

Docker 构建:

docker build -t mcp/github -f src/github/Dockerfile .

执照

此 MCP 服务器采用 MIT 许可证。这意味着您可以自由使用、修改和分发该软件,但须遵守 MIT 许可证的条款和条件。更多详情,请参阅项目仓库中的 LICENSE 文件。

-
security - not tested
A
license - permissive license
-
quality - not tested

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Anthropic 的 GitHub MCP 服务器,但更胜一筹。支持更多端点,包括发布和标签、拉取请求审核、状态、速率限制、要点、项目、软件包,甚至拉取请求差异。旨在与 MissionSquad 的 MCP API 配合使用,用于密钥管理(即您的访问令牌)。

  1. 任务小队修改
    1. 特征
  2. 工具
    1. 搜索查询语法
      1. 代码搜索
      2. 问题搜索
      3. 用户搜索
    2. 设置
      1. 个人访问令牌
      2. 与 Claude Desktop 一起使用
      3. NPX
    3. 建造
      1. 执照

        Related MCP Servers

        • A
          security
          F
          license
          A
          quality
          MCP Server for the GitHub API, providing features for file operations, repository management, and advanced search, with automatic branch creation and comprehensive error handling.
          Last updated -
          18
          4
          3
          TypeScript
          • Linux
          • Apple
        • A
          security
          A
          license
          A
          quality
          MCP Tool Server for Gitee, supporting the management of repository files/branches, Issues, and Pull Requests.
          Last updated -
          20
          10
          4
          TypeScript
          MIT License
        • A
          security
          F
          license
          A
          quality
          An MCP server that enables integration with GitHub Enterprise API, allowing users to access repository information, manage issues, pull requests, workflows, and other GitHub features through Cursor.
          Last updated -
          16
          33
          14
          TypeScript
          • Linux
          • Apple
        • A
          security
          A
          license
          A
          quality
          A MCP server that provides access to GitHub trending repositories and developers data through a simple API interface.
          Last updated -
          2
          1
          Python
          MIT License
          • Apple

        View all related MCP servers

        MCP directory API

        We provide all the information about MCP servers via our MCP API.

        curl -X GET 'https://glama.ai/api/mcp/v1/servers/MissionSquad/mcp-github'

        If you have feedback or need assistance with the MCP directory API, please join our Discord server