← 技術実践に戻る

MCP

GitHub MCP Server のデプロイ方法:Windows / Linux / macOS 全プラットフォーム解説

約 12 分で読めます

GitHub MCP Server は GitHub が公式にメンテナンスする Model Context Protocol サーバーで、Cursor、Claude Desktop、VS Code Copilot などの AI ホストが標準化されたツール呼び出しを通じて GitHub REST / GraphQL API にアクセスできるようにします——リポジトリの検索、Issue の閲覧、PR の作成、コード検索などを、チャットに gh コマンドの出力を何度も貼り付ける必要なく行えます。

本記事では「まず方式を選び、次に環境を構築し、最後に IDE に接続する」という順序で、Windows、Linux、macOS の 3 つのインストール手順を解説し、コピーしてそのまま使える設定スニペットとトラブルシューティングのチェックリストも付けています。

2025 年 4 月以降、コミュニティ向けの旧 npm パッケージ @modelcontextprotocol/server-github は廃止されました。現在公式にサポートされているローカルイメージは ghcr.io/github/github-mcp-server のみで、リモートホストのエンドポイントは https://api.githubcopilot.com/mcp/ です。


デプロイ方式の選び方

ソフトウェアをインストールする前に、まず下の表を参照して、どのルートを取るか決めましょう:

方式 ローカルプロセスが必要か 向いているシーン プラットフォーム要件
リモートホスト いいえ(HTTP 直結) ローカルで Docker を動かしたくない、GitHub にアクセスできるネットワーク環境 任意(ホストが Streamable HTTP に対応していること)
Docker ローカル はい(コンテナ stdio) 多くのユーザーにとっての第一候補。バージョンが揃い、アップグレードも容易 Win / Linux / macOS いずれも Docker が必要
Go ソースからビルド はい(ネイティブバイナリ) Docker なし、toolset のカスタマイズや企業内ネットワーク向け 3 プラットフォームいずれも go build 可能

3 つの方式とも認証ロジックは同じです:Personal Access Token(PAT) を設定するか、ローカルの Docker / バイナリモードでは OAuth ブラウザログイン(トークンはメモリにのみ保持され、ディスクには保存されない)を使います。


共通の事前準備

どのルートを選んでも、まず次の 4 ステップを完了しておくことをおすすめします:

  1. GitHub PAT の作成
    Fine-grained PAT 作成ページ を開き、使うツールに応じて権限にチェックを入れます。リポジトリの読み取り専用閲覧には通常 Contents: ReadMetadata: Read が必要です。PR / Issue の作成も行う場合は、書き込み権限を追加してください。

  2. ホストのバージョン確認
    - Cursor:リモート Streamable HTTP には v0.48.0 以降が必要
    - Claude Desktop / VS Code:各 MCP ドキュメントを参照

  3. (ローカル Docker 方式)Docker のインストールと起動
    - Windows / macOS:Docker Desktop
    - Linux:Docker Engine + 現在のユーザーを docker グループに追加

  4. イメージの事前プル(任意だが推奨)

docker pull ghcr.io/github/github-mcp-server

プル時に unauthorized が出た場合は、docker logout ghcr.io を実行してから再試行してください——期限切れの ghcr ログイン状態が原因のことがあります。


方式一:リモートホスト(最も手軽)

GitHub は https://api.githubcopilot.com/mcp/ でホスト型 MCP エンドポイントを提供しており、ローカルに Docker は不要です。Linux サーバー、Windows の軽量環境、または社内ポリシーでコンテナ実行が禁止されている場合に適しています。

Cursor 設定例

グローバル設定 ~/.cursor/mcp.json を編集します(Windows のパスは %USERPROFILE%\.cursor\mcp.json):

{
  "mcpServers": {
    "github": {
      "url": "https://api.githubcopilot.com/mcp/",
      "headers": {
        "Authorization": "Bearer YOUR_GITHUB_PAT"
      }
    }
  }
}

YOUR_GITHUB_PAT を実際のトークンに置き換え、保存後に Cursor を完全に再起動してください。Settings → Tools & Integrations → MCP Tools に緑色のオンライン表示が出るはずです。Composer で「私の GitHub リポジトリを一覧表示して」と聞いて動作確認できます。

注意事項

  • リモートモードは現在 PAT 認証が中心です。一部のホストでは OAuth サポートがまだ整備中です。
  • 社内プロキシ / ファイアウォールでは api.githubcopilot.com への HTTPS 送信を許可する必要があります。
  • PAT をバージョン管理リポジトリに書き込まないでください。プロジェクト単位の設定で .cursor/mcp.json を使う場合は .gitignore に追加することを忘れずに。

方式二:Docker ローカルデプロイ(公式推奨)

Docker 方式は stdio でホストと通信します:ホストが docker run -i ... を起動し、コンテナ内プロセスが標準入出力を読み書きします。これも Claude Desktop、Windsurf、Cursor のワンクリックインストールボタンの背後にあるデフォルトコマンドです。

macOS インストール手順

  1. Docker Desktop for Mac をインストール(Apple Silicon は ARM64 版を選択)。
  2. メニューバーのクジラアイコンが Running になっていることを確認。
  3. ターミナルで検証:
docker run --rm ghcr.io/github/github-mcp-server --help
  1. ~/.cursor/mcp.json に書き込み:
{
  "mcpServers": {
    "github": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "GITHUB_PERSONAL_ACCESS_TOKEN",
        "ghcr.io/github/github-mcp-server"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "YOUR_GITHUB_PAT"
      }
    }
  }
}

Linux インストール手順

  1. ディストリビューションに応じて Docker Engine をインストール(Ubuntu の例:sudo apt install docker.io)。
  2. ユーザーを docker グループに追加し、毎回 sudo しなくて済むようにする:
sudo usermod -aG docker "$USER"
newgrp docker
  1. Docker デーモンが起動していることを確認:sudo systemctl enable --now docker
  2. MCP 設定は macOS とまったく同じ——~/.cursor/mcp.json のパスも同様です。

GUI のない Linux サーバーで、設定ファイルに PAT を平文で書きたくない場合は、環境変数での注入に切り替えられます:

export GITHUB_PERSONAL_ACCESS_TOKEN="ghp_xxxx"

その後、mcp.jsonenv ブロックで同名の変数を参照します(一部のホストは ${env:GITHUB_PERSONAL_ACCESS_TOKEN} 構文をサポートしています。ホストのドキュメントを参照してください)。

Windows インストール手順

  1. Docker Desktop for Windows をインストール。
    - WSL 2 バックエンドを推奨(Settings → General → Use WSL 2 based engine)。
  2. Docker Desktop のトレイアイコンが実行中であることを確認。
  3. 設定ファイルのパス:%USERPROFILE%\.cursor\mcp.json
  4. JSON の内容は macOS と同じ;commanddocker のまま(Docker Desktop が CLI を PATH に追加します)。

Windows でよくある落とし穴:WSL 内では docker が動いても、Windows ホストの Cursor が読むのは Windows 側の mcp.json です——両方の設定を混在させないでください。Cursor が Windows にインストールされ、プロジェクトが WSL にある場合は、Windows のユーザーディレクトリで MCP を設定するのが優先です。

OAuth ログイン(PAT を手書き不要)

公式イメージには OAuth アプリの認証情報が組み込まれています。Docker モードではコールバックポートをローカルのループバックアドレスにマッピングする必要があります:

{
  "mcpServers": {
    "github": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-p", "127.0.0.1:8085:8085",
        "-e", "GITHUB_OAUTH_CALLBACK_PORT",
        "ghcr.io/github/github-mcp-server"
      ],
      "env": {
        "GITHUB_OAUTH_CALLBACK_PORT": "8085"
      }
    }
  }
}

初回接続時にブラウザが開き、GitHub ログインを完了します。トークンはメモリに保存され、コンテナ終了時に失効します。ヘッドレスサーバーでは、公式ドキュメントの device code フォールバック手順を参照してください。


方式三:Go ソースからビルド(Docker なし)

Docker をインストールできない場合や、toolset を絞り込み(一部の API 機能だけを公開)たい場合に適しています。

3 プラットフォーム共通の手順

前提Go 1.24+ をインストール。

git clone https://github.com/github/github-mcp-server.git
cd github-mcp-server
go build -o github-mcp-server cmd/github-mcp-server/main.go

ビルド成果物の名前は任意です。以下では ./github-mcp-server を例にします。

PAT で起動(stdio モード)

export GITHUB_PERSONAL_ACCESS_TOKEN="ghp_xxxx"
./github-mcp-server stdio

Cursor にローカルバイナリを接続

{
  "mcpServers": {
    "github": {
      "command": "/絶対パス/github-mcp-server",
      "args": ["stdio"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "YOUR_GITHUB_PAT"
      }
    }
  }
}
プラットフォーム バイナリパスの例 備考
macOS /Users/you/bin/github-mcp-server chmod +x 後に ~/bin に置ける
Linux /home/you/.local/bin/github-mcp-server systemd ユーザーサービスで常駐プロセスを管理可能
Windows C:\\Tools\\github-mcp-server.exe JSON 内のバックスラッシュは \\ と書く

アップグレード時は git pull && go build を再実行するだけでよく、Docker イメージのリリースを待つ必要はありません。


他の IDE と CLI への接続

設定キー名はホストによって異なりますが、Docker コマンドラインのコアは同じです:

docker run -i --rm \
  -e GITHUB_PERSONAL_ACCESS_TOKEN \
  ghcr.io/github/github-mcp-server
  • Claude Desktopclaude_desktop_config.jsonmcpServers ブロックは、Cursor と同じ構造です。
  • VS Code Copilot:リモート + ローカルの両方に対応。ローカルも Docker イメージを推奨。
  • Claude Code CLI:軽量なバイナリ方式を好み、コンテナのオーバーヘッドを減らします。

各ホストの完全な例は、公式リポジトリの docs/installation-guides/ ディレクトリを参照してください。


セキュリティと運用の推奨事項

  1. 最小権限の PAT:toolset に応じて権限を付与し、定期的にローテーションする。
  2. 設定ファイルのパーミッションchmod 600 ~/.cursor/mcp.json(Linux / macOS)。
  3. 読み取り専用モード:起動パラメータで read-only を有効にし、AI によるリポジトリの誤変更を防ぐ。
  4. 企業向け GitHub Enterprise Server:OAuth App / GitHub App を自前で構築する必要があり、github.com のデフォルト OAuth 認証情報は使えません——公式の docs/oauth-login.md を参照してください。

プラットフォーム差分の補足

パスと環境変数

~/.cursor/mcp.json
macOS と Linux のグローバル MCP 設定。Windows では %USERPROFILE%\.cursor\mcp.json に対応。
GITHUB_PERSONAL_ACCESS_TOKEN
Docker / バイナリモードでの PAT 環境変数名。設定すると OAuth フローより優先される。
GITHUB_OAUTH_CALLBACK_PORT
OAuth ブラウザコールバックの待ち受けポート。Docker 環境では通常 8085 に固定。

ショートカットと慣習的な使い方

Cursor Composer では、Cmd+Shift+P(Windows では Ctrl+Shift+P)でコマンドパレットを開き、MCP 関連の設定を検索できます。以前は npx @modelcontextprotocol/server-github の一行コマンドでサービスを起動する習慣がありました——この方式は廃止されているため、本記事の Docker またはリモートエンドポイント方式に切り替えてください。

本番環境では必ず PAT を環境変数またはシークレットマネージャーに置き、git で追跡されるプロジェクトファイルに書き込まないでください。

検証チェックリスト(公開前)

  1. MCP パネルの緑のインジケーター
  2. ツール一覧に github_* プレフィックスの項目が表示される
  3. 読み取り専用操作(リポジトリ一覧など)の試行が成功する
ログの場所

Cursor のログは Help → Toggle Developer Tools → ConsoleMCP キーワードをフィルタして確認できます。Claude Desktop のログパスはプラットフォームによって異なり、公式の troubleshooting セクションに完全な一覧があります。


トラブルシューティング早見表

現象 想定される原因 対処
MCP が赤点 / ツール一覧が空 JSON の構文エラー、またはホスト未再起動 JSON を検証し、Cursor を完全終了してから再起動
docker: command not found Docker 未インストール、または PATH 未設定 Docker Desktop / Engine を再インストール
pull access denied ghcr のログイン状態の期限切れ docker logout ghcr.io 後に再プル
401 / 403 PAT の権限不足または期限切れ PAT を再発行し設定を更新
OAuth コールバック失敗 ポート 8085 がマッピングされていない -p 127.0.0.1:8085:8085 を確認
リモート HTTP に接続できない プロキシによる遮断 システムプロキシを設定するか、ローカル Docker に切り替え

ローカルでの簡易自己診断:ターミナルで Docker コマンドを手動実行し、stderr に即座にエラーが出ないか確認する。次に IDE ログの MCP 起動コマンドが一致しているか比較する。


まとめ

  • 最速で使いたい:リモート https://api.githubcopilot.com/mcp/ + PAT。Cursor v0.48+ なら url を直接設定。
  • 安定して再現したい:3 プラットフォーム共通で docker run -i --rm ... ghcr.io/github/github-mcp-server
  • 極限まで軽量またはカスタマイズしたいgo build でバイナリを作成し、stdio で接続。

デプロイ完了後、AI 対話で自然言語から GitHub を操作する——例えば「kvmkit リポジトリの直近 5 件の open issue を要約して」——ここが MCP が本当に時間を節約してくれる場面です。CI/CD パイプラインの構築や 7×24 のクラウド Mac ビルドノードが必要な場合は、MCP による開発支援と自動化リリースを同じツールチェーンでまとめて計画するのも一案です。

よくある質問

GitHub MCP Server は Docker 必須ですか?

いいえ。Docker はクロスプラットフォームで一貫性があり更新も簡単なため推奨されていますが、GitHub ホストの https://api.githubcopilot.com/mcp/ を使うか、Go バイナリをローカルでビルドして stdio で実行することもできます。

npm パッケージ @modelcontextprotocol/server-github はまだ使えますか?

使えません。2025年4月以降メンテナンス終了です。公式 Docker イメージ ghcr.io/github/github-mcp-server か github/github-mcp-server リポジトリからのビルドを使ってください。

Windows で Docker Desktop が起動していないとどうなりますか?

Cursor などのホストは MCP パネルで赤点や接続エラーを表示します。Docker Desktop を起動し、docker pull ghcr.io/github/github-mcp-server でイメージ取得を確認してください。

Personal Access Token にはどの権限が必要ですか?

有効にするツールセット次第です。読み取り専用のリポジトリ閲覧には Contents・Metadata の読み取り権限が一般的です。Issue・PR 作成や push には書き込み権限が追加で必要です。Fine-grained PAT を最小権限で作成してください。

M4 Mac mini で CI/CD を回すのが一番ラク

Xcode, Fastlane, CocoaPods, and SPM are first-class on macOS. Mac mini M4 unified memory keeps signing and archiving smooth; ~4W standby power suits 24/7 build nodes.

View Kvmkit plans

技術サポートや選定のアドバイスが必要ですか?

Mac インスタンスや CI/CD パイプラインで問題があれば、まずヘルプセンターをご覧ください。