Servers
GitHub SSH MCP Server - 智能访问检测版
@pyz11
增强版GitHub MCP Server,支持智能SSH访问检测和自动访问方式切换
🚀 项目简介
这是一个增强版的GitHub MCP (Model Context Protocol) Server,专门为Cursor IDE和其他支持MCP的工具设计。本项目在原有GitHub MCP Server基础上,添加了智能SSH访问检测功能,能够自动检测并选择最佳的GitHub访问方式。
✨ 核心功能特性
🔐 智能SSH访问检测
- 自动SSH密钥检测: 扫描常见SSH密钥文件(id_rsa, id_ed25519, id_ecdsa, id_dsa)
- SSH配置验证: 检查SSH客户端和Git配置
- 实时连接测试: 测试GitHub SSH连接(端口22)的可用性
- 智能访问切换: 优先使用SSH,不可用时自动切换到HTTPS
- 结果缓存机制: 5分钟缓存避免频繁检测,提高性能
🛠️ 新增MCP工具
- get_github_access_info: 获取当前GitHub访问方式信息
- test_github_access: 测试GitHub访问方式并强制刷新缓存
- convert_github_url: 在SSH和HTTPS URL格式之间转换
🔧 完整的GitHub操作支持
- 仓库管理(创建、搜索、分支操作)
- Issue和Pull Request管理
- 代码扫描和安全警报
- 通知管理
- 用户和组织信息获取
- 文件操作(读取、创建、更新、删除)
🏗️ 技术架构
访问检测流程
SSH密钥检测 → SSH配置验证 → 连接测试 → 结果缓存 → 智能选择访问方式
核心组件
- GitHubAccessDetector: 核心检测器,负责SSH可用性检测
- SSHClient: SSH客户端,处理Git SSH操作
- AccessTools: MCP工具集,提供访问检测相关功能
📦 安装和配置
前置要求
- Go 1.21+
- Git客户端
- GitHub Personal Access Token
- SSH密钥(可选,用于SSH访问)
编译安装
# 克隆项目
git clone https://github.com/pyz11/githubSSH-mcp-server.git
cd githubSSH-mcp-server
# 编译
go build -o github-mcp-server.exe ./cmd/github-mcp-server
# 复制到系统路径(可选)
copy github-mcp-server.exe C:\Users\%USERNAME%\go\bin\
Cursor配置
在Cursor的设置中添加MCP服务器配置:
{
"mcpServers": {
"github": {
"command": "C:\\Users\\%USERNAME%\\go\\bin\\github-mcp-server.exe",
"args": ["stdio"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "your_github_token_here"
}
}
}
}
🔍 使用示例
检查GitHub访问方式
{
"tool": "get_github_access_info",
"arguments": {}
}
测试SSH连接
{
"tool": "test_github_access",
"arguments": {
"force_refresh": true
}
}
URL格式转换
{
"tool": "convert_github_url",
"arguments": {
"url": "https://github.com/user/repo.git",
"target_format": "ssh"
}
}
🛡️ 安全特性
- 无私钥读取: 只检测密钥文件存在性,不读取私钥内容
- 安全连接测试: 仅进行连接测试,不传输敏感数据
- Token保护: GitHub Token通过环境变量安全传递
- 权限最小化: 只请求必要的GitHub API权限
🔧 配置选项
环境变量
GITHUB_PERSONAL_ACCESS_TOKEN: GitHub个人访问令牌(必需)SSH_AUTH_SOCK: SSH Agent套接字路径(可选)HOME/USERPROFILE: 用户主目录,用于查找SSH密钥
SSH密钥支持
- RSA密钥:
~/.ssh/id_rsa - Ed25519密钥:
~/.ssh/id_ed25519 - ECDSA密钥:
~/.ssh/id_ecdsa - DSA密钥:
~/.ssh/id_dsa
📊 性能优化
- 智能缓存: SSH检测结果缓存5分钟
- 并发安全: 使用互斥锁保护并发访问
- 连接复用: 复用HTTP客户端连接
- 超时控制: 合理的连接超时设置
🐛 故障排除
常见问题
- SSH检测失败: 检查SSH密钥是否存在且权限正确
- 连接超时: 检查网络连接和防火墙设置
- Token无效: 验证GitHub Token权限和有效性
诊断工具
项目包含诊断脚本:
.\diagnose_mcp.ps1
🤝 贡献指南
欢迎提交Issue和Pull Request!
开发环境设置
# 安装依赖
go mod download
# 运行测试
go test ./...
# 构建
go build ./cmd/github-mcp-server
📄 许可证
本项目基于原GitHub MCP Server项目,遵循相同的开源许可证。
🙏 致谢
- 感谢GitHub MCP Server原项目团队
- 感谢MCP协议开发团队
- 感谢所有贡献者
📞 联系方式
- GitHub: @pyz11
- 项目地址: githubSSH-mcp-server
让GitHub访问更智能,让开发更高效! 🚀