关于 GitHub MCP Server
GitHub MCP Server 是一个已弃用的 GitHub API MCP 服务,README 建议改用 GitHub 官方 MCP 服务。它曾提供仓库、分支、议题、拉取请求、文件和发布管理工具。
主要功能
- 01仓库查询与创建
- 02分支列表、创建和删除
- 03议题与拉取请求管理
- 04仓库文件创建与更新
- 05创建发布版本
- 06输入校验与 API 限流处理
适用场景
- 01查询或创建 GitHub 仓库
- 02维护分支及议题
- 03创建、更新或合并拉取请求
- 04更新仓库文件或创建发布
MCP 相关
该服务通过 MCP 向客户端暴露 GitHub API 操作工具;项目已弃用,README 建议使用 GitHub 官方 MCP 服务。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
🚨 此代码仓库已弃用。🚨
请改用官方 GitHub MCP 服务:https://github.com/github/github-mcp-server
🚨 此代码仓库已弃用。🚨
GitHub MCP 服务
一个用于与 GitHub API 交互的 Model Context Protocol(MCP)服务。该服务允许大模型 Agent 通过标准化接口管理 GitHub 仓库、议题、拉取请求、分支、文件和版本发布。
目录
概览
github-mcp-server 实现了 Model Context Protocol(MCP),通过以下方式实现大模型与外部系统之间的标准化通信:
- 客户端:Claude Desktop、IDE 及其他兼容 MCP 的客户端
- 服务:用于项目管理和协作的工具与资源
- 大模型 Agent:能够以编程方式执行 GitHub 操作的 AI 模型。
它充当 AI 模型与 GitHub API 之间的桥梁,提供一组定义完善的工具,遵循一致的模式,并处理身份验证、验证、错误处理和速率限制。
主要能力:
- GitHub API 集成:安全、无缝地集成 GitHub 的 REST API
- 全面的 GitHub 功能:完整管理仓库、分支、议题、PR 等
- 原子化功能架构:组织良好的模块化代码结构,便于维护
- 输入验证:使用 Zod 模式对所有操作进行可靠验证
- 错误处理:一致地分类和报告错误
- 速率限制:内置 GitHub API 速率限制处理机制
- 注重性能:优化操作和响应格式
架构与组件
核心系统架构:
点击展开 Mermaid 图表
flowchart TB
subgraph API["API Layer"]
direction LR
MCP["MCP Protocol"]
Val["Validation"]
Rate["Rate Limiting"]
MCP --> Val --> Rate
end
subgraph Features["Feature Modules"]
direction LR
Repo["Repository Management"]
Branch["Branch Management"]
Issue["Issue Management"]
PR["Pull Request Management"]
File["File Management"]
Release["Release Management"]
Repo <--> Branch
Repo <--> Issue
Repo <--> PR
Repo <--> File
Branch <--> PR
end
subgraph Services["Services Layer"]
direction LR
GitHub["GitHub Service"]
Mapper["Response Mapper"]
RateLimiter["Rate Limiter"]
GitHub <--> RateLimiter
GitHub <--> Mapper
end
Rate --> Repo
Rate --> Branch
Rate --> Issue
Rate --> PR
Rate --> File
Rate --> Release
Repo --> GitHub
Branch --> GitHub
Issue --> GitHub
PR --> GitHub
File --> GitHub
Release --> GitHub
classDef layer fill:#2d3748,stroke:#4299e1,stroke-width:3px,rx:5,color:#fff
classDef component fill:#1a202c,stroke:#a0aec0,stroke-width:2px,rx:3,color:#fff
classDef api fill:#3182ce,stroke:#90cdf4,stroke-width:2px,rx:3,color:#fff
classDef features fill:#319795,stroke:#81e6d9,stroke-width:2px,rx:3,color:#fff
classDef services fill:#2f855a,stroke:#9ae6b4,stroke-width:2px,rx:3,color:#fff
class API,Features,Services layer
class MCP,Val,Rate api
class Repo,Branch,Issue,PR,File,Release features
class GitHub,Mapper,RateLimiter services
核心组件:
- MCP 协议层:处理与 AI 助手的通信
- 验证层:通过架构验证确保数据完整性
- GitHub 服务:与 GitHub REST API 的核心集成
- 速率限制器:防止 API 速率限制耗尽
- 功能模块:特定领域的 GitHub 操作
- 错误处理:完善的错误处理和日志记录系统
功能
仓库管理
- 创建、列出、获取:创建新仓库、列出用户仓库并获取详细的仓库信息
- 验证与配置:验证仓库设置并管理配置选项
分支管理
- 创建、删除、列出:通过安全验证完整管理分支生命周期
- 受保护分支支持:筛选和操作受保护分支
Issue 管理
- 创建与列出:创建包含标签的详细 Issue,并按筛选选项列出 Issue
- 状态跟踪:按 Issue 状态(open、closed、all)筛选
Pull Request 管理
- 创建、更新、合并、列出:完整管理 Pull Request 生命周期
- 审查与评论集成:为 Pull Request 添加审查和评论
- 合并选项:支持不同的合并策略(merge、squash、rebase)
文件管理
- 创建与更新文件:通过提交消息添加和修改仓库内容
- Base64 编码支持:处理文本和二进制文件内容
Release 管理
- 创建 Release:创建带标签的 Release,并可自定义选项
- 草稿与预发布支持:支持草稿和预发布工作流
安装
前提条件
- Node.js(v16 或更高版本)
- 具有适当权限的 GitHub 个人访问令牌
设置
-
克隆仓库:
git clone https://github.com/cyanheads/github-mcp-server.git cd github-mcp-server -
安装依赖:
npm install -
在项目根目录创建
.env文件并填入你的 GitHub 令牌:GITHUB_TOKEN=your_github_personal_access_token LOG_LEVEL=info SERVER_NAME=github-mcp-server -
构建项目:
npm run build -
启动服务:
node build/index.js
配置
可通过环境变量配置此服务:
| 环境变量 | 描述 | 默认值 |
|---|---|---|
GITHUB_TOKEN | GitHub 个人访问令牌(必需) | - |
LOG_LEVEL | 日志级别(debug、info、warn、error、fatal) | info |
SERVER_NAME | MCP 服务名称 | github-mcp-server |
SERVER_VERSION | MCP 服务版本 | 0.1.0 |
API_TIMEOUT_MS | API 调用超时时间(毫秒) | 10000 |
RATE_LIMITING_ENABLED | 是否启用速率限制 | true |
RATE_LIMITING_MIN_REMAINING | 限流前剩余请求数的最低值 | 100 |
RATE_LIMITING_RESET_BUFFER_MS | 添加到速率限制重置时间的缓冲时间 | 5000 |
MCP 客户端设置
添加到你的 MCP 客户端设置中:
{
"mcpServers": {
"github": {
"command": "node",
"args": ["/path/to/github-mcp-server/build/index.js"],
"env": {
"GITHUB_TOKEN": "your_github_personal_access_token",
"LOG_LEVEL": "info",
"SERVER_NAME": "github-mcp-server"
}
}
}
}
项目结构
本项目采用原子化、以功能为导向的架构模式:
/src
/configuration // Application configuration
/dependencyInjection // Tool registry and DI container
/features // Feature modules organized by domain
/repositoryManagement
/resources // Read operations
/modifications // Write operations
/branchManagement
/issueManagement
/pullRequestManagement
/fileManagement
/releaseManagement
/services // External service integrations
/githubAccess // GitHub API client and utilities
/types // Core type definitions
/utilities // Helper functions and utilities
每个功能领域分为:
- 资源:不会修改数据的读取操作
- 修改操作:创建、更新或删除数据的写入操作
每个操作都包含在自己的目录中,其中包括:
- 操作实现文件
- 类型定义文件
- 导出索引文件
工具
GitHub MCP Server 提供了一套全面的工具,用于与 GitHub 交互:
仓库管理工具
| 工具 | 描述 |
|---|---|
get_repository | 获取特定仓库的详细信息 参数: owner、repo |
list_repositories | 列出已认证用户的仓库 参数: type(可选)、sort(可选) |
create_repository | 创建新的 GitHub 仓库 参数: name、description(可选)、private(可选) |
分支管理工具
| 工具 | 描述 |
|---|---|
list_branches | 列出仓库中的分支 参数: owner、repo、protected(可选)、per_page(可选) |
create_branch | 创建新分支 参数: owner、repo、branch、sha |
delete_branch | 删除分支 参数: owner、repo、branch |
问题管理工具
| 工具 | 描述 |
|---|---|
create_issue | 在仓库中创建新问题 参数: owner、repo、title、body(可选)、labels(可选) |
list_issues | 列出仓库中的问题 参数: owner、repo、state(可选)、labels(可选) |
拉取请求管理工具
| 工具 | 描述 |
|---|---|
create_pull_request | 创建新的拉取请求 参数: owner、repo、title、head、base、body(可选) |
merge_pull_request | 合并拉取请求 参数: owner、repo、pull_number、commit_title(可选)、commit_message(可选)、merge_method(可选) |
update_pull_request | 更新现有拉取请求 参数: owner、repo、pull_number、title(可选)、body(可选)、state(可选)、base(可选)、maintainer_can_modify(可选) |
list_pull_requests | 列出仓库中的拉取请求 参数: owner、repo、state(可选)、head(可选)、base(可选)、sort(可选)、direction(可选) |
文件管理工具
| 工具 | 描述 |
|---|---|
update_file | 在仓库中创建或更新文件 参数: owner、repo、path、message、content、sha(可选)、branch(可选) |
发布管理工具
| 工具 | 描述 |
|---|---|
create_release | 创建新的发布 参数: owner、repo、tag_name、name(可选)、body(可选)、draft(可选)、prerelease(可选) |
开发
项目结构
项目遵循严格的命名规范和目录结构:
- 文件命名:
action.entity.type.ts(例如,create.repository.operation.ts) - 每个模块都有明确的用途
- 类型与其实现放在同一位置
- 所有导出都通过 index 文件集中管理
脚本
npm run build- 构建项目npm run watch- 监视更改并重新构建npm run inspector- 运行 MCP 检查工具npm run clean- 清理构建产物npm run rebuild- 清理并重新构建项目npm run tree- 生成目录树表示
错误处理
该服务实现了全面的错误处理策略:
- 标准化错误对象:采用一致的错误格式并进行分类
- 输入验证:使用 Zod 架构进行预验证
- 速率限制保护:自动处理 GitHub API 速率限制
- 错误类别:
- 网络错误(连接问题)
- 身份验证错误(令牌问题)
- 验证错误(输入无效)
- GitHub API 错误(特定于 API 的问题)
- 系统错误(意外故障)
- 详细日志记录:对所有操作和错误进行结构化日志记录
贡献
欢迎贡献!请随时提交 Pull Request。
- Fork 此仓库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交更改(
git commit -m 'Add some amazing feature') - 推送到分支(
git push origin feature/amazing-feature) - 打开 Pull Request
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。