关于 github-mcp-connector
github-mcp-connector 是供 Agent 操作 GitHub 仓库、Issue 和拉取请求的 Go MCP 服务。它通过 GitHub API 提供 18 种常见读取与写入操作工具。
主要功能
- 01列出并查看仓库
- 02浏览分支、提交和文件
- 03读取及更新仓库文件
- 04创建和管理 Issue
- 05创建、查看及合并拉取请求
- 06搜索仓库
适用场景
- 01检查仓库文件和提交历史
- 02整理 Issue 并添加评论
- 03创建或合并拉取请求
MCP 相关
它向 MCP 客户端提供 18 种 GitHub 工具,涵盖仓库、文件、Issue、拉取请求和搜索操作。使用 `GITHUB_TOKEN` 进行身份验证。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
一个静态 Go 二进制文件,实现了 Model Context Protocol 协议,并提供 18 个用于操作 GitHub 的工具:仓库、分支、 提交、文件内容、议题、拉取请求和搜索。
无需 Python、无需 uv,也无需安装运行时依赖——只需一个二进制文件和
一个 .mcp.json。
✨ 为什么要做这个
只能谈论你的 GitHub 仓库的 Agent 并没有多大用处。 这个工具让它能亲自动手:读取和写入仓库中的文件,创建并 分类处理议题,推送分支并创建 PR,还能合并 PR——所有操作都基于 真正的 GitHub API,并具有同类连接器提供的相同防护措施(大小上限、友好 的错误提示、破坏性操作注释)。
🧰 工具
| 工具 | 功能 | 写入? |
|---|---|---|
github_whoami | 获取由 GITHUB_TOKEN 验证身份的用户 | |
github_list_repos | 列出用户或组织的仓库,或已验证用户的仓库 | |
github_get_repo | 获取一个仓库的详细信息 | |
github_create_repo | 创建新仓库 | ✍️ |
github_list_branches | 列出仓库中的分支 | |
github_list_commits | 列出提交,可按分支或路径筛选 | |
github_get_file_contents | 读取文件内容,或列出目录 | |
github_create_or_update_file | 通过提交创建或更新文件(≤ 5 MB) | ✍️ |
github_list_issues | 列出仓库中的议题 | |
github_get_issue | 获取一个议题的完整详细信息 | |
github_create_issue | 创建新议题 | ✍️ |
github_update_issue | 更新议题的标题、正文、状态或标签 | ✍️ |
github_add_issue_comment | 对议题或 PR 发表评论 | ✍️ |
github_list_pull_requests | 列出拉取请求 | |
github_get_pull_request | 获取一个 PR 的完整详细信息,包括差异统计 | |
github_create_pull_request | 创建拉取请求 | ✍️ |
github_merge_pull_request | 合并拉取请求 | 🗑️ 破坏性操作 |
github_search_repositories | 使用 GitHub 搜索限定条件搜索仓库 |
每个工具都接受可选的 response_format:markdown(默认格式,
适用于聊天界面的美观表格)或 json(适用于程序化使用)。
🚀 快速入门
**最快方式:**从最新版本下载预构建包 —
下载 github-mcp-connector-plugin-<version>-<os>-<arch>.zip,解压后,
将 Cowork/Claude 指向其中的 plugin/ 文件夹(参见
SETUP.md 的第 4 步)。无需 Go 工具链。
从源代码构建:
# 1. Build
cd go-server
go mod tidy
go build -o github-connector-server .
cp github-connector-server ../plugin/servers/go/
# 2. Set up auth — a personal access token, see SETUP.md
export GITHUB_TOKEN=ghp_...
# 3. Run
./go-server/github-connector-server # serves MCP over stdio
或者运行 make build — 所有快捷命令(test、vet、fmt、lint、tidy)请参阅
Makefile。
完整操作指南 — 包括如何将其配置为 Claude/Cowork 插件 — 请参阅 SETUP.md。
🔐 配置
所有配置均通过环境变量设置,并由插件的
.mcp.json 传递:
| 变量 | 用途 | 默认值 |
|---|---|---|
GITHUB_TOKEN | 个人访问令牌(classic 或 fine-grained)。根据用途,需要 repo/public_repo 和 read:org 权限范围。 | —(必填) |
GITHUB_API_URL | GitHub Enterprise Server API 基础 URL,例如 https://github.example.com/api/v3。 | (未设置 — github.com) |
🧪 质量标准
这不是玩具脚本 — 它具备生产级 Go 服务应有的同等检查:
- ✅ 每条输入验证路径都有单元测试(
go test ./...) - ✅
go vet+gofmt检查通过 - ✅ golangci-lint(govet、staticcheck、errcheck、gosec 等)
- ✅ govulncheck — 依赖关系图中没有已知漏洞
- ✅ 每次推送都会进行 CodeQL 静态安全分析
- ✅ 已通过端到端验证 — 每个工具(仓库、分支、提交、文件 读写、问题、评论、PR、合并、搜索)都在真实、专用的 GitHub 沙盒仓库中经过测试,而非使用模拟对象
- ✅ Dependabot 会使 Go 模块和 Actions 保持最新
所有检查都会在每次推送和 PR 时通过 CI 运行。
🏷️ 发布与版本管理
版本遵循 semver,并由
release-please 根据 main 分支上的
Conventional Commits 自动生成:
fix: ...→ 补丁版本(v0.1.0→v0.1.1)feat: ...→ 次版本(v0.1.1→v0.2.0)feat!: .../BREAKING CHANGE:页脚 → 主版本(v0.2.0→v1.0.0)
每个合并的 PR 都会更新一个常驻的 "chore(main): release vX.Y.Z" PR, 其中包含自动生成的 CHANGELOG.md。合并该 PR 后:
- 为版本打标签并在 GitHub 上发布
- 构建并附加可直接安装的压缩插件包,适用于 linux/darwin/windows × amd64/arm64
- 根据这些确切的资源重新生成
server.json(更新版本 + SHA-256 哈希),并通过使用 GitHub OIDC 进行身份验证的mcp-publisher将其发布到 官方 MCP Registry — 无需存储密钥
请参阅 .github/workflows/release-please.yml
和 .github/workflows/publish-mcp-registry.yml
(也可通过 workflow_dispatch 手动运行,用于已有标签)。
📁 目录结构
github-mcp-connector/
├── README.md ← you are here
├── SETUP.md ← step-by-step setup guide
├── CONTRIBUTING.md ← how to contribute
├── CODE_OF_CONDUCT.md
├── SECURITY.md ← vulnerability reporting
├── CODEOWNERS
├── LICENSE ← MIT
├── Makefile ← build / test / lint shortcuts
├── .golangci.yml ← lint rules
├── release-please-config.json ← semver/changelog automation config
├── .release-please-manifest.json
├── server.json ← MCP Registry manifest (regenerated fresh per release by CI)
├── scripts/
│ └── render-server-json.sh ← rebuilds server.json from a release's zip assets
├── .github/
│ ├── workflows/
│ │ ├── ci.yml ← build, vet, test, lint, govulncheck
│ │ ├── codeql.yml ← security scanning
│ │ ├── pr-title.yml ← Conventional Commits PR title check
│ │ ├── release-please.yml ← version PRs, tagging, GitHub releases
│ │ ├── publish-mcp-registry.yml ← publishes server.json to the MCP Registry
│ │ └── rebuild-release-assets.yml ← manual re-attach fallback
│ ├── ISSUE_TEMPLATE/
│ ├── PULL_REQUEST_TEMPLATE.md
│ └── dependabot.yml
├── go-server/ ← the MCP server source
│ ├── main.go
│ ├── main_test.go
│ ├── go.mod / go.sum
│ └── README.md
└── plugin/ ← installable Cowork/Claude plugin
├── .claude-plugin/plugin.json
├── .mcp.json ← holds credentials locally — never commit real ones
└── servers/go/ ← compiled binary goes here
🤝 贡献
欢迎提交 PR 和问题 — 完整指南(设置、编码规范以及如何添加新工具)请参阅 CONTRIBUTING.md,并阅读 行为准则。
main 分支受到保护:所有变更,包括维护者的变更,都必须通过 CI 检查通过的拉取请求合并。PR 标题必须遵循
Conventional Commits — 版本会据此按上述规则自动更新。
发现安全问题?请遵循 SECURITY.md 中的说明,而不要公开提交问题。
📄 许可证
MIT © FerhatDundar
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。