🚀 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文件。
🔗 鏈接
使用模型上下文協議精心打造 ❤️