GitHub工作流自动化服务器

一个自托管的GitHub集成服务器,提供安全的工作流自动化功能,支持智能命令和CI/CD流程。

  • by alistairhendersoninfo
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 alistairhendersoninfo/github-mcp-server

使用说明

GitHub MCP服务器

🔒 超安全的GitHub MCP服务器,支持Claude和Cursor的工作流自动化

一个自托管的模型上下文协议(MCP)服务器,提供安全的GitHub集成和智能工作流自动化。使用Rust构建,以实现最大的安全性和性能。

✨ 特性

  • 🔐 超安全架构 使用Traefik、Let’s Encrypt SSL和全面的安全标头
  • ⚡ 智能工作流命令: push, scan tasks, merge 智能自动化
  • 🛡️ OAuth 2.0身份验证 具有加密令牌存储和审计日志记录功能
  • 📋 GitHub项目集成 具有任务扫描和状态更新功能
  • 🚀 完整的CI/CD工作流程 从任务选择到生产部署
  • 🔄 实时MCP协议 通过WebSocket和HTTP提供支持
  • 📊 综合监控 通过健康检查和指标
  • 🐳 生产就绪部署 Docker和Traefik

🏗️ 建筑

┌─────────────────┐    ┌──────────────────┐    ┌─────────────────┐
│ Claude/Cursor   │────│ Traefik + SSL    │────│ GitHub MCP      │
│ Client          │    │ (AWS Route 53)   │    │ Server (Rust)   │
└─────────────────┘    └──────────────────┘    └─────────────────┘
                                │                        │
                       ┌──────────────────┐    ┌─────────────────┐
                       │ AWS Route 53     │    │ GitHub API      │
                       │ DNS Challenge    │    │ & Projects      │
                       └──────────────────┘    └─────────────────┘
                                │
                       ┌──────────────────┐
                       │ Let's Encrypt    │
                       │ Auto Renewal     │
                       └──────────────────┘

多容器生产架构:

  • 特拉菲克:使用AWS Route 53 DNS挑战SSL的反向代理
  • MCP服务器:与GitHub集成的Rust应用程序
  • Nginx:静态资产服务(可选)
  • 普罗米修斯:指标收集和监测
  • 格拉法纳:仪表板和警报
  • 洛基:日志聚合和分析
  • Fail2ban:入侵检测和预防

🚀 快速开始

📋 先决条件(必读)

🚨 重要提示:请先阅读先决条件指南:

📖 安装先决条件指南

本指南涵盖:

  • 域和AWS Route 53设置
  • GitHub应用程序创建(一步一步)
  • AWS IAM凭据配置
  • 安全规划
  • 安装前需要的所有信息

🛠️ 自动化安装

完成先决条件后:

# Download the installer
curl -fsSL https://raw.githubusercontent.com/your-username/github-mcp-server/main/install.sh -o install.sh
chmod +x install.sh

# Run the installation (requires sudo)
sudo ./install.sh

安装程序将:

  • ✅ 安装Docker和依赖项
  • ✅ 配置UFW防火墙(仅暴露端口80、443)
  • ✅ 使用自动SSL证书设置Traefik
  • ✅ 部署带有监控功能的GitHub MCP服务器
  • ✅ 创建systemd服务以自动启动
  • ✅ 配置日志轮换和系统监控

🔧 手动安装(高级)

如果您喜欢手动设置或需要自定义:

# Clone repository
git clone https://github.com/your-username/github-mcp-server.git
cd github-mcp-server

# Set up secrets and environment
./docker/scripts/setup-secrets.sh

# Edit configuration
nano docker/.env.production

# Deploy services
docker network create traefik-public
docker-compose -f docker/docker-compose.prod.yml up -d

4.身份验证

  1. 访问 https://your-domain.com
  2. 点击“连接GitHub”
  3. 完整的OAuth流程
  4. 复制您的会话令牌

5.配置Claude/Cursor

将MCP服务器添加到Claude/Cursor配置中:

{
  "mcpServers": {
    "github-workflow": {
      "command": "mcp-client",
      "args": ["--server", "https://your-domain.com/mcp"],
      "env": {
        "GITHUB_MCP_TOKEN": "your-session-token"
      }
    }
  }
}

🔧 工作流命令

push -智能Git推送

# Basic push with branch detection
push

# Push with commit message
push --message "Fix authentication bug"

# Push and mark PR as ready for review
push --ready-for-review

特征:

  • ✅ 检测当前分支与主分支
  • ✅ 在推到main之前发出警告
  • ✅ 自动提交未提交的更改
  • ✅ 更新现有PR
  • ✅ 标记PR以备审查

