🚀 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文件。