GitHub MCP Server - Local Docker Setup について
GitHub MCP Server を Docker Compose でローカル実行するための構成です。ポート 3000 で HTTP アクセスでき、GitHub ツールセットの設定とコンテナの自動再起動に対応します。
主な機能
- 01Docker Compose による起動
- 02ポート 3000 での HTTP アクセス
- 03GitHub ツールセットの設定
- 04コンテナの自動再起動
活用シーン
- 01GitHub MCP Server のローカル実行
- 02指定した GitHub ツールセットの有効化
- 03HTTP MCP クライアントとの接続
MCP 対応
GitHub MCP Server を実行し、`/mcp` の HTTP エンドポイントで MCP リクエストを受け付けます。設定した GitHub ツールセットを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
GitHub MCP サーバー - ローカル Docker セットアップ
このリポジトリでは、Docker Compose を使用して、ポート 3000 で HTTP アクセス可能な GitHub MCP サーバーをローカルで簡単に実行できます。
GitHub MCP サーバーとは?
GitHub MCP サーバーは、Model Context Protocol(MCP)サーバーです。GitHub API とシームレスに連携し、開発者やツール向けに高度な自動化と操作機能を提供します。
特長
- 簡単なセットアップ:
docker-compose upを実行するだけでサーバーを起動できます - HTTP アクセス:ポート 3000 で HTTP 経由で MCP サーバーにアクセスできます
- 設定可能:GitHub MCP サーバーのすべての設定オプションに対応しています
- 自動再起動:コンテナーは障害発生時に自動的に再起動します
クイックスタート
前提条件
- Docker がインストールされ、実行されていること
- Docker Compose がインストールされていること
- GitHub Personal Access Token
セットアップ
-
このリポジトリをクローンします:
git clone https://github.com/shesadri/github-mcp-server-local.git cd github-mcp-server-local -
環境ファイルを作成します:
cp .env.example .env -
GitHub トークンを設定します:
.envファイルを編集し、your_github_token_hereを実際の GitHub Personal Access Token に置き換えます。 -
サーバーを起動します:
docker-compose up -d -
サーバーにアクセスします: サーバーは
http://localhost:3000で利用できます
設定
環境変数
| 変数 | 説明 | デフォルト |
|---|---|---|
GITHUB_PERSONAL_ACCESS_TOKEN | GitHub Personal Access Token | 必須 |
GITHUB_TOOLSETS | 有効にするツールセットのカンマ区切りリスト | all |
GITHUB_DYNAMIC_TOOLSETS | 動的なツールセットの検出を有効にします(0 または 1) | 0 |
PORT | HTTP サーバーのポート | 3000 |
利用可能なツールセット
repos- リポジトリ関連のツール(ファイル操作、ブランチ、コミット)issues- Issue 関連のツール(作成、読み取り、更新、コメント)users- GitHub ユーザーに関する機能pull_requests- プルリクエスト操作(作成、マージ、レビュー)code_security- コードスキャンアラートとセキュリティ機能experiments- 実験的な機能(安定版とは見なされません)
特定のツールセットを有効にするには、.env ファイルで GITHUB_TOOLSETS=repos,issues,pull_requests を設定します。
使用方法
サーバーのステータスを確認する
curl http://localhost:3000/health
MCP リクエストを送信する
サーバーは HTTP POST 経由で MCP プロトコルのリクエストを受け付けます。
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list",
"params": {}
}'
Docker コマンド
サービスを起動する
docker-compose up -d
サービスを停止する
docker-compose down
ログを表示する
docker-compose logs -f
再ビルドして再起動する
docker-compose down
docker-compose build --no-cache
docker-compose up -d
トラブルシューティング
コンテナーが実行中か確認する
docker-compose ps
コンテナーログを表示する
docker-compose logs github-mcp-server
docker-compose logs mcp-http-proxy
すべてをリセットする
docker-compose down -v
docker-compose up -d
セキュリティに関する注意事項
- GitHub Personal Access Token を安全に保管してください
- ユースケースに必要な最小限の権限のみを付与してください
- 本番環境へのデプロイでは GitHub App トークンの使用を検討してください
- サーバーはデフォルトで localhost 上で実行されます。適切にファイアウォールルールを設定してください
貢献
貢献を歓迎します!お気軽にプルリクエストを送信してください。
ライセンス
このプロジェクトは MIT License の下でライセンスされています。ライセンスの詳細については、元のGitHub MCP サーバーを参照してください。
関連プロジェクト
- GitHub MCP サーバー - 元の GitHub MCP サーバー
- Model Context Protocol - MCP の詳細はこちら
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。