mcpField
G
GitHub MCP Client for Docker GMU Server

GitHub MCP Client for Docker GMU Server

ローカル
github.com/devendershekhawatバージョン管理073 週間前に更新

GitHub MCP Client for Docker GMU Server について

GitHub MCP Client for Docker GMU Serverは、Claudeが自然言語の依頼を解釈する、GitHub操作向けのPython対話型チャットクライアントです。Docker上のGitHub Multi-User Serverに接続し、ユーザーごとのGitHubトークンを扱います。

主な機能

  1. 01自然言語でのGitHubチャット
  2. 02Claudeによるツール選択
  3. 03ユーザーごとのGitHubトークン認証
  4. 04リポジトリ、Issue、プルリクエスト操作
  5. 05GitHub検索ツール

活用シーン

  1. 01チャットでリポジトリを一覧表示
  2. 02Issueの作成や更新
  3. 03プルリクエストと差分の確認
  4. 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 操作用の自然言語インターフェースです

前提条件

  1. Docker と Docker Compose:GMU サーバーが Docker で実行されている必要があります
  2. Python 3.13 以上:MCP クライアントの実行に必要です
  3. GitHub Personal Access Token:GitHub API の認証に必要です
  4. 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

クライアントは以下を実行します:

  1. GitHub トークンを求めます(環境変数に設定されていない場合)
  2. Docker で実行中の GMU サーバーに接続します
  3. インタラクティブなチャットインターフェースを開始します
コマンドの例

インタラクティブモードでは、自然言語を使用できます:

❓ 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)  │
                                      └──────────────────┘

動作の仕組み

  1. 接続:MCP クライアントは docker exec を使用して、Docker で実行中の GMU サーバーに接続します
  2. 認証:各 GitHub API 呼び出しには、リクエストごとの auth_token パラメーターが含まれます
  3. クエリ処理:ユーザーのクエリは、利用可能な GitHub ツールとともに Claude に送信されます
  4. ツールの実行:Claude が呼び出す GitHub ツールを判断し、MCP 経由で実行します
  5. 応答:結果が整形され、ユーザーに表示されます

トラブルシューティング

コンテナが実行されていない場合
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

解決策:

  1. https://github.com/settings/tokens で GitHub Personal Access Token を作成します
  2. .env ファイルに追加するか、GITHUB_TOKEN 環境変数を設定します
Anthropic API Key が設定されていない場合
Error: ANTHROPIC_API_KEY environment variable is required

解決策:

  1. https://console.anthropic.com/ から API キーを取得します
  2. .env ファイルに ANTHROPIC_API_KEY として追加します
JSON シリアル化エラー

最新バージョンでは、シリアル化エラーを防ぐため、MCP コンテンツタイプを堅牢に処理します。

MCP 接続の問題
Error connecting to GMU server: ...

解決策:

  1. Docker が実行中であることを確認します:docker ps
  2. コンテナのログを確認します:docker-compose logs github-mcp-server
  3. コンテナを再起動します: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
コントリビューション
  1. リポジトリをフォークします
  2. 機能ブランチを作成します
  3. GMU サーバーでテストします:python test_gmu_connection.py
  4. インタラクティブクライアントをテストします:python tests/test_gmu.py
  5. プルリクエストを送信します

ライセンス

このプロジェクトは、GitHub MCP Server Multi-User と同じライセンスに従います。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。