🚀 MCP GitHub仓库创建器
MCP(Model Context Protocol,模型上下文协议)服务器,为GitHub Copilot等AI应用提供工具,用于分析仓库并自动创建GitHub仓库。
🚀 快速开始
本项目提供了一个MCP服务器,可帮助AI应用分析本地git仓库并创建GitHub仓库。以下是使用前的准备步骤和启动方法:
- 克隆仓库:
git clone https://github.com/flickleafy/mcp-github-repo-creator.git
cd mcp-github-repo-creator
- 运行设置脚本:
bash setup.sh
此脚本将完成以下操作:
- 创建Python虚拟环境。
- 安装MCP SDK和依赖项。
- 完成项目的初始化设置。
- 启动MCP服务器:
source venv/bin/activate
python server.py
✨ 主要特性
- 仓库分析:自动分析本地git仓库以提取元数据,支持传统和AI两种分析方法。
- GitHub集成:可创建配置完善的私有GitHub仓库。
- 主题管理:根据项目分析结果自动添加相关主题。
- MCP兼容:可与任何支持MCP的AI客户端(如Copilot、Claude等)协同工作。
- 自动化设置:实现从分析到创建GitHub仓库的完整工作流程。
📦 安装指南
克隆仓库
git clone https://github.com/flickleafy/mcp-github-repo-creator.git
cd mcp-github-repo-creator
运行设置脚本
bash setup.sh
此脚本会创建Python虚拟环境,安装MCP SDK和依赖项,并完成项目的初始化设置。
💻 使用示例
作为MCP服务器使用(推荐)
服务器为AI应用提供了以下工具:
get_repo_analysis_instructions
:获取仓库分析的详细说明。
analyze_and_generate_metadata_file
:分析仓库并生成元数据。
create_github_repo_from_metadata
:根据元数据JSON创建GitHub仓库。
create_github_repository
:使用现有的元数据文件创建仓库。
full_repository_setup
:完成完整的工作流程:分析 → 创建 → 连接。
启动MCP服务器
source venv/bin/activate
python server.py
服务器使用stdio传输协议,兼容以下MCP客户端:
- GitHub Copilot
- Claude Desktop
- VS Code扩展
- 自定义MCP客户端
MCP客户端集成
将MCP客户端配置为连接到本服务器:
{
"name": "github-repo-creator",
"command": "python",
"args": ["server.py"],
"cwd": "/path/to/mcp-github-repo-creator"
}
手动使用(备选)
你也可以直接使用底层功能:
source venv/bin/activate
python create_github_repo.py
python create_github_repo.py --create
python create_github_repo.py --manage-topics
📚 详细文档
工作流程
- 分析:AI分析你的仓库结构、README文件、依赖项和代码。
- 元数据生成:创建包含仓库详细信息的
github_repo_metadata.json
文件。
- 仓库创建:使用GitHub CLI创建私有仓库。
- 配置:设置主题、启用功能并连接本地仓库。
- 推送:将本地代码推送到新的GitHub仓库。
详细工作流类型
MCP服务器支持三种主要的工作流方式:
🤝 交互式Copilot工作流(推荐)
这种方式让Copilot拥有更多控制权,并允许用户进行自定义设置:
- 请求分析说明:要求Copilot分析仓库。
- Copilot使用
get_repo_analysis_instructions
获取详细的分析说明。
- 分析你的仓库结构、README文件和代码。
- 生成元数据:Copilot创建元数据JSON。
- 根据分析结果,Copilot生成仓库元数据。
- 你可以在继续操作之前查看和修改元数据。
- 创建仓库:Copilot创建GitHub仓库。
- 使用生成的元数据调用
create_github_repo_from_metadata
。
- 创建仓库、推送代码并配置设置。
示例对话:
"请分析这个仓库并为其创建一个GitHub仓库。我想在你创建仓库之前查看元数据。"
⚡ 全自动化工作流
适用于无需交互的完全自动化场景:
- 单命令设置:使用
full_repository_setup
工具。
- 自动分析仓库。
- 生成元数据文件。
- 创建GitHub仓库。
- 连接并推送代码。
- 一步完成所有操作。
示例对话:
"使用全自动化方式在GitHub上设置这个项目。"
🛠️ 手动/分步工作流
适用于需要对每个步骤进行精细控制的场景:
- 生成元数据文件:使用
analyze_and_generate_metadata_file
。
- 查看/编辑 生成的
github_repo_metadata.json
文件。
- 创建仓库:使用
create_github_repository
。
示例对话:
"首先,为这个仓库生成一个元数据文件。我想在创建GitHub仓库之前查看它。"
与Copilot的使用示例
配置完成后,你可以使用以下自然语言命令与Copilot交互:
分析仓库
"分析这个仓库并告诉我将为GitHub生成哪些元数据。"
生成元数据文件
"为这个仓库生成一个github_repo_metadata.json文件。"
创建GitHub仓库
"为这个本地项目创建一个GitHub仓库。首先分析它,生成元数据,然后创建GitHub仓库并连接所有内容。"
完整设置
"在GitHub上设置整个项目 - 分析代码,创建适当的元数据,并创建仓库。"
分步示例
"请为这个项目创建一个GitHub仓库。分析代码,生成适当的元数据,并在GitHub上设置仓库。"
Copilot将执行以下操作:
- 分析你的项目结构和代码。
- 检测编程语言和框架。
- 生成主题和描述。
- 创建
github_repo_metadata.json
文件。
- 创建GitHub仓库。
- 将本地仓库连接到GitHub。
- 推送你的代码。
Copilot集成与安装
Copilot集成的先决条件
- GitHub Copilot订阅(个人版、商业版或企业版)。
- 安装了GitHub Copilot扩展的VS Code。
- 已安装并认证的GitHub CLI (
gh
)。
方法1:VS Code Copilot集成(推荐)
- 安装GitHub CLI:
brew install gh
sudo apt install gh
winget install GitHub.cli
- 认证GitHub CLI:
gh auth login
- 克隆并设置本MCP服务器:
git clone https://github.com/flickleafy/mcp-github-repo-creator.git
cd mcp-github-repo-creator
bash setup.sh
- 配置VS Code设置(添加到你的VS Code settings.json):
{
"github.copilot.enable": {
"*": true,
"mcp": true
},
"mcp.servers": {
"github-repo-creator": {
"command": "python",
"args": ["server.py"],
"cwd": "/full/path/to/mcp-github-repo-creator",
"env": {
"PATH": "/full/path/to/mcp-github-repo-creator/venv/bin:${env:PATH}"
}
}
}
}
方法2:Claude Desktop集成
- 从claude.ai安装Claude Desktop。
- 配置Claude Desktop(编辑
~/.config/claude-desktop/config.json
):
{
"mcpServers": {
"github-repo-creator": {
"command": "python",
"args": ["/full/path/to/mcp-github-repo-creator/server.py"],
"env": {
"PATH": "/full/path/to/mcp-github-repo-creator/venv/bin"
}
}
}
}
- 重启Claude Desktop并开始使用命令。
自动安装脚本
通过运行以下命令创建一个简单的安装脚本:
curl -sSL https://raw.githubusercontent.com/flickleafy/mcp-github-repo-creator/main/install-copilot.sh | bash
或者在你的项目中手动创建安装脚本:
cat > install-copilot.sh << 'EOF'
echo "🚀 正在为Copilot安装MCP GitHub仓库创建器..."
command -v python3 >/dev/null 2>&1 || { echo "❌ 需要安装Python 3,但未找到。"; exit 1; }
command -v git >/dev/null 2>&1 || { echo "❌ 需要安装Git,但未找到。"; exit 1; }
if ! command -v gh &> /dev/null; then
echo "📦 正在安装GitHub CLI..."
if [[ "$OSTYPE" == "darwin"* ]]; then
brew install gh
elif [[ "$OSTYPE" == "linux-gnu"* ]]; then
sudo apt update && sudo apt install gh
else
echo "⚠️ 请手动安装GitHub CLI:https://cli.github.com/"
exit 1
fi
fi
INSTALL_DIR="$HOME/.mcp-servers/github-repo-creator"
echo "📁 正在安装到 $INSTALL_DIR..."
mkdir -p "$HOME/.mcp-servers"
git clone https://github.com/flickleafy/mcp-github-repo-creator.git "$INSTALL_DIR"
cd "$INSTALL_DIR"
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
VSCODE_CONFIG="$HOME/.config/Code/User/settings.json"
echo "⚙️ 正在添加VS Code配置..."
echo "✅ 安装完成!"
echo "🔧 下一步操作:"
echo "1. 使用GitHub进行认证:gh auth login"
echo "2. 重启VS Code"
echo "3. 开始使用带有MCP命令的Copilot!"
EOF
chmod +x install-copilot.sh
测试集成
- 在VS Code中打开一个git仓库。
- 与Copilot开始对话并尝试以下命令:
"使用MCP GitHub仓库创建器分析这个仓库并为其创建一个GitHub仓库。"
- Copilot应该会回复仓库分析结果并提供创建GitHub仓库的选项。
要求
- Python 3.8及以上版本。
- 本地Git仓库。
- 已安装并认证的GitHub CLI (
gh
)。
- 用于调用GitHub API的互联网连接。
GitHub CLI设置
安装并认证GitHub CLI:
brew install gh
sudo apt install gh
gh auth login
MCP集成
本服务器实现了模型上下文协议规范,使其与各种AI应用兼容:
可用工具
- 仓库分析:自动提取项目元数据。
- GitHub仓库创建:创建配置完善的仓库。
- 主题管理:根据分析结果添加相关主题。
- 完整工作流程:实现端到端的仓库设置。
支持的传输协议
- stdio(默认):用于直接集成的标准输入/输出。
- 与FastMCP框架兼容,便于部署。
项目结构
mcp-github-repo-creator/
├── server.py # 使用FastMCP的主MCP服务器
├── core/
│ ├── repository_analyzer.py # 仓库分析逻辑
│ └── templates.py # 消息和指令的字符串模板
├── create_github_repo.py # 旧版独立脚本
├── demo.py # 演示MCP客户端
├── requirements.txt # 包括MCP SDK的依赖项
├── setup.sh # 环境设置脚本
├── pyproject.toml # 可选的项目元数据
├── .gitignore # Git忽略规则
└── README.md # 本文件
核心模块
server.py
:向AI客户端提供工具的主MCP服务器。
core/repository_analyzer.py
:包含RepositoryAnalyzer
类,用于分析仓库结构并生成元数据。
core/templates.py
:用于存储所有长字符串消息和指令的模板函数。
create_github_repo.py
:旧版独立脚本(可直接使用)。
demo.py
:展示如何与MCP服务器交互的示例客户端。
示例元数据结构
服务器生成的元数据格式如下:
{
"repository_name": "my-awesome-project",
"description": "🚀 用于自动创建GitHub仓库的强大工具",
"topics": ["python", "automation", "github", "mcp", "ai-tools"],
"created_date": "2025-01-01",
"project_type": "CLI工具",
"primary_language": "Python",
"license": "GPL-3.0",
"features": [
"命令行界面",
"GitHub集成",
"自动分析"
]
}
支持的项目类型
MCP服务器可自动检测并正确分类各种项目类型:
- AI/ML项目:检测TensorFlow、PyTorch、scikit-learn、Transformers、Langchain。
- Web应用:React、Vue、Angular、Svelte、Flask、Django、FastAPI、Express、Next.js。
- CLI工具:命令行应用程序和实用工具。
- API:RESTful服务、GraphQL和微服务。
- 移动应用:React Native、Flutter、Ionic。
- 桌面应用:Electron、Tauri、PyQt、Tkinter。
- 库:软件包、框架和SDK。
- 游戏开发:Unity、Godot、Pygame。
- DevOps工具:Docker、Kubernetes、Terraform配置。
- 数据科学:Jupyter笔记本、数据分析项目。
语言检测
自动检测并支持多种编程语言:
主要语言:Python、JavaScript、TypeScript、Java、C++、C#、Go、Rust、PHP、Ruby、Swift、Kotlin、Scala、R、Shell/Bash。
Web技术:HTML、CSS、Vue、React (JSX/TSX)、Svelte、SCSS/Sass、Less。
专业语言:SQL、YAML、TOML、JSON、Dockerfile、Makefile。
分析器通过检查文件扩展名、依赖项和项目结构来准确确定主要语言和技术栈。
安全与隐私
- 安全认证:使用GitHub CLI进行安全的基于令牌的认证。
- 默认私有:默认创建私有仓库以确保安全。
- 无数据存储:元数据文件中不存储敏感数据。
- 本地处理:仓库分析在本地机器上进行。
- 遵循GitHub最佳实践:遵循GitHub的安全建议。
- 最小权限令牌:通过GitHub CLI使用最小必要权限的令牌。
限制
- 需要GitHub CLI:必须安装并认证GitHub CLI。
- 需要Git仓库:必须在有提交记录的Git仓库中运行。
- 仅支持私有仓库:默认创建私有仓库(创建后可手动更改)。
- 受GitHub API限制:受GitHub API速率限制的影响。
- 主题限制:仅支持符合GitHub主题要求的仓库(最多20个主题)。
- 网络依赖:调用GitHub API需要互联网连接。
错误处理
MCP服务器提供了全面的错误处理机制,针对常见问题给出清晰的错误信息:
仓库错误
- 缺少Git仓库:提供初始化Git仓库的明确说明。
- 无提交记录:指导用户进行初始提交。
- 有未跟踪文件:提示用户添加并提交文件。
认证错误
- 未找到GitHub CLI:提供安装说明。
- 未认证:提供认证设置指导。
- 令牌过期:提供重新认证的步骤。
GitHub API错误
- 仓库名称冲突:提供替代名称建议。
- 权限问题:提供故障排除步骤。
- 速率限制:建议等待时间。
故障排除
常见问题及解决方案
"Not a git repository"错误
git init
git add .
git commit -m "Initial commit"
"GitHub CLI not authenticated"错误
gh auth status
gh auth login
"Permission denied"错误
解决方案:
- 检查GitHub CLI认证状态:
gh auth status
。
- 确保你有在账户中创建仓库的权限。
- 验证你的GitHub令牌具有适当的权限范围。
- 对于组织仓库,检查组织权限。
"Repository name already exists"错误
解决方案:
- 选择不同的仓库名称。
- 检查你的GitHub账户中是否已存在该仓库。
- 使用错误消息中建议的替代名称。
- 添加后缀或前缀以使名称唯一。
"GitHub API rate limit exceeded"错误
解决方案:
- 等待速率限制重置(通常为1小时)。
- 使用认证请求(确保已完成
gh auth login
)。
- 对于高频率使用场景,考虑遵循GitHub API速率限制的最佳实践。
"Invalid metadata format"错误
解决方案:
- 检查生成的
github_repo_metadata.json
文件是否存在语法错误。
- 确保所有必需字段都存在。
- 使用JSON验证器验证JSON格式。
- 重新运行元数据生成工具。
"Network connectivity issues"错误
解决方案:
- 检查互联网连接。
- 验证是否可以访问GitHub.com。
- 检查防火墙或代理设置。
- 在网络问题解决后重试。
🤝 贡献
- 如果你喜欢这个项目,请给仓库点个⭐。
- 创建一个功能分支,进行修改并提交拉取请求。
- 确保你的代码遵循项目的编码标准。
- 为新功能或错误修复添加测试。
- 根据需要更新文档。
📄 许可证
本项目采用GNU通用公共许可证v3.0,详情请参阅LICENSE文件。
🔗 链接
使用模型上下文协议精心打造 ❤️