GitHub MCP Server

GitHub MCP Server

site icon
2025.04.21 0
TypeScriptGitHub API 服务仓库管理文件操作搜索功能团队协作开发效率交流协作
GitHub MCP Server 是一个基于 TypeScript 的 GitHub API 服务,提供了丰富的文件操作、仓库管理、搜索功能等。该服务不是官方的 GitHub MCP 服务器,而是在官方服务器基础上进行了功能扩展和改进。
View on GitHub

Overview

基本能力

产品定位

GitHub MCP Server 是一个用于与 GitHub API 交互的服务,旨在简化 GitHub 仓库管理、文件操作、搜索功能等。

核心功能

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

适用场景

  • 自动化 GitHub 仓库管理
  • 批量处理文件操作
  • 高级代码和问题搜索
  • 团队协作开发

工具列表

  1. create_or_update_file:创建或更新单个文件
  2. push_files:推送多个文件
  3. search_repositories:搜索 GitHub 仓库
  4. create_repository:创建新仓库
  5. get_file_contents:获取文件/目录内容
  6. create_issue:创建问题
  7. create_pull_request:创建拉取请求
  8. fork_repository:分叉仓库
  9. create_branch:创建分支
  10. list_issues:列出和过滤问题
  11. update_issue:更新问题
  12. add_issue_comment:添加问题评论
  13. search_code:搜索代码
  14. search_issues:搜索问题和 PR
  15. search_users:搜索用户
  16. list_commits:获取提交列表
  17. get_issue:获取问题内容
  18. get_pull_request:获取 PR 详情
  19. list_pull_requests:列出和过滤 PR
  20. create_pull_request_review:创建 PR 审查
  21. merge_pull_request:合并 PR
  22. get_pull_request_files:获取 PR 更改的文件
  23. get_pull_request_status:获取 PR 状态
  24. update_pull_request_branch:更新 PR 分支
  25. get_pull_request_comments:获取 PR 评论
  26. get_pull_request_reviews:获取 PR 审查
  27. list_sub_issues:列出子问题
  28. reprioritize_sub_issue:重新排序子问题
  29. remove_sub_issue:移除子问题
  30. add_sub_issue:添加子问题
  31. list_labels_for_issue:列出问题标签
  32. add_labels_to_issue:添加标签到问题
  33. set_labels_for_issue:设置问题标签
  34. remove_label_from_issue:移除问题标签
  35. remove_all_labels_from_issue:移除所有问题标签
  36. list_labels_for_repo:列出仓库标签
  37. create_label:创建标签
  38. get_label:获取标签
  39. update_label:更新标签
  40. delete_label:删除标签
  41. list_labels_for_milestone:列出里程碑标签
  42. list_milestones:列出里程碑
  43. create_milestone:创建里程碑
  44. get_milestone:获取里程碑
  45. update_milestone:更新里程碑
  46. delete_milestone:删除里程碑

常见问题解答

  • 需要创建 GitHub 个人访问令牌才能使用该服务
  • 确保令牌具有足够的权限(repo 或 public_repo 范围)
  • 使用 Docker 或 NPX 方式运行服务

使用教程

使用依赖

  1. 创建 GitHub 个人访问令牌:
  2. 访问 Personal access tokens
  3. 选择适当的仓库访问权限
  4. 创建具有 repopublic_repo 范围的令牌

安装教程

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>"
      }
    }
  }
}

调试方式

  1. 确保环境变量 GITHUB_PERSONAL_ACCESS_TOKEN 已正确设置
  2. 检查服务是否正常运行
  3. 使用工具列表中的功能进行测试,如 search_repositoriesget_file_contents
  4. 查看错误消息以排查问题

构建

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

许可证

该项目遵循 None 开源许可条款。