GitHub MCP Client for Docker GMU Server について
GitHub MCP Client for Docker GMU Serverは、Claudeが自然言語の依頼を解釈する、GitHub操作向けのPython対話型チャットクライアントです。Docker上のGitHub Multi-User Serverに接続し、ユーザーごとのGitHubトークンを扱います。
主な機能
- 01自然言語でのGitHubチャット
- 02Claudeによるツール選択
- 03ユーザーごとのGitHubトークン認証
- 04リポジトリ、Issue、プルリクエスト操作
- 05GitHub検索ツール
活用シーン
- 01チャットでリポジトリを一覧表示
- 02Issueの作成や更新
- 03プルリクエストと差分の確認
- 04GitHubのリポジトリやコードの検索
MCP 対応
クライアントはMCP経由でDocker上のGMUサーバーに接続し、GitHubツールを呼び出します。Claudeがユーザーの依頼を利用可能なツールに対応させ、結果を表示します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Docker GMU サーバー用 GitHub MCP クライアント
これは、Docker で実行中の GitHub Multi-User Server(GMU)に接続し、Claude を活用した GitHub 操作用のインタラクティブなインターフェースを提供する MCP(Model Context Protocol)クライアントです。
機能
- 🐳 Docker 連携:Docker コンテナで実行中の GMU サーバーに接続します
- 🤖 AI を活用:Claude を使用して自然言語のクエリを解釈し、適切な GitHub ツールを呼び出します
- 🔐 マルチユーザー対応:各リクエストでユーザーごとの GitHub Personal Access Token を使用します
- 🛠️ GitHub API の全機能:リポジトリ、Issue、プルリクエスト、ユーザー、検索などにアクセスできます
- 💬 インタラクティブなチャット:GitHub 操作用の自然言語インターフェースです
前提条件
- Docker と Docker Compose:GMU サーバーが Docker で実行されている必要があります
- Python 3.13 以上:MCP クライアントの実行に必要です
- GitHub Personal Access Token:GitHub API の認証に必要です
- Anthropic API Key:Claude との連携に必要です
クイックセットアップ
1. 依存関係をインストールする
# Using uv (recommended)
uv add mcp anthropic python-dotenv
2. 環境変数を設定する
プロジェクトのルートに .env ファイルを作成します:
# GitHub Personal Access Token
# Get this from: https://github.com/settings/tokens
GITHUB_TOKEN=ghp_your_github_personal_access_token_here
# Anthropic API Key for Claude
# Get this from: https://console.anthropic.com/
ANTHROPIC_API_KEY=sk-ant-your_anthropic_api_key_here
3. GMU サーバーを起動する
# Start the GitHub Multi-User Server in Docker
docker-compose up -d
# Verify it's running
docker ps | grep github-mcp-server-multiuser
使用方法
接続をテストする
まず、すべてが正常に動作していることを確認します:
python test_gmu_connection.py
この包括的なテストでは、以下を確認します:
- ✅ GMU サーバーへの MCP 接続をテストします
- ✅ GitHub トークンの機能を確認します(指定されている場合)
- ✅ Claude との連携をテストします
- ✅ 利用可能なすべての GitHub ツールを一覧表示します
インタラクティブ MCP クライアント
メインのインタラクティブクライアントを実行します:
python tests/test_gmu.py
クライアントは以下を実行します:
- GitHub トークンを求めます(環境変数に設定されていない場合)
- Docker で実行中の GMU サーバーに接続します
- インタラクティブなチャットインターフェースを開始します
コマンドの例
インタラクティブモードでは、自然言語を使用できます:
❓ Query: Get my GitHub user information
❓ Query: List my repositories
❓ Query: how many repos I have
❓ Query: Search for Python repositories with more than 1000 stars
❓ Query: Create an issue in my test repository
❓ Query: List open pull requests in microsoft/vscode
❓ Query: tools (to see all available GitHub tools)
❓ Query: quit (to exit)
利用可能な GitHub ツール
GMU サーバーから、GitHub の幅広い機能を利用できます:
- ユーザー操作:ユーザー情報の取得、ユーザーの検索
- リポジトリ操作:リポジトリの一覧表示、コンテンツの取得、ファイルの作成・更新、ブランチの作成
- Issue 管理:Issue の作成、更新、一覧表示、コメントの追加
- プルリクエスト操作:PR の作成、レビュー、マージ、ファイルや差分の取得
- 検索:リポジトリ、Issue、コード、ユーザーの検索
- その他多数
インタラクティブモードで tools と入力すると、利用可能な 41 個のツールの一覧を確認できます。
アーキテクチャ
┌─────────────────┐ MCP Protocol ┌──────────────────┐ GitHub API ┌─────────────┐
│ MCP Client │◄──────────────────►│ GMU Server │◄─────────────────►│ GitHub │
│ (test_gmu.py) │ │ (Docker) │ │ │
│ │ │ │ │ │
└─────────────────┘ └──────────────────┘ └─────────────┘
│ │
│ Anthropic API │
▼ │
┌─────────────────┐ │
│ Claude │ │ Per-request auth
│ (Anthropic) │ │ with GitHub tokens
└─────────────────┘ ▼
┌──────────────────┐
│ GitHub Tools │
│ (Multi-tenancy) │
└──────────────────┘
動作の仕組み
- 接続:MCP クライアントは
docker execを使用して、Docker で実行中の GMU サーバーに接続します - 認証:各 GitHub API 呼び出しには、リクエストごとの
auth_tokenパラメーターが含まれます - クエリ処理:ユーザーのクエリは、利用可能な GitHub ツールとともに Claude に送信されます
- ツールの実行:Claude が呼び出す GitHub ツールを判断し、MCP 経由で実行します
- 応答:結果が整形され、ユーザーに表示されます
トラブルシューティング
コンテナが実行されていない場合
Error: Container 'github-mcp-server-multiuser' is not running.
Please start the container with: docker-compose up -d
解決策:Docker コンテナを起動します:
docker-compose up -d
GitHub トークンが設定されていない場合
🔑 GitHub Personal Access Token required
解決策:
- https://github.com/settings/tokens で GitHub Personal Access Token を作成します
.envファイルに追加するか、GITHUB_TOKEN環境変数を設定します
Anthropic API Key が設定されていない場合
Error: ANTHROPIC_API_KEY environment variable is required
解決策:
- https://console.anthropic.com/ から API キーを取得します
.envファイルにANTHROPIC_API_KEYとして追加します
JSON シリアル化エラー
最新バージョンでは、シリアル化エラーを防ぐため、MCP コンテンツタイプを堅牢に処理します。
MCP 接続の問題
Error connecting to GMU server: ...
解決策:
- Docker が実行中であることを確認します:
docker ps - コンテナのログを確認します:
docker-compose logs github-mcp-server - コンテナを再起動します:
docker-compose restart
開発
プロジェクト構成
├── tests/
│ └── test_gmu.py # Main MCP client
├── test_gmu_connection.py # Comprehensive connection tests
├── docker-compose.yaml # GMU server configuration
├── pyproject.toml # Project configuration
└── README.md # This file
コントリビューション
- リポジトリをフォークします
- 機能ブランチを作成します
- GMU サーバーでテストします:
python test_gmu_connection.py - インタラクティブクライアントをテストします:
python tests/test_gmu.py - プルリクエストを送信します
ライセンス
このプロジェクトは、GitHub MCP Server Multi-User と同じライセンスに従います。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。