Github Mcp Go

Github Mcp Go

🚀 GitHub MCP 服务器

本项目是一个用 Go 语言实现的 GitHub 模型上下文协议(MCP)服务器。它为大语言模型(LLMs)提供了标准接口,使其能够与 GitHub 仓库、问题、拉取请求等进行交互。

🚀 快速开始

设置环境变量以配置服务器:

export GITHUB_TOKEN="your_token_here"

然后运行服务器:

github-mcp-server

✨ 主要特性

  • 全面的 GitHub API 访问:涵盖了丰富的工具,详情见下文工具部分。
  • 设置命令:专为 AI 助手自动配置设计,简单易用。
    • --auto-approve 可预先勾选同意框。
    • --write-access 用于启用写入权限。
    • 能自动将二进制文件复制到稳定位置。
    • 支持更新工具 MCP 服务器配置(适用于 cline 和 claude - desktop)。
  • 安全控制
    • 默认禁用写入权限,保障系统安全。
    • 具备细粒度的自动批准选项。

计划中的功能

  • [ ] “get_diff”
    • 比较两个提交之间的差异。
    • ? 是否应该将此内容包含在 compare_commits 的输出中?

📦 安装指南

先决条件

需要配备适当权限的 GitHub 个人访问令牌。

使用预编译二进制文件

提供了多种平台的预编译二进制文件:

  • Linux(amd64、arm64)
  • macOS(amd64、arm64)
  • Windows(amd64)

从源代码构建

克隆仓库后,运行以下命令进行安装:

go install ./...

💻 使用示例

基础用法

设置环境变量和运行服务器的示例:

export GITHUB_TOKEN="your_token_here"
github-mcp-server

高级用法

通过 --approve 选项临时启用写入权限:

github-mcp-server --approve

📚 详细文档

自动批准选项

  • 默认情况下,写入权限处于禁用状态。
  • 可通过 --approve 选项临时启用写入权限。

工具

仓库相关工具

  • search_repositories:搜索 GitHub 仓库。
  • create_repository:创建新仓库。
  • fork_repository:分叉现有仓库。
  • list_forks:列出仓库的分叉。
  • delete_repository:删除指定仓库。
  • transfer_repository:转移仓库所有权。

拉取请求相关工具

  • search_pull_requests:搜索特定仓库中的拉取请求。
  • create_pull_request:创建新的拉取请求。
  • update_pull_request:更新现有拉取请求信息。
  • merge_pull_request:合并指定的拉取请求。
  • delete_pull_request:删除指定拉取请求。

问题相关工具

  • search_issues:搜索仓库中的问题和拉取请求。
  • create_issue:创建新的问题。
  • update_issue:更新现有问题信息。
  • close_issue:关闭指定的问题。
  • reopen_issue:重新打开已关闭的问题。
  • add_comment_to_issue:向问题添加评论。

分支相关工具

  • list_branches:列出仓库的所有分支。
  • create_branch:创建新分支。
  • delete_branch:删除指定分支。
  • protect_branch:保护指定分支(防止被推翻)。
  • unprotect_branch:取消保护指定分支。

提交相关工具

  • commit_file:提交文件更改。
  • get_commit_diff:获取特定提交的差异视图。
  • compare_commits:比较两个提交或分支之间的变化。
  • create_commit_comment:向特定提交添加评论。
  • delete_commit_comment:删除指定提交上的评论。

搜索相关工具

  • search_code:在多个仓库中搜索代码片段。
  • search_users:搜索 GitHub 用户。
  • search_teams:搜索 GitHub 组织或团队。

发布

该项目遵循语义化版本控制(SemVer)。当推送新的标签时,会自动构建并发布到 GitHub 发布页面。 详细创建新发布的说明请参阅RELEASE.md。

开发

测试

项目使用 table - driven 测试方法,并结合 go - vcr 记录 HTTP 交互:

go test ./...

📄 许可证

该项目采用 MIT 许可证,详情见LICENSE文件。

  • 0 关注
  • 0 收藏,11 浏览
  • system 提出于 2025-09-26 21:36

相似服务问题