12 人が閲覧(直近 30 日) AIエージェント・MCP

GitHub Remote MCP Serverとは?ローカル版との違い・接続手順・OAuth/PAT認証を解説【2026年10月】

GitHub Remote MCP Serverとは?ローカル版との違い・接続手順・OAuth/PAT認証を解説【2026年10月】

GitHub Remote MCP Serverは、GitHubが自社でホストしているGitHub MCPサーバーのリモート版です。接続先は https://api.githubcopilot.com/mcp/ の1つで、AIエージェントはここを通じてリポジトリの参照、Issue・Pull Requestの作成、GitHub Actionsの確認などを「ツール」として呼び出します。Dockerもバイナリも要りません。ただし、どのクライアントでもOAuthのワンクリックでつながるわけではなく、Claude DesktopやCursor、Claude CodeではPATをヘッダで渡すのが公式の手順です。この記事では、ローカル版との違い、クライアント別の接続設定、OAuthとPATの使い分け、そして2026年10月19日に実際に tools/list を送って数えたツール数をもとに、ツールセットと読み取り専用の設定を解説します。

まとめ:GitHub Remote MCP Serverの要点

  • 正体:オープンソースの github/github-mcp-server をGitHubが自社基盤に組み込んで運用するMCPサーバー。2025年6月12日にパブリックプレビュー、2025年9月4日に一般提供(GA)。
  • URL:https://api.githubcopilot.com/mcp/。読み取り専用は末尾に readonly、全ツールは x/all、単一ツールセットは x/{toolset}。
  • ツール数(実測):既定46個(うち読み取り28個)、/readonly は28個、/x/all は95個。全部を渡さず絞るのが前提。
  • 認証:VS Codeなど Copilot 対応IDEはOAuth。Claude Code・Codex・Cursor・Claude DesktopはPATを Authorization: Bearer ヘッダで渡す。
  • ローカル版との違い:設置・更新が不要で、Copilot Spacesなどリモート専用のツールセットがある。GitHub Enterprise Serverではリモート版を使えないためローカル版を選ぶ。
  • 料金:プランを問わず全GitHubユーザーが使える。Copilot cloud agentなど有料機能に対応するツールだけは同じライセンスが必要。

GitHub Remote MCP Serverの仕組み(GitHubホスト型MCPサーバー)

MCP(Model Context Protocol)は、AIアプリケーションと外部ツールをつなぐためのオープンな仕様です(仕様の全体像はMCP(Model Context Protocol)とは?AIと外部ツールをつなぐ標準規格の仕組みをわかりやすく解説で扱っています)。GitHub MCPサーバーは、このMCPの「サーバー側」としてGitHubの操作一式をツールとして公開します。

リモート版は、ローカル版と同じ公開リポジトリのコードを土台にしています。公式のリモートサーバーのドキュメントは、リモート版を「このリポジトリをライブラリとして使い、内部リポジトリでGitHubのサーバー基盤に組み込んだもの」と説明し、最新のコードを定期的に取り込むとしています。そのため、公開リポジトリの最新リリースとリモート版の挙動が一致しない時期がありえます。機能面の差は、リモート版にしかないツールセット(copilot_spaces と github_support_docs_search)です。

リポジトリ側は2026年10月6日にv2.0.0を出し、10月8日のv2.0.2が最新です(リリース一覧)。v2.0.0ではツールの構造化出力と出力スキーマに対応しましたが、このスキーマはMCP仕様 2026-07-28 以降への対応を申告したクライアントにだけ返します。古いクライアントで挙動が変わるわけではありません。仕様側の変更点はMCP仕様2026-07-28版とは:ステートレス化の変更点と2025-11-25版からの移行手順にまとめています。GitHub MCPサーバー全般(ツールセットの全体像やローカル版の導入)はGitHub MCPサーバーとは|できること・toolset・リモート/ローカルのセットアップを解説が受け持ち、本記事はリモート版に固有の論点に絞ります。

ローカルMCPとリモートMCPの違い

一般に「ローカルMCP」は、クライアントが自分のマシンでサーバーを子プロセスとして起動し、標準入出力(stdio)でやり取りする形です。「リモートMCP」は、ネットワーク上のサーバーにHTTP(Streamable HTTP)で接続する形で、URLを登録するだけで使えます。通信方式の詳細はStreamable HTTPとは?MCPのトランスポートとSSEの違い、2026-07-28仕様の変更点を参照してください。GitHub MCPサーバーの場合、両者の違いは次のとおりです。