scan tasks -GitHub项目集成

# Scan all tasks
scan tasks

# Filter by type
scan tasks --type bug

# Filter by status
scan tasks --status "In Progress"

特征:

  • ✅ 通过GraphQL获取GitHub项目任务
  • ✅ 按优先级组织(严重、高、中、低)
  • ✅ 按类型分组(🐛 程序错误✨ 特征,🚀 增强)
  • ✅ 显示指定人员和最近的活动
  • ✅ 自动检测TODO.md中的项目编号

merge -完成合并工作流

# Complete merge with cleanup
merge

# Merge without deleting branch
merge --keep-branch

# Merge with work folder cleanup
merge --cleanup-folder

特征:

  • ✅ 合并前运行最终测试
  • ✅ 通过GitHub API合并PR
  • ✅ 切换回main并提取最新
  • ✅ 清理工作文件夹
  • ✅ 将GitHub项目状态更新为“完成”
  • ✅ 提供完整的审计跟踪

🛡️ 安全功能

身份验证和授权

  • OAuth 2.0 使用GitHub进行安全身份验证
  • JWT代币 具有可配置的过期时间
  • 加密令牌存储 使用行业标准加密
  • CSRF保护 适用于所有OAuth流

网络安全

  • TLS 1.3 所有通信的加密
  • HSTS标头 带有预加载功能,增强安全性
  • 内容安全策略 防止XSS攻击
  • 速率限制 防止滥用和DoS攻击

应用安全

  • 输入验证 对所有用户输入进行消毒
  • SQL注入保护 使用参数化查询
  • 审核日志记录 用于所有与安全相关的事件
  • 安全标头 (X帧选项、X内容类型选项等)

基础设施安全

  • Traefik反向代理 具有自动SSL证书管理功能
  • Fail2ban集成失败 用于入侵防御
  • Docker安全 非root用户和最小攻击面
  • 定期安全更新 具有自动依赖性扫描功能

📊 监测和可观察性

健康检查

  • /health 具有详细系统状态的端点
  • 自动重启的容器健康检查
  • 数据库连接监控
  • GitHub API连接检查

度量与记录

  • 结构化日志记录 具有可配置的级别
  • 审核跟踪 对于所有用户操作
  • 性能指标 通过普罗米修斯(可选)
  • 误差跟踪 带有详细的堆栈痕迹

告警

  • 违反费率限制
  • 身份验证失败
  • API错误和超时
  • 证书过期警告

🔧 配置

服务器配置(config/server.toml)

[server]
host = "0.0.0.0"
port = 8443
workers = 4

[security]
rate_limit_requests_per_minute = 60
session_timeout_hours = 24
audit_log_enabled = true

[github]
api_timeout = 30
max_retries = 3

环境变量

变量 描述 默认值
GITHUB_CLIENT_ID GitHub OAuth应用程序客户端ID 必填
GITHUB_CLIENT_SECRET GitHub OAuth应用程序客户端密码 必填
JWT_SECRET JWT令牌签名密钥 必填
DATABASE_URL SQLite数据库文件路径 sqlite:./data/github-mcp-server.db
RATE_LIMIT_RPM 每分钟请求数限制 60
AUDIT_LOG_ENABLED 启用审核日志记录 true

🚀 部署

生产部署

  1. 服务器安装程序

    # Install Docker and Docker Compose
    curl -fsSL https://get.docker.com | sh
    sudo usermod -aG docker $USER
    
  2. 域配置

    • 将您的域指向服务器IP
    • 确保端口80和443打开
  3. 部署

    git clone https://github.com/your-username/github-mcp-server.git
    cd github-mcp-server
    cp .env.example .env
    # Edit .env with your configuration
    docker-compose -f docker/docker-compose.yml up -d
    
  4. 验证部署

    curl -k https://your-domain.com/health
    

开发设置

# Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# Clone repository
git clone https://github.com/your-username/github-mcp-server.git
cd github-mcp-server

# Install dependencies
cargo build

# Run development server
cargo run

# Run tests
cargo test

🧪 测试

单元测试

cargo test

集成测试

cargo test --test integration

安全测试

# Run security audit
cargo audit

# Check for vulnerabilities
cargo deny check

📚 文档

🤝 贡献

  1. 分叉存储库
  2. 创建要素分支: git checkout -b feature/amazing-feature
  3. 提交更改: git commit -m 'Add amazing feature'
  4. 推送到分支: git push origin feature/amazing-feature
  5. 打开拉取请求

📄 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

🙏 致谢

📞 支持


内置于❤️ 和🦀 Rust实现了最高的安全性和性能