GitHub仓库管理服务器

一个用于GitHub API操作的模型上下文协议服务器,提供全面的仓库管理和GitHub工作流自动化功能。

  • by HenkDz
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 henkdz/github-mcp-server

使用说明

GitHub MCP服务器

用于GitHub API操作的模型上下文协议服务器,提供全面的存储库管理和GitHub工作流自动化。

🚀 特性

第一阶段:基础 ✅ 完成

  • ✅ 库管理:创建、更新、删除、分叉、获取、列出和传输存储库
  • ✅ 类型安全操作:通过Zod验证完全支持TypeScript
  • ✅ 错误处理:全面的GitHub API错误映射
  • ✅ 许可证管理:多种身份验证方法

第二阶段:核心工具 ✅ 完成

  • ✅ 问题管理:创建、更新、关闭、分配、标记、评论、搜索和列出问题
  • ✅ 拉取请求管理:创建、更新、合并、审核、批准、请求更改、列出PR
  • ✅ 分行管理:创建、删除、获取、列出和管理分支保护
  • ✅ 发布管理:创建、更新、删除、发布和管理版本

计划的功能

  • 🔄 行动整合:触发工作流,获取运行状态
  • 🔄 高级搜索:跨仓库、问题、PR、代码搜索
  • 🔄 存储库分析:健康检查、见解、指标

📦 安装

# Clone the repository
git clone <repository-url>
cd github-mcp-server

# Install dependencies
npm install

# Build the project
npm run build

🔧 配置

认证

使用以下方法之一设置您的GitHub令牌:

  1. 环境变量 (推荐):

    export GITHUB_TOKEN="your_github_token_here"
    
  2. 命令行:

    npm start -- --token "your_github_token_here"
    
  3. 刀具参数:在工具调用中直接传递令牌

工具配置

创建一个 tools-config.json 文件以启用特定工具:

{
  "enabledTools": [
    "gh_manage_repos"
  ]
}

🎯 用法

发展

# Run in development mode
npm run dev

# Run tests
npm test

# Lint code
npm run lint

生产

# Build and start
npm run build
npm start

🛠 可用工具

gh_manage_repos (第一阶段)✅

通过以下操作进行全面的存储库管理:

  • create:创建新存储库
  • get:获取存储库信息
  • update:更新存储库设置
  • delete:删除存储库
  • fork:分叉存储库
  • list:列出经过身份验证的用户的存储库
  • transfer:转移存储库所有权

gh_管理_问题 (第二阶段)✅

通过以下操作进行全面的问题管理:

  • create:创建新问题
  • get:获取问题信息
  • update:更新问题属性
  • close:关闭问题
  • assign:将用户分配给问题
  • label:管理问题标签
  • comment:向问题添加评论
  • list:使用筛选器列出存储库问题
  • search:全球搜索问题

gh_manage_pulls (第二阶段)✅

通过以下操作进行全面的拉取请求管理:

  • create:创建新的pull请求
  • get:获取拉取请求信息
  • update:更新拉取请求属性
  • merge:合并拉取请求
  • review:查看带有注释的拉取请求
  • approve:批准拉取请求
  • request_changes:请求更改PR
  • list:列出存储库拉取请求
  • close:关闭拉取请求

gh_管理_牧场 (第二阶段)✅

全面的分行管理,包括以下操作:

  • create:创建新分支
  • get:获取分行信息
  • delete:删除分支
  • list:列出存储库分支
  • protect:设置分支保护规则
  • get_protection:获取分支保护设置
  • update_protection:更新保护规则

gh_管理_租赁 (第二阶段)✅

全面的发布管理,包括以下操作:

  • create:创建新版本
  • get:获取发布信息
  • update:更新版本属性
  • delete:删除发布
  • publish:发布发布草稿
  • get_latest:获取最新版本
  • list:列出存储库版本

示例用法

{
  "operation": "create",
  "name": "my-new-repo",
  "description": "A new repository",
  "private": false,
  "auto_init": true
}
{
  "operation": "get",
  "owner": "username",
  "repo": "repository-name"
}

🏗 建筑

遵循postgres mcp中经过验证的模式:

  • 整合工具:按域分组的操作(repos、issues、PR)
  • 类型安全:带运行时验证的Zod模式
  • 错误处理:一致的GitHub API错误映射
  • 可扩展设计:易于添加新的操作和工具

📋 发展路线图

第一阶段:基础 ✅

  • [x] 存储库管理工具
  • [x] GitHub API客户端包装器
  • [x] 身份验证处理
  • [x] 错误处理和验证

第二阶段:核心工具 ✅ 完成

  • [x] 问题管理工具
  • [x] Pull请求管理工具
  • [x] 分行管理工具
  • [x] 发布管理工具

第三阶段:高级功能

  • []GitHub Actions集成
  • []高级搜索功能
  • []存储库分析

第四阶段:专业工具

  • []批量操作
  • []迁移工具
  • []监测和见解

🤝 贡献

  1. 遵循postgres mcp的既定模式
  2. 为新功能添加全面的测试
  3. 更新新工具的文档
  4. 确保整个过程的类型安全

📄 许可证

MIT许可证