観点 ローカル版 リモート版
動く場所 自分のマシン(Docker・バイナリ) GitHubのクラウド
通信 stdio(httpモードも可) Streamable HTTP
認証 OAuthログイン(stdio)またはPAT OAuth(対応ホストのみ)またはPAT
更新 イメージ・バイナリを自分で更新 GitHubが随時反映
GitHub Enterprise Server 使える 使えない
リモート専用ツールセット なし copilot_spaces 等2種

以前は「ローカル版はPATの発行が必須」が定番の説明でしたが、2026年6月以降の公式手順ではローカル版(stdio)もOAuthログインが標準です。公式イメージにGitHubのOAuthアプリの情報が組み込まれており、初回にブラウザでログインするとトークンはメモリ上だけに保持されます(Local Server OAuth Login)。手間の差は「認証」よりも「Dockerやバイナリを置いて更新し続けるかどうか」に移っています。

ローカル版を選ぶべき場面

迷ったらリモート版で始め、次のどれかに当たるときだけローカル版にします。GitHub Enterprise Serverはリモート版のホスティング対象外なのでローカル版一択です(データレジデンシー付きのGitHub Enterprise Cloudは https://copilot-api.<サブドメイン>.ghe.com/mcp でリモート版を使えます)。社内のプロキシで api.githubcopilot.com への通信が許可されない環境、ツールの説明文や名前を差し替えたい場合もローカル版です。なお、ローカル版もGitHubのAPIを呼ぶので、オフライン環境で使えるわけではありません。

リモートサーバーのURLとクライアント別の接続手順

URLは https://api.githubcopilot.com/mcp/ です。認証なしでアクセスするとHTTP 401が返り、WWW-Authenticate ヘッダで認可サーバーの情報(resource_metadata)が案内されます。ブラウザで開いてもエラーになるのは正常です。

VS CodeのOAuth接続設定

VS Code 1.101以降なら、リモートMCPとOAuthの両方に対応しています。公式READMEのワンクリックボタンか、拡張機能ビューのMCPレジストリから追加し、Copilot Chatをエージェントモードに切り替えるとサーバーが起動します。手で書く場合の mcp.json は次のとおりです。

{
  "servers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/"
    }
  }
}

Visual Studio・JetBrains IDE・Xcode・Eclipseも、GitHub Docsのセットアップ手順ではOAuthのワンクリックが既定で、PATも手動で設定できます。Enterprise Managed Userの場合、PATは管理者が有効にしない限り使えません。

Claude CodeのPAT認証設定

Claude Code向けの公式インストールガイドはPATをヘッダで渡す形です。Claude Code 2.1.1以降は add-json を使います。次の例はmacOS・Linuxのbashまたはzsh向けで、ターミナル(Claude Codeの中ではなく)で実行します。Windows PowerShellでは環境変数の設定とJSON文字列の引用方法が異なるため、公式ガイドのPowerShell例を使ってください。

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

この書き方はPATの値そのものが設定に保存されます。--scope project で .mcp.json に書く場合は、リポジトリにトークンを含めないよう注意してください。公式ガイドも .env と .mcp.json を .gitignore に入れる手順を載せています。Windowsで add-json が Invalid input を返すときは、旧形式の claude mcp add --transport http github https://api.githubcopilot.com/mcp -H "Authorization: Bearer ..." を使います。

CodexとCursorの設定

OpenAIのCodexは ~/.codex/config.toml に、トークンを入れた環境変数の名前を書きます。公式ガイドは、ホスト型サーバーにPATで接続するには bearer_token_env_var が必須としています。

[mcp_servers.github]
url = "https://api.githubcopilot.com/mcp/"
bearer_token_env_var = "GITHUB_PAT_TOKEN"

Codexを起動するプロセスに、実際のPATを値とする環境変数 GITHUB_PAT_TOKEN を渡してください。設定ファイルに環境変数名を書くだけではトークンは設定されません。CLIでは同じシェルで環境変数を設定してからCodexを起動します。

Cursor(v0.48.0以降)は mcp.json の headers にPATを書きます。GitHubは2025年9月のGA発表でCursorもOAuth対応と告知しましたが、2026年6月に更新されたCursor向けの公式ガイドは「GitHubのサーバーは現状PATが必要」と書いています。確実に動くのはPATです。

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

Claude Desktopのmcp-remote経由のPAT認証設定

Claude Desktopの「カスタムコネクタ」からリモート版を追加する方法は、公式ガイドが非対応と明記しています。GitHubのリモートサーバーはOAuthに登録済みのGitHub App(またはOAuth App)を必要とし、Claude Desktopのコネクタ側はそれを用意していないためです。公式ガイドが勧めるのはローカル版(Docker)ですが、リモート版を使いたい場合は、stdioとHTTPを中継するNode.js製のプロキシ mcp-remote にPATを渡す方法があります。

{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]",
        "https://api.githubcopilot.com/mcp/readonly",
        "--header",
        "Authorization:${AUTH_HEADER}"
      ],
      "env": {
        "AUTH_HEADER": "Bearer YOUR_GITHUB_PAT"
      }
    }
  }
}

Authorization:${AUTH_HEADER} のようにコロンの前後に空白を入れないのは、mcp-remoteのREADMEによると、Cursor・Codex CLI・Windows版Claude Desktopは args 内の空白をうまく扱えないためです。2026年10月19日に、この構成(mcp-remote 0.15.1・Node.js v26.5.0)をstdioで起動して initialize と tools/list を送ったところ、github-mcp-server から28個の読み取り専用ツールが返りました。旧来の解説にある「mcp-remoteを挟めば初回にブラウザでOAuth認証される」は、GitHubには当てはまりません。理由は次の章で説明します。Claude Desktop自体の設定ファイルの場所やMCP連携の全体はClaude Desktopとは?できること・料金・インストール・MCP連携を解説【2026年】で確認できます。

OAuthとPATの使い分け

OAuthを使えるクライアントならOAuthを選びます。GA時のGitHub Changelogは、OAuth 2.1+PKCEについて、トークンが短命で自動更新されるためPATより安全だと説明しています。PATを使うのは、OAuthに対応していないクライアントと、CIなどブラウザでの承認を挟めない自動化です。トークンの種類で、ツール一覧の見え方も変わります。

認証方式 ツール一覧の見え方 権限が足りないとき
OAuth(リモート版) 全ツールが見える その場で追加スコープの承認を求める
classic PAT(ghp_) スコープ不足のツールは非表示 そもそも呼べない
fine-grained PAT(github_pat_) 全ツールが見える API呼び出し時にエラー
GitHub Appトークン(ghs_) 全ツールが見える アプリの権限でエラー

classic PATで「必要なツールが出てこない」ときは、まずスコープ不足を疑います。サーバーは起動時に X-OAuth-Scopes ヘッダでトークンのスコープを調べ、足りないツールを隠すためです(PAT Scope Filtering)。ただし get_file_contents のように公開リポジトリで使える読み取りツールは、スコープが無くても表示されます。公式のガバナンス文書は、classic PATよりfine-grained PATを推奨しています。

OAuthでつながらないクライアントがある理由

MCP仕様2026-07-28は、クライアントIDの取得手段としてCIMD、事前登録、動的クライアント登録(DCR)を定めています。CIMDの対応を推奨し、DCRは後方互換性のために残す非推奨の方式です。2026年10月19日に確認したところ、リモートサーバーが案内する認可サーバーは https://github.com/login/oauth で、そのメタデータにはDCR用のエンドポイント(registration_endpoint)も、CIMDに対応する旨の項目(client_id_metadata_document_supported)もありませんでした。残る方式は事前登録だけなので、GitHubに登録済みのアプリを持たないクライアントはOAuthを始められません。公式READMEも「OAuthでリモート接続するには、ホストアプリ側がGitHub AppかOAuth Appを登録しておく必要がある」と書いています。

そのため、Copilot対応IDEのようにGitHubがアプリを用意しているホストはOAuthでつながり、それ以外はPATになります。mcp-remote も事前登録したクライアント情報を --static-oauth-client-info で渡せば技術的にはOAuthを通せますが、自分でGitHub Appを作って管理することになるため、個人の利用ならPATで十分です。CIMDの仕組みと各社の対応状況はCIMD(Client ID Metadata Documents)とは?MCPでDCRに代わるOAuthクライアント登録の仕組みと実装【2026年10月】で解説しています。

ツールセットと読み取り専用モード:実測したツール数

ツール定義を一括でモデルに渡すクライアントでは、ツールが多いほどコンテキストを消費し、似た名前のツールから選び間違える余地も増えます。Claude CodeのMCP tool searchのように必要な定義だけを遅延読み込みする実装もありますが、渡すツールそのものを絞るほうが確実です。2026年10月19日、MCPプロトコルバージョン2025-06-18を指定し、GitHub CLIのOAuthトークン(スコープ:repo・read:org・gist・project)でリモートサーバーに tools/list を送り、URLとヘッダごとに返ったツール数を数えました。

接続先・ヘッダ ツール数 うち読み取り
/mcp/(既定) 46 28
/mcp/readonly 28 28
/mcp/x/all 95 63
/mcp/x/all/readonly 63 63
/mcp/x/repos 19 13
/mcp/x/actions 4 3
X-MCP-Toolsets: repos,issues+Readonly 19 19
X-MCP-Tools: 2個指定 2 2

「読み取り」はツールの readOnlyHint 注釈で数えています。既定(context・repos・issues・pull_requests・users)でも46個あり、x/all にすると約2.1倍の95個になります。読み取り専用にすると、ファイルの作成・削除、PRのマージ、ブランチ作成など書き込み系の18個が消えます。数はアカウントの権限やライセンスで変わり、今回のアカウントでは、READMEがリモート専用として載せる create_pull_request_with_copilot は x/all にも出ませんでした(公式は、Copilot cloud agentを使うツールには有料のCopilotライセンスが必要としています)。

URLパスとヘッダの使い分け

URLパスで指定できるツールセットは1つだけです。/x/issues/readonly のように読み取り専用と組み合わせられますが、カンマ区切りで複数は書けません。複数を組み合わせるときはヘッダを使います。

{
  "type": "http",
  "url": "https://api.githubcopilot.com/mcp/",
  "headers": {
    "X-MCP-Toolsets": "repos,issues,actions",
    "X-MCP-Readonly": "true",
    "X-MCP-Exclude-Tools": "delete_file"
  }
}

ヘッダは5種類が公式に載っています。X-MCP-Toolsets(ツールセット)、X-MCP-Tools(ツール単位)、X-MCP-Readonly(読み取り専用)、X-MCP-Lockdown(ロックダウン)、X-MCP-Insiders(先行機能)です。これに加えて X-MCP-Exclude-Tools で特定のツールを外せます。既定の接続で merge_pull_request,delete_file,push_files を外すと、46個が43個になりました。PRのマージだけ人の手に残したい、といった使い方ができます。

ツールセット名・ツール名の指定ミスとエラー挙動

設定を書き間違えたときの挙動が、ツールセットとツール単位で違います。存在しないツールセット名を X-MCP-Toolsets に書くと、エラーにならずツールが0個の状態でつながりました。ドキュメントも「未知のツールセットは黙って無視する」としており、画面上は「接続できたのにツールが無い」状態になります。一方、存在しないツール名を X-MCP-Tools に書くと、initialize の時点でHTTP 400(unknown tools specified in WithTools)が返り、接続自体が失敗します。ツール名は公式READMEの一覧と照合してください。

組織で使うときの管理設定とロックダウンモード

Copilot BusinessまたはCopilot Enterpriseを契約している組織のメンバーは、組織かエンタープライズで「MCP servers in Copilot」ポリシーが有効でないと、Copilot経由でMCPを使えません。GitHub Docsによると、このポリシーは既定で無効です。一方、Copilot Free・Pro・Pro+・Maxの個人利用はこのポリシーの対象外です。Claude CodeやCursorなどサードパーティのホストはこのポリシーでは止まらず、OAuth Appのアクセス制限、GitHub Appのインストール、PATのポリシーで管理します。公式のガバナンス文書は「すべてのMCP通信を1つのスイッチで止める設定は無い」と明記しているので、組織で止めたい場合は、これらを組み合わせて塞ぐ必要があります。

公開リポジトリを扱うエージェントには、ロックダウンモード(X-MCP-Lockdown: true)を検討します。Issueやコメントの作者がそのリポジトリにpush権限を持たない場合、その内容をツールの応答から外すか、エラーにする機能です。第三者がIssueに仕込んだ指示(プロンプトインジェクション)をエージェントに読ませないための対策ですが、公式は「ベストエフォートのフィルタで、セキュリティ境界ではない」と断っています。トークンが読める範囲は変わらないので、書き込み権限の最小化と併用します。エージェントを外部入力で乗っ取る攻撃の実例はAgentjackingとは?偽のSentryエラーでAIコーディングエージェントを乗っ取る攻撃と防御設定が参考になります。なお、公開リポジトリへのツール呼び出しには、秘密情報の混入を止めるプッシュ保護が自動で効きます。

社内のリポジトリやチケットとエージェントを安全につなぐ権限設計まで含めて検討する場合は、AIエージェント開発の支援内容も参考にしてください。

つながらない・ツールが出ないときの確認手順

クライアントの画面だけでは原因が切り分けにくいので、ターミナルから順に確かめます。

# 1. トークンがリモートサーバーに通るか(200なら認証は通っている。401はトークンの誤り・失効)
curl -s -o /dev/null -w "%{http_code}\n" \
  -H "Authorization: Bearer $GITHUB_PAT" https://api.githubcopilot.com/mcp/_ping

# 2. classic PATのスコープを確認(足りないスコープのツールは一覧に出ない)
curl -sI -H "Authorization: Bearer $GITHUB_PAT" https://api.github.com/user | grep -i x-oauth-scopes
  • _pingが401:トークンの貼り間違い、期限切れ、Bearer の付け忘れ。fine-grained PATが組織の承認待ちの場合は401にはならず、その組織の非公開リソースだけが読めない状態になります。
  • つながるがツールが0個:X-MCP-Toolsets のつづりの誤り。未知のツールセットは黙って無視されます。
  • HTTP 400で接続できない:X-MCP-Tools に存在しないツール名がある。
  • 特定のツールだけ出ない:classic PATのスコープ不足。fine-grained PATなら一覧には出て、実行時にエラーになります。
  • VS CodeでOAuthの画面が出ない:VS Codeが1.101未満、または組織の「MCP servers in Copilot」ポリシーが無効。

よくある質問

GitHub Remote MCP Serverは無料で使えますか?

使えます。GitHub Docsは、GitHub MCPサーバーはプランを問わず全ユーザーが利用できると説明しています。ただし、Copilot cloud agentを呼ぶツールなど、有料のGitHub機能やCopilot機能に対応するツールは、その機能と同じライセンスが必要です。

リモートサーバーのURLは何ですか?

https://api.githubcopilot.com/mcp/ です。読み取り専用は /mcp/readonly、全ツールは /mcp/x/all、Issueだけなら /mcp/x/issues のようにパスを足します。データレジデンシー付きのGitHub Enterprise Cloudは https://copilot-api.<サブドメイン>.ghe.com/mcp です。

GitHub MCPを読み取り専用(readonly)にするには?

リモート版はURLの末尾に readonly を付けるか、X-MCP-Readonly: true ヘッダを送ります。実測では既定の46個が28個になり、ファイルの書き込みやPRのマージなどのツールが一覧から消えました。ローカル版は --read-only フラグか環境変数 GITHUB_READ_ONLY=1 です。

Claude DesktopからリモートのGitHub MCPに接続できますか?

カスタムコネクタからは接続できません。GitHubのOAuthに登録済みのアプリが必要なためです。mcp-remote を npx で起動し、--header でPATを渡せば接続できます。公式ガイドが勧めているのはローカル版(Docker)です。

GitHub Enterprise Serverでリモート版は使えますか?

使えません。GitHub Enterprise Serverはリモート版のホスティング対象外なので、ローカル版を GITHUB_HOST などでサーバーに向けて使います。データレジデンシー付きのGitHub Enterprise Cloud(ghe.com)はリモート版を使えます。

関連記事

お気に入りに入れた記事の一覧

この記事は以下の記事からリンクされています

資料請求

今日のトレンド記事 直近 24 時間で、いつもより多く読まれている記事

  1. 2026.07.21 テックブログ Apache Tomcatの脆弱性一覧【2026年10月】最新版11.0.27・10.1.61・9.0.123とCVE-2026-59083ほかの影響確認・対応手順
  2. 2026.10.22 テックブログ Tomcatバージョン一覧とサポート期限【2026年10月】9.0系は2027年3月末で終了・9.1系と11.0系への移行判断
  3. 2026.10.21 テックブログ NEC委託先の不正アクセスとは|顧客システム暗号化・情報漏えいの経緯と委託元が点検する正規アカウント
  4. 2026.10.21 テックブログ ふるさとチョイス不正アクセスで445万件流出:対象確認・パスワード変更と再開時期
  5. 2026.05.15 テックブログ scrcpyの最新版は5.0|ハードウェアデコード対応とインストール・使い方【2026年10月】

RELATED POSTS 関連記事

目次