🚀 MCP GitHub リポジトリ作成ツール
Model Context Protocol (MCP) サーバーです。GitHub Copilot などの AI アプリケーションがリポジトリを分析し、GitHub リポジトリを自動的に作成するためのツールを提供します。
🚀 クイックスタート
この MCP サーバーを使用することで、AI アプリケーションがリポジトリの分析や GitHub リポジトリの自動作成を行うことができます。以下の手順でセットアップしてください。
✨ 主な機能
- リポジトリ分析:ローカルの 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 サーバーは、3 つの主要なワークフローアプローチをサポートしています。
🤝 対話型 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 がインストールされ、認証されていること
方法 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 統合
このサーバーは Model Context Protocol 仕様を実装しており、さまざまな 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 General Public License v3.0 の下でライセンスされています。詳細は LICENSE ファイルを参照してください。
🔗 リンク
Model Context Protocol を使用して ❤️ で作成されました