使用说明
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.身份验证
- 访问
https://your-domain.com - 点击“连接GitHub”
- 完整的OAuth流程
- 复制您的会话令牌
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 |
🚀 部署
生产部署
-
服务器安装程序
# Install Docker and Docker Compose curl -fsSL https://get.docker.com | sh sudo usermod -aG docker $USER -
域配置
- 将您的域指向服务器IP
- 确保端口80和443打开
-
部署
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 -
验证部署
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
📚 文档
🤝 贡献
- 分叉存储库
- 创建要素分支:
git checkout -b feature/amazing-feature - 提交更改:
git commit -m 'Add amazing feature' - 推送到分支:
git push origin feature/amazing-feature - 打开拉取请求
📄 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
🙏 致谢
📞 支持
内置于❤️ 和🦀 Rust实现了最高的安全性和性能
