GitHub には、Claude Code をはじめとする MCP 対応クライアントからリポジトリや Issue、Pull Request にアクセスできる公式の MCP サーバーが提供されています。本記事では、このサーバーに Personal Access Token(PAT) で接続し、Claude Code から GitHub のデータを参照・操作できる環境を構築する手順をハンズオン形式で実施します。
これまでの記事「Claude Code に MCP サーバーを接続する設定方法」および「Claude Code の MCP 設定をチームで共有する方法」では、手元のマシンで動作させる stdio トランスポートの MCP サーバーを扱いました。本記事では、クラウド上で稼働するリモートサーバーに HTTP トランスポートで接続する方法を扱います。
本記事では以下の項目を実施します。
- GitHub のリモート MCP サーバーを Claude Code に登録する
- Fine-grained PAT を発行し、Bearer トークンで認証する
- Claude Code から GitHub の Issue、Pull Request、リポジトリ情報を取得・操作する
.mcp.jsonを用いてチームメンバーと同じ設定を共有する
本記事の動作確認は2026年5月時点を想定しています。
目次
- リモート MCP サーバーと HTTP トランスポート
- GitHub公式MCPサーバーの概要
- Personal Access Token の発行
- 環境変数としてPATを設定する
- GitHub MCP サーバーを登録する
- 動作確認
- projectスコープでチーム共有する場合
- OAuthについて(補足)
- まとめ
- 関連記事
リモート MCP サーバーと HTTP トランスポート
stdioトランスポートとの違い
リモートのサービスに接続する HTTP トランスポートを使用します。stdio と HTTP の主な違いは以下の通りです。ローカルで使用する場合はstdio、外部のサービスを使う場合はHTTPを使います。
| 項目 | stdio | HTTP |
|---|---|---|
| サーバーの所在 | ローカル(自分のマシン) | リモート(クラウド上) |
| プロセスの起動 | Claude Codeの子プロセスとして起動 | サーバー側で常時稼働 |
| 通信経路 | 標準入出力 | HTTPリクエスト |
| 認証方式 | 環境変数によるトークン渡しが多い | OAuth、Bearerトークン、APIキーなど |
| .mcp.jsonの主なフィールド | command, args, env | url, headers |
| 主な提供元 | OSS、社内開発 | SaaS事業者の公式提供が中心 |
HTTPトランスポートでは、MCPサーバーが提供元のインフラ上で常時稼働しており、Claude CodeはそこにHTTPリクエストを送信して通信します。サーバー本体のセットアップが不要で、提供元が機能更新を行うとすぐに利用できる利点があります。
HTTPトランスポートを使用する場面
HTTPトランスポートが向くのは、以下のような場面です。
- GitHubやNotionなど、クラウド上のSaaSサービスと連携したい場合
- 提供元が公式にMCPサーバーを公開しており、自前でサーバーを立てる必要がない場合
- 複数のメンバーが同じMCPサーバーを利用するが、各自のアカウント権限で操作したい場合
認証方式(OAuthとPAT)
リモート MCP サーバーへの接続では、サーバー側がユーザーを識別するための認証が必要です。Claude Code でサポートされている認証方式は主に以下の2つです。
| 認証方式 | 概要 |
|---|---|
| OAuth 2.0 | ブラウザ経由でログイン・権限承認を行い、短期トークンを取得する方式 |
| PAT (Personal Access Token) | サービスの設定画面で長期トークンを発行し、Bearerヘッダーで送信する方式 |
それぞれの利点を以下にまとめます。
<OAuth 2.0>
- OAuthで取得されるアクセストークンは短期間で失効し、自動的にローテーションされるため、PATより漏洩リスクが低い。
- .mcp.jsonにはURLのみを記述すれば済み、トークンを記述する必要がない。
- チーム共有時に環境変数の管理が不要。
- メンバーごとに自身のアカウントでOAuth認証を行えるため、それぞれの権限で操作が行われる。
<PAT (Personal Access Token)>
- ブラウザが起動できない環境で使用できる。
- CI/CDなど対話的な認証ができない場面でも使用できる。
本記事ではPATによる認証方法を取り扱います。
GitHub公式MCPサーバーの概要
本記事で接続するGitHub公式のMCPサーバーについて、概要と提供形態を整理します。
ローカル版とリモート版
GitHub MCPサーバーには、ローカル版とリモート版の2種類の提供形態があります。
| 提供形態 | 動作場所 | トランスポート | 認証方式 |
|---|---|---|---|
| ローカル版 | 自身のマシン上でDockerコンテナとして稼働 | stdio | PAT |
| リモート版 | GitHubのインフラ上で常時稼働 | HTTP | OAuth 2.0またはPAT |
両者は同じソースコードから動作するため、機能面での違いはほとんどありません。違いは動作環境とセットアップの手間です。本記事ではリモート版を使用します。エンドポイントURLは以下の通りです。これは後述のリモート版のMCPサーバーを登録する際に使用します。
https://api.githubcopilot.com/mcp/GitHub公式のMCPサーバーのソースコードが見たい場合には、GitHub上でソースコードが公開されています(リンク)。
主な提供機能
GitHub MCP サーバーは多数のツールを提供しています。代表的なものを分野別に整理します。
| 分野 | 主な操作 |
|---|---|
| リポジトリ | リポジトリの取得、ファイルの読み書き、ブランチ操作 |
| Issue | Issueの一覧取得、作成、更新、コメント投稿、クローズ |
| Pull Request | Pull Requestの一覧取得、作成、レビュー、マージ、コメント投稿 |
| コード検索 | リポジトリ内のコード検索、ファイルパス検索 |
| Actions | ワークフローの一覧、実行状況の取得 |
| ユーザー | ユーザー情報の取得 |
具体的なツールはClaude Codeの対話モードで/mcpを使用することで一覧を確認できます。
アクセス権限
Claude Code に対してどのリポジトリへのアクセスを許可するかは、PAT を発行する際に設定します。設定できるアクセス範囲は以下の3つから選びます。
| 設定 | 説明 |
|---|---|
| Public repositories | パブリックリポジトリへの読み取り専用アクセスのみ |
| All repositories | 自分が所有する現在および将来のすべてのリポジトリにアクセスできる |
| Only select repositories | 指定した特定のリポジトリにのみアクセスできる(最大50個) |
なお、どのオプションを選んでも、GitHub 上のすべてのパブリックリポジトリの読み取りは常に可能です。
最小権限の原則に従い、Only select repositories を選択して、Claude Code から操作したいリポジトリだけを指定することを推奨します。具体的な操作の許可範囲(読み取り専用か、書き込みも許可するか)は、後述の「Fine-grained PAT の発行手順」で設定します。
設定後も、GitHub の設定画面でアクセス権を変更したり、無効化したりすることが可能です。発行済みの PAT は以下の管理画面から確認できます。
Personal Access Token の発行
GitHub の Personal Access Token を発行します。
PATの種類
GitHub の Personal Access Token には、以下の2種類があります。
| 種類 | 特徴 |
|---|---|
| Classic PAT | 従来からあるトークン。スコープ単位で広く権限を設定 |
| Fine-grained PAT | リポジトリ単位・操作単位で細かく権限を設定可能 |
セキュリティの観点では、Fine-grained PAT が推奨されます。リポジトリ単位で許可するアクセスを限定でき、有効期限も明示的に設定するため、漏洩時の被害範囲を抑えやすくなっています。本記事では Fine-grained PAT を使用します。
Fine-grained PATの発行手順
GitHub にログインした状態で、以下の URL にアクセスします。
「Generate new token」ボタンをクリックし、以下の項目を設定します。
| 項目 | 説明 | 設定例 |
|---|---|---|
| Token name | トークンを識別するための名前 | Claude Code MCP(わかりやすい名前) |
| Description | トークンの説明文 | 何の用途に使用するかなどの説明文を必要に応じて記述します。 |
| Expiration | トークンの有効期限 | 90 days(用途に応じて) |
| Resource owner | トークンが操作できる対象のアカウントまたは組織 | 自身のアカウントまたは対象組織 |
| Repository access | アクセスを許可するリポジトリの範囲 | Only select repositories を選択し、対象を限定する |
| Permissions | 許可する操作の種類と読み書きの範囲 | 必要な権限のみを付与(以下参照) |
GitHub MCP サーバーから操作したい内容に応じて、Repository permissions を設定します。代表的な権限は以下の通りです。
| 操作 | 説明 | 必要な権限 |
|---|---|---|
| リポジトリのメタデータ取得 | リポジトリの基本情報(名前、説明、可視性など)を取得する | Metadata: Read-only(必須) |
| ファイル内容の取得 | リポジトリ内のファイルの内容を読み取る | Contents: Read-only |
| Issue の閲覧 | Issue の一覧や詳細を取得する | Issues: Read-only |
| Issue の作成・更新 | Issue を作成、編集、コメント投稿、クローズする | Issues: Read and write |
| Pull Request の閲覧 | PR の一覧や詳細、レビューコメントを取得する | Pull requests: Read-only |
| Pull Request の作成・レビュー | PR を作成、編集、レビュー、マージする | Pull requests: Read and write |
| Actions の状態取得 | GitHub Actions のワークフロー実行状況を取得する | Actions: Read-only |
Metadata: Read-only は他の権限を有効化する際に必須となります。それ以外は実際の用途に応じて、可能な限り読み取り専用にとどめることを推奨します。以下は、設定画面のスクリーンショットです。
_permissions.png)
設定が完了したら、画面下部の「Generate token」をクリックします。生成されたトークンが画面に表示されますが、この画面を離れると二度と表示されません。表示中にコピーして、安全な場所に保管します。
トークンは github_pat_ で始まる長い文字列です。
環境変数としてPATを設定する
PAT を直接 claude mcp add のコマンドラインに渡すと、シェルの履歴に残ってしまいます。これを避けるため、まず環境変数 GITHUB_TOKEN に保存します。
WSLの場合
シェルの設定ファイル(~/.bashrc または ~/.zshrc)に以下の行を追記します(セキュリティの確保が重要な場合は、シークレット管理サービスをお使いください)。
export GITHUB_TOKEN=github_pat_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx設定ファイルを再読み込みします。
source ~/.bashrc設定されたことを確認します。
echo $GITHUB_TOKENWindowsネイティブの場合
PowerShell のプロファイルに追記する場合、プロファイルファイルを開いて以下を追記します。
$env:GITHUB_TOKEN = "github_pat_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"プロファイルのパスは以下のコマンドで確認できます。
echo $PROFILEPowerShell プロファイルへの追記はPowerShell起動時のみ有効で、コマンドプロンプトや他のアプリには反映されません。コマンドプロンプトや他のシェルでも認識させたい場合は、システム全体の環境変数として登録します。スタートメニューから「環境変数を編集」を開き、GITHUB_TOKEN を登録します。設定後、コマンドプロンプトや PowerShell を再起動して反映させます。
GitHub MCP サーバーを登録する
claude mcp add コマンドで GitHub MCP サーバーを Claude Code に登録します。--header オプションで Bearer トークンとして PAT を渡します。
登録コマンド
GitHub MCP サーバーのリモート版を登録するコマンドのフォーマットを示します。
claude mcp add --transport http <サーバー名> <URL> --header "Authorization: Bearer ${GITHUB_TOKEN}"<サーバー名> は任意の識別名で、<URL> は GitHub MCP サーバーのリモートエンドポイントです。
リモートのGitHubサーバーを登録する際には、任意のプロジェクトフォルダに移動した後に、次のコマンドを実行します。
claude mcp add --transport http github https://api.githubcopilot.com/mcp/ --header "Authorization: Bearer ${GITHUB_TOKEN}"このコマンドを実行すれば登録は完了です。実行すると、登録が成功した旨のメッセージが表示されます。
スコープを指定しない場合のデフォルトは local です。GitHub MCP サーバーは複数のプロジェクトで共通して使用することが多いため、個人利用の場合は user スコープで登録する選択も一般的です。user スコープで登録すると、どのプロジェクトディレクトリで Claude Code を起動しても、github サーバーが利用可能になります。スコープを指定する場合は--scopeオプションを使用します。
claude mcp add --transport http --scope user github https://api.githubcopilot.com/mcp/ --header "Authorization: Bearer ${GITHUB_TOKEN}"チームメンバーと共有する場合は project スコープを使用します。
登録内容の確認
確認方法は通常のMCPサーバーと同じです。登録状況は以下のコマンドで確認します。
claude mcp list以下のような出力が表示されれば、登録は完了しています。
github: https://api.githubcopilot.com/mcp/ (HTTP) - ✓ ConnectedPAT 認証の場合、登録時にトークンの検証が行われ、有効であれば登録直後から Connected 状態になります。
MCPサーバーの詳細は、次のコマンドで確認できます。
claude mcp get githubトランスポート、URL、スコープなどが表示されます。
動作確認
Claude Code を起動し、対話モードで GitHub MCP サーバーのツールを呼び出して動作を確認します。
claudeユーザー情報を取得してみる
最もシンプルな動作確認として、Claude Code に自身のユーザー情報を取得させてみます。プロンプトに以下のように入力します。
GitHub の MCP サーバーを使って、認証中のユーザーの情報を教えてください。Issueを作成してみる
空のリポジトリを用意してIssueを作成できるかを試してみます。
<ユーザー名>/test に五目並べを行うプログラムの手順をそれぞれissueとして作成してもらえますか。<ユーザー名>/test の部分はGitHubのユーザー名とリポジトリ名(test)です。以下のように手順ごとにIssueが作成されました。
_issue一覧-1024x447.png)
LLMの結果は再現性がないため、同じ結果にはなりませんが、例として試してみたときのスクリーンショットを載せています。この中の【Step 1】プロジェクト設計・要件定義 のIssueの中身を見てみると、概要とタスク一覧、完了条件が作成されています。
_issue中身.png)
プロンプトで指示をしっかり書くことにより、出力するIssueのフォーマットを色々変えることもできます。
書き込み系の操作は AI が誤って実行すると影響が大きいため、自動許可にはせず毎回確認する設定を維持することを推奨します。また、Fine-grained PAT を発行する際に、書き込み権限を付与していないリポジトリに対しては、そもそも書き込み操作が API レベルで拒否されます。これも誤操作への防御層になります。
projectスコープでチーム共有する場合
ここまでは個人での利用を前提に、local スコープ(または user スコープ)で GitHub MCP サーバーを登録しました。チームメンバー全員が同じ GitHub MCP サーバーを利用できるよう、project スコープで共有する手順を扱います。
.mcp.json の記述
PAT 認証の場合、.mcp.json には Authorization ヘッダーの参照を環境変数の形で記述します。各メンバーは自身の環境で個別に PAT を発行し、環境変数 GITHUB_TOKEN を設定する運用になります。
すでに github サーバーを別のスコープで登録している場合は、いったん削除します。
claude mcp remove github共有対象のプロジェクトディレクトリに移動し、--scope project を付けて再登録します。シングルクォートで囲むことで、シェルによる変数展開を抑制し、${GITHUB_TOKEN} という文字列のまま .mcp.json に保存します。
claude mcp add --transport http --scope project github https://api.githubcopilot.com/mcp/ --header 'Authorization: Bearer ${GITHUB_TOKEN}'プロジェクト直下に .mcp.json が生成されます。以下のような内容になっています。
{
"mcpServers": {
"github": {
"type": "http",
"url": "https://api.githubcopilot.com/mcp/",
"headers": {
"Authorization": "Bearer ${GITHUB_TOKEN}"
}
}
}
}${GITHUB_TOKEN} の文字列がそのまま保存されていることを確認します。実値(github_pat_xxxx...)が展開された状態で保存されている場合、コミットすると秘密情報が漏れます。コミット前に必ず.mcp.jsonの内容を確認します。
メンバーが利用するまでの流れ
.mcp.json がコミットされたリポジトリに参加するメンバーは、以下の流れで GitHub MCP サーバーを使えるようになります。
- リポジトリを
git cloneする - 自身のアカウントで Fine-grained PAT を発行する
- 環境変数
GITHUB_TOKENに発行した PAT を設定する - プロジェクトディレクトリで Claude Code を起動する
.mcp.jsonの承認プロンプトに応答するgithubサーバーがconnected状態になることを確認する
.mcp.json を共有するリポジトリでは、README に以下のような情報を記載しておくとメンバーがスムーズに利用を開始できます。
## MCP サーバーの利用
本リポジトリは GitHub MCP サーバーの設定を `.mcp.json` で共有しています。
利用するには、以下の手順でセットアップしてください。
1. GitHub の設定画面から Fine-grained PAT を発行する
https://github.com/settings/personal-access-tokens
必要な権限:
- Metadata: Read-only(必須)
- Contents: Read-only
- Issues: Read-only または Read and write
- Pull requests: Read-only または Read and write
2. 環境変数 `GITHUB_TOKEN` に発行した PAT を設定する
3. プロジェクトディレクトリで Claude Code を起動し、
`.mcp.json` の承認プロンプトに応答するOAuthについて(補足)
Claude Code は OAuth 2.0 と Dynamic Client Registrationに対応しています。一方、GitHub の MCP サーバー(https://api.githubcopilot.com/mcp/)はこの方式に対応していないため、現状では OAuth 接続を試みると以下のエラーが発生します(2026年5月末時点)。
SDK auth failed: Incompatible auth server: does not support dynamic client registrationClaude Code 側で事前登録された OAuth クライアント情報を使用する仕組みが実装されれば、OAuth 接続が利用できるようになる見込みです。OAuthを用いた認証については利用可能になった後に、どこかの段階で別の記事にしたいと思います。
まとめ
本記事では、Claude Code から GitHub のリモート MCP サーバーに接続し、ユーザー情報取得やIssue 生成などの操作を Claude Code から行える環境を構築する手順を、ハンズオン形式で扱いました。要点は以下の通りです。
- HTTP トランスポートを使用し、
claude mcp add --transport httpでリモート MCP サーバーを登録します - GitHub MCP サーバーの URL は
https://api.githubcopilot.com/mcp/です - PAT を
--headerで渡して接続します(PAT認証) - PAT は環境変数
GITHUB_TOKENに保存し、コマンドライン履歴に残らないようにします(シークレット管理サービスが最も安全) - Fine-grained PAT を使用し、必要なリポジトリと最小限の権限のみを許可します
--scope projectで.mcp.jsonに書き出すと、${GITHUB_TOKEN}の形で環境変数参照を保ったままチーム共有できます
関連記事
Claude Code に MCP サーバーを接続する設定方法(用語解説と基本コマンド)
2026/5/27 AI
Claude Code に MCP サーバーを接続する設定方法を解説します。Claude Desktop との設定の違い、トランスポートとスコープの考え方、基本コマンドの使い方を整理した上で、公式の天気予報サーバーを題材に、WSL と Windows ネイティブの両方で接続手順を実演します。
Claude Code の MCP 設定をチームで共有する方法(.mcp.json の活用)
2026/5/27 AI
Claude CodeのMCPサーバー設定をチームメンバーと共有する方法を、天気予報MCPサーバーを題材にハンズオン形式で解説します。.mcp.jsonの生成、${VAR}形式による環境変数化、APIキーなど機密情報の.envファイルでの管理、.gitignoreの整備、Gitリポジトリへの共有までを一通り扱います。
Claude Code から GitHub の MCP サーバーに接続する方法(PAT 認証)
2026/5/27 AI
GitHub には、Claude Code をはじめとする MCP 対応クライアントからリポジトリや Issue、Pull Request にアクセスできる公式の MCP サーバーが提供されています。本記事では、このサーバーに Personal Access Token(PAT)で接続し、Claude Code から GitHub のデータを参照・操作できる環境を構築する手順をハンズオン形式で解説します。Fine-grained PATの発行から登録、動作確認、チームへの共有まで一連の手順を扱います。
_ユ-ザ-情報取得.png)