MCP.so
ログイン
ブログに戻る

Claude Code に GitHub MCP をインストールする方法(リモート・ローカル)

2026年10月15日MCP.so TeamMCP.so Team

Claude Code に GitHub MCP をインストールする方法。PAT で公式リモートサーバーに接続、または Docker の OAuth でローカル実行し、ツールセットと読み取り専用モードを選び、エラーを解決します。

結論

Claude Code に GitHub MCP をインストールするには、GitHub の個人アクセストークン(PAT)を作成し、claude mcp add --transport http github https://api.githubcopilot.com/mcp/ --header "Authorization: Bearer $GITHUB_PAT" を実行してから claude を起動し、/mcp で github にチェックマークが付いていることを確認します。これは GitHub 公式のホスト型サーバーへの接続なので、インストールや更新の手間はありません。

トークンを管理したくない場合は、Docker でローカルにサーバーを動かす方法もあります。初回利用時にブラウザで GitHub のログインが開き、トークンはメモリ上にのみ保持されます。どちらも github/github-mcp-server の公式 GitHub MCP サーバーを使います。

リモートかローカルか

リモート(GitHub がホスト)ローカル(Docker またはバイナリ)
エンドポイントhttps://api.githubcopilot.com/mcp/自分のマシンで stdio として動作
Claude Code での認証Authorization ヘッダーの PAT組み込みの OAuth ログインまたは PAT
Docker不要Docker またはリリース版バイナリ
更新自動イメージやバイナリを自分で更新
追加ツールcopilot_spaces などリモート専用のツールセットコアのツールセット
ツールの選び方URL パスまたは X-MCP-* ヘッダーGITHUB_TOOLSETS、--toolsets
GitHub Enterprise Server本記事では扱わないローカルサーバーで対応

ほとんどの人はリモートから始めるのがよいでしょう。長期間有効なトークンの代わりに OAuth を使いたい、GitHub Enterprise Server が必要、あるいは通信を自分のマシン内に留めたい場合はローカルを選びます。

前提条件

  • Claude Code がインストール済みであること。GitHub 公式ガイドの推奨どおり、プロジェクトのディレクトリ内で起動すると設定の適用範囲が明確になります。
  • リモートサーバーまたは PAT ベースのローカル設定には GitHub の個人アクセストークンが必要です。github.com/settings/personal-access-tokens/new で作成します。
  • ローカルの Docker 方式には、インストール済みで起動中の Docker が必要です。

トークンを作成する

必要な権限だけを付与します。GitHub の README では、以下のクラシックスコープが基本として挙げられています。

スコープ用途
repoリポジトリ、Issue、Pull Request の操作
read:orgOrganization とチームへのアクセス
read:packagesDocker イメージへのアクセス

Fine-grained トークンの場合は、対象のリポジトリと、有効にする予定のツールセットに合った権限を選びます。Organization によっては PAT が制限されていたり、承認が必要だったりします。プロジェクトごとに別のトークンを使い、定期的にローテーションし、絶対にコミットしないでください。

トークンがシェル履歴に残らないよう、環境変数か gitignore 済みの .env ファイルに入れておきます。

export GITHUB_PAT="your_token_here"   # placeholder, not a real token

方法 1:リモートサーバー(推奨)

ステップ 1:サーバーを追加する

Claude Code の MCP ドキュメントにある書き方です。

claude mcp add --transport http github https://api.githubcopilot.com/mcp/ \
  --header "Authorization: Bearer $GITHUB_PAT"

GitHub の Claude 向けインストールガイドでは、Claude Code 2.1.1 以降向けに add-json を使っています。

claude mcp add-json github \
  '{"type":"http","url":"https://api.githubcopilot.com/mcp","headers":{"Authorization":"Bearer '"$GITHUB_PAT"'"}}'

どちらも保存される内容は同じです。Claude Code が読む前にシェルが $GITHUB_PAT を実際の値に置き換えるため、Claude Code の設定に保存されるのは変数名ではなくトークンそのものです。

ステップ 2:スコープを選ぶ

スコープフラグ保存先向いている場面
local(デフォルト)なし~/.claude.json、このプロジェクトのみ1 つのリポジトリを自分だけで使う
user--scope user~/.claude.json、全プロジェクトどこでも GitHub を使いたい(最も一般的)
project--scope projectリポジトリの .mcp.jsonチーム全員に配りたい

project スコープでは、トークンを .mcp.json に貼り付けてはいけません。Claude Code はこのファイル内の環境変数を展開するので、次の内容をコミットし、各メンバーに自分で GITHUB_PAT を設定してもらいます。

{
  "mcpServers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/",
      "headers": {
        "Authorization": "Bearer ${GITHUB_PAT}"
      }
    }
  }
}

リモートサーバーで OAuth は使える?

GitHub の README によると、リモートサーバーで OAuth を使うには、各ホストアプリが GitHub App または OAuth App を登録している必要があり、リモートサーバーに対応するホストならどれでも PAT 認証が使えます。そのため GitHub の Claude 向けガイドは PAT を使っています。トークンの代わりにブラウザでログインしたい場合は、OAuth が組み込まれた次のローカルサーバーを使ってください。

方法 2:Docker でローカルサーバーを動かす

OAuth ログイン(トークン不要)

公式イメージには GitHub の OAuth アプリの認証情報が組み込まれているので、github.com なら何も用意する必要はありません。固定のコールバックポートをループバックに公開します。

claude mcp add github -e GITHUB_OAUTH_CALLBACK_PORT=8085 -- \
  docker run -i --rm -p 127.0.0.1:8085:8085 \
  -e GITHUB_OAUTH_CALLBACK_PORT ghcr.io/github/github-mcp-server

最初のツール呼び出しで、サーバーが GitHub の認可ページを開きます。トークンはメモリ上にのみ保持されるため、サーバーの再起動後は再度サインインが必要になります。

PAT を使う

PAT は OAuth より優先されます。

claude mcp add github -e GITHUB_PERSONAL_ACCESS_TOKEN=$GITHUB_PAT -- \
  docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN ghcr.io/github/github-mcp-server

-e が 2 回出てくる点に注意してください。1 回目は -- の前(Claude Code が変数を設定)、2 回目は docker run コマンドの中(Docker がコンテナに渡す)です。

Docker なし:リリース版バイナリ

リリースページからバイナリをダウンロードし、PATH に置きます。公式ビルドなら OAuth にフラグは不要で、ランダムなループバックポートが使われます。

claude mcp add github -- github-mcp-server stdio

GitHub のガイドにあるように PAT を使う場合はこちらです。

claude mcp add-json github \
  '{"command":"github-mcp-server","args":["stdio"],"env":{"GITHUB_PERSONAL_ACCESS_TOKEN":"YOUR_GITHUB_PAT"}}'

ツールセット、読み取り専用、Lockdown

デフォルトでは context、repos、issues、pull_requests、users のツールセットが有効です。必要なものだけを有効にすると、Claude が正しいツールを選びやすくなり、コンテキストも小さく保てます。ほかにも actions、code_security、dependabot、discussions、gists、notifications、orgs、projects、labels などがあり、all ですべて有効になります。

設定リモートサーバーローカルサーバー
ツールセットを選ぶX-MCP-Toolsets: repos,issues ヘッダー、または https://api.githubcopilot.com/mcp/x/issues のようなツールセット URLGITHUB_TOOLSETS="repos,issues" または --toolsets
個別のツールを選ぶX-MCP-Tools ヘッダーGITHUB_TOOLS または --tools
読み取り専用X-MCP-Readonly: true、または URL の末尾に /readonlyGITHUB_READ_ONLY=1 または --read-only
LockdownX-MCP-Lockdown: trueGITHUB_LOCKDOWN_MODE=1 または --lockdown-mode
先行機能/insiders の URL または X-MCP-Insiders: trueGITHUB_INSIDERS=true または --insiders

repos、issues、pull requests に限定した読み取り専用のリモート設定を .mcp.json に書くと次のようになります。

{
  "mcpServers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/",
      "headers": {
        "Authorization": "Bearer ${GITHUB_PAT}",
        "X-MCP-Toolsets": "repos,issues,pull_requests",
        "X-MCP-Readonly": "true"
      }
    }
  }
}

Lockdown モードは、公開リポジトリでプッシュ権限のない作者によるコンテンツを非表示にします。信頼できない Issue やコメントからのプロンプトインジェクションに対するベストエフォートのフィルターであり、セキュリティ境界ではありませんが、Claude に公開リポジトリを読ませるならオンにする価値があります。MCP セキュリティのベストプラクティスも参照してください。

接続を確認する

claude mcp list
claude mcp get github

セッション内では、/mcp で github にチェックマークが表示されるはずです。claude mcp add は認証情報を検証しないため、誤ったトークンでも追加時には受け付けられ、ここで初めて失敗し、失敗の詳細に 401 が表示されます。

プロンプト例

  • 「このリポジトリのオープンな Pull Request を一覧にして、それぞれの変更内容を要約して。」
  • 「Issue 123 を読んで、該当するコードを見つけ、修正案を出して。」
  • 「main の最新の GitHub Actions 実行はなぜ失敗した? 失敗したステップを見せて。」
  • 「ブランチを作り、さっきの変更をコミットして、Issue 123 にリンクしたドラフト PR を開いて。」
  • 「PR 45 をレビューして、リスクがありそうな箇所にコメントを残して。」
  • 「このリポジトリに未対応の Dependabot やコードスキャンのアラートはある?」

最後の 2 つには、actions、dependabot、code_security のツールセットの有効化と、対応するトークン権限が必要です。

トラブルシューティング

症状考えられる原因対処法
/mcp で ✘ と 401トークンがない、期限切れ、または誤り新しい PAT を作成し、claude mcp remove github してから再追加
一部のリポジトリや Organization で 403トークンの権限不足、または Organization が PAT を制限スコープやリポジトリを追加し、Organization のオーナーに承認を依頼
add-json が Invalid input を返す(Windows)既知のクォートの問題claude mcp add --transport http の書き方を使う
PowerShell で missing required argument 'name'引数の順序claude mcp add の直後に github を置く
Docker のサーバーが起動しないDocker が起動していない、またはイメージ未取得Docker Desktop を起動し、docker pull ghcr.io/github/github-mcp-server を実行
期待したツールが見当たらないツールセットが無効、または読み取り専用がオンヘッダー、URL、GITHUB_TOOLSETS でツールセットを追加
大きな差分で出力サイズの警告ツールの出力が長すぎる1 ファイルずつ依頼するか、MAX_MCP_OUTPUT_TOKENS を引き上げる

すでに gh CLI を使っていますか? Claude Code はシェル経由でそれを呼び出せるため、多くの作業は MCP なしでもこなせます。シェルを自由に使わせる代わりに、構造化されたツール、ツールセットの制限、読み取り専用モード、Lockdown が欲しいときにこそ MCP サーバーが役立ちます。

次のステップ

GitHub を接続したら、そこに仕事を流し込むサーバーを追加しましょう。PR を開く前にブラウザで修正を確認する Playwright MCP や、データベースの変更を扱う Supabase MCP がおすすめです。ほかの開発ツールは MCP サーバーディレクトリで探せます。スコープ、OAuth、サーバー管理については Claude Code MCP ガイドをご覧ください。

よくある質問

GitHub MCP サーバーを Claude Code に追加するには?

GitHub の個人アクセストークンを作成し、トークンを含む 'Authorization: Bearer' の値を付けて 'claude mcp add --transport http github https://api.githubcopilot.com/mcp/ --header' を実行します。Claude Code を起動し、/mcp で github にチェックマークが付いているか確認します。

個人アクセストークンなしで Claude Code から GitHub MCP サーバーを使える?

はい、Docker かリリース版バイナリでローカルサーバーを動かします。公式ビルドには OAuth が組み込まれており、初回利用時にブラウザで GitHub のログインが開き、トークンはメモリ上にのみ保持されます。

GitHub MCP サーバーに必要なトークンのスコープは?

GitHub は、リポジトリ・Issue・PR の操作に repo、Organization へのアクセスに read:org、イメージに read:packages を挙げています。有効にするツールセットに必要な分だけを付与し、特定のリポジトリに限定した Fine-grained トークンを優先しましょう。

GitHub MCP サーバーを読み取り専用にするには?

リモートサーバーでは値を true にした X-MCP-Readonly ヘッダーを送るか、URL の末尾に /readonly を付けます。ローカルサーバーでは GITHUB_READ_ONLY=1 を設定するか --read-only を渡します。