📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

概要

GitHub MCP Server (github/github-mcp-server) は、Model Context Protocol (MCP) を通じてAIアシスタントがGitHubプラットフォームに直接接続し、
リポジトリ・Issue・Pull Request等を自然言語で操作するための標準化されたツールインターフェースを提供するサーバである。

GitHubが公式に開発・提供しており、MITライセンスの下でGo言語で実装されている。

Claude Desktop、Claude Code、OpenCode、VS Code (v1.101以降)、Cursor、Windsurf等の主要なMCPクライアント環境で動作する。

デプロイメント方式は2種類あり、GitHubがホストするリモートサーバ (https://api.githubcopilot.com/mcp/) を利用する方式と、Dockerを使用してローカルで実行する方式がある。
リモートサーバ方式はOAuth認証に対応しており、Docker不要で利用できるため、HTTPトランスポートに対応したクライアントで推奨される。

主な特徴は以下の通りである。

  • GitHubの公式MCP実装であり、リポジトリ・Issue・Pull Requestを自然言語で操作可能
  • リモートサーバ方式とローカルDockerサーバ方式の2つのデプロイメント方式をサポート
  • OAuth認証およびPersonal Access Token (PAT) 認証に対応
  • --toolsets フラグによるツールグループの有効化・無効化が可能で、LLMのコンテキストサイズを削減できる。
  • GitHub Enterprise Serverにも対応
  • Windows、MacOS、Linuxの主要なOSで動作



GitHub MCP Serverの機能

GitHub MCP Serverは、リポジトリ操作、Issue操作、Pull Request操作、ブランチ操作等のカテゴリで30以上のツールを提供する。

リポジトリ操作ツール

リポジトリの管理・操作に関するツールを以下に示す。

リポジトリ操作ツールの一覧
ツール 説明
create_or_update_file リポジトリ内のファイルを作成または更新する。
push_files 複数ファイルの変更をコミット・プッシュする。
search_repositories GitHubリポジトリを検索する。
create_repository 新規リポジトリを作成する。
get_file_contents ファイルやディレクトリの内容を取得する。
fork_repository リポジトリをフォークする。
list_commits リポジトリのコミット履歴を一覧表示する。


Issue操作ツール

Issueの作成・管理に関するツールを以下に示す。

Issue操作ツールの一覧
ツール 説明
create_issue 新規Issueを作成する。
list_issues Issueを一覧表示・フィルタリングする。
update_issue Issueのタイトル・説明・状態を更新する。
get_issue Issueの詳細情報を取得する。
add_issue_comment Issueにコメントを追加する。
search_issues Issueを検索する。


Pull Request操作ツール

Pull Requestの作成・管理に関するツールを以下に示す。

Pull Request操作ツールの一覧
ツール 説明
create_pull_request 新規Pull Requestを作成する。
list_pull_requests Pull Requestを一覧表示・フィルタリングする。
merge_pull_request Pull Requestをマージする。
get_pull_request Pull Requestの詳細情報を取得する。
get_pull_request_diff Pull Requestの差分を取得する。
get_pull_request_reviews Pull Requestのレビューを取得する。
create_pull_request_review Pull Requestにレビューを投稿する。
update_pull_request Pull Requestを更新する。


ブランチ操作ツール

ブランチの管理に関するツールを以下に示す。

ブランチ操作ツールの一覧
ツール 説明
create_branch 新規ブランチを作成する。
list_branches リポジトリのブランチを一覧表示する。
get_branch ブランチの詳細情報を取得する。


その他のツール

コード検索、GitHub Actions、セキュリティ、通知等に関するツールを以下に示す。

その他のツールの一覧
ツール 説明
search_code GitHub上のコードを検索する
list_workflows GitHub Actionsワークフローを一覧表示する
get_workflow_run ワークフロー実行の詳細を取得する
list_workflow_runs ワークフロー実行を一覧表示する
get_dependabot_alerts Dependabotセキュリティアラートを取得する
list_notifications 通知を一覧表示する
get_code_scanning_alerts Code Scanningアラートを取得する


ツールセット制御

--toolsets フラグまたは環境変数 GITHUB_TOOLSETS を使用することにより、機能グループの有効化・無効化が可能である。
これにより、LLMコンテキストサイズを削減できる。

下表に、利用可能なツールセットを示す。

利用可能なツールセット一覧
ツールセット 説明
repos リポジトリ操作ツール
issues Issue操作ツール
pull_requests Pull Request操作ツール
code_security Code Scanningおよびセキュリティ関連ツール
experiments 実験的機能のツール
actions GitHub Actionsワークフロー関連ツール
users ユーザ情報関連ツール
notifications 通知関連ツール
discussions ディスカッション関連ツール


ツールセットを指定する例を以下に示す。

--toolsets repos,issues,pull_requests



動作要件

共通の要件

OS問わず共通して必要な要件を以下に示す。

  • GitHub Personal Access Token (PAT) またはOAuth認証
    GitHubのリポジトリやリソースにアクセスするための認証情報が必要
  • HTTPトランスポートに対応したMCPクライアント (リモートサーバ方式の場合)
    Claude Code、OpenCode等のHTTPトランスポート対応クライアントで使用可能


リモートサーバ方式の要件

リモートサーバ方式を使用する場合の要件を以下に示す。

  • Dockerのインストールは不要
  • HTTPトランスポートに対応したMCPクライアント
    Claude Desktop はHTTP転送に非対応のため、リモートサーバ方式は使用できない。


ローカルサーバ方式の要件

ローカルDockerサーバ方式を使用する場合の要件を以下に示す。

  • Dockerのインストールが必要
    Dockerデーモンが起動していることが必要
  • GitHub Personal Access Token (PAT)
    OAuthによる自動認証は利用できないため、PATが必須



GitHub Personal Access Tokenの取得

取得手順

GitHub Personal Access Token (PAT) の取得手順を以下に示す。

  1. GitHubにログインする
  2. 右上のアカウントアイコンを選択して、[Settings]を開く。
  3. 左サイドバーの最下部にある[Developer settings]を選択する。
  4. [Personal access tokens] - [Tokens (classic)]を選択する。
  5. [Generate new token (classic)]を選択する。
  6. トークンに名前を付ける。
    例: GitHub MCP Server
  7. 有効期限を設定する。
    推奨: 90日または1年。無期限の設定は避ける。
  8. 必要なスコープを選択する。
  9. [Generate token]を選択する。
  10. 生成されたトークンをコピーして安全な場所に保存する。


生成されたトークンはページを離れた後に再度表示されないため、必ずコピーして保存すること。

推奨スコープ

下表に、GitHub MCP Serverで使用する際の推奨スコープを示す。

Personal Access Token 推奨スコープ
スコープ 説明 必須
repo リポジトリへのフルアクセス はい
workflow GitHub Actionsワークフロー操作 いいえ (Actions使用時に必要)
read:org 組織情報の読み取り いいえ
read:discussion ディスカッションの読み取り いいえ
read:packages パッケージの読み取り いいえ


Fine-grained Personal Access Token (ファイングレインドPAT) も使用可能である。
ファイングレインドPATを使用することにより、必要最小限のリポジトリとスコープのみを付与できるため、セキュリティの点から推奨される。


設定

設定ファイルの場所

各MCPクライアントの設定ファイルの場所は以下の通りである。

Claude Desktopの設定ファイルを以下に示す。

  • Linux
    ~/.config/Claude/claude_desktop_config.json
  • MacOS
    ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows
    %APPDATA%\Claude\claude_desktop_config.json


Claude Codeの設定ファイルを以下に示す。

  • Linux
    ~/.config/claude/settings.json
  • MacOS
    ~/Library/Application Support/claude/settings.json
  • Windows
    %APPDATA%\claude\settings.json


OpenCodeの設定ファイルを以下に示す。

  • Linux / MacOS / Windows (共通)
    $HOME/.opencode.json


Claude Desktopでの設定

Claude DesktopはHTTP転送をサポートしていないため、Dockerベースのローカルサーバセットアップが必須である。

Claude Desktopの設定ファイルに以下の内容を追記する。

 {
   "mcpServers": {
     "github": {
       "command": "docker",
       "args": [
         "run",
         "-i",
         "--rm",
         "-e",
         "GITHUB_PERSONAL_ACCESS_TOKEN",
         "ghcr.io/github/github-mcp-server"
       ],
       "env": {
         "GITHUB_PERSONAL_ACCESS_TOKEN": "<GitHubのPersonal Access Token>"
       }
     }
   }
 }


特定のツールセットのみを有効化する場合は、args"--toolsets" と使用するツールセット名を追加する。

 {
   "mcpServers": {
     "github": {
       "command": "docker",
       "args": [
         "run",
         "-i",
         "--rm",
         "-e",
         "GITHUB_PERSONAL_ACCESS_TOKEN",
         "ghcr.io/github/github-mcp-server",
         "--toolsets",
         "repos,issues,pull_requests"
       ],
       "env": {
         "GITHUB_PERSONAL_ACCESS_TOKEN": "<GitHubのPersonal Access Token>"
       }
     }
   }
 }


設定ファイルを保存した後、Claude Desktopを完全に再起動して設定を反映する。

Claude Codeでの設定

Claude CodeはHTTPトランスポートをサポートしているため、リモートサーバの使用を推奨する。

リモートサーバ (推奨) を使用する場合は、以下のコマンドを実行する。

claude mcp add --transport http github https://api.githubcopilot.com/mcp/


ローカルDockerサーバを使用する場合は、以下のコマンドを実行する。

claude mcp add --transport stdio github -- docker run -i --rm -e <GITHUB_PERSONAL_ACCESS_TOKEN> ghcr.io/github/github-mcp-server


設定ファイルに直接記述する場合 (ローカルDockerサーバ) は、以下の内容を settings.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": "<GitHubのPersonal Access Token>"
       }
     }
   }
 }


OpenCodeでの設定

OpenCodeはリモートMCPサーバをサポートしており、OAuthフローによる自動認証に対応している。

OpenCodeの設定ファイル (~/.opencode.json) に以下の内容を追記する。

 {
   "mcpServers": {
     "github": {
       "type": "remote",
       "url": "https://api.githubcopilot.com/mcp/"
     }
   }
 }


VS Codeでの設定

VS Code v1.101以降でGitHub MCP Serverを使用できる。
以下のコマンドを実行してMCPサーバを追加する。

code --add-mcp '{"name":"github","command":"docker","args":["run","-i","--rm","-e","GITHUB_PERSONAL_ACCESS_TOKEN","ghcr.io/github/github-mcp-server"],"env":{"GITHUB_PERSONAL_ACCESS_TOKEN":"<GitHubのPersonal Access Token>"}}'


環境変数

下表に、GitHub MCP Serverの動作をカスタマイズするための環境変数を示す。

環境変数一覧
環境変数 説明
GITHUB_PERSONAL_ACCESS_TOKEN GitHub Personal Access Token
GITHUB_TOOLSETS 有効化するツールセット (カンマ区切りで複数指定可能)
GITHUB_HOST GitHub Enterprise Serverのホスト名
デフォルト: github.com
GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION add_issue_comment ツールのカスタム説明文



使用方法

GitHub MCP Serverの各ツールは、AIアシスタントが自然言語の指示を受けて自動的に呼び出す。

リポジトリの操作例

リポジトリの閲覧・管理に関する操作例を以下に示す。

  • リポジトリのディレクトリ構造を表示する場合
     # プロンプト例 :
     
     リポジトリのディレクトリ構造を表示してください。
    

  • README.mdファイルの内容を確認する場合
     # プロンプト例 :
     
     README.mdファイルの内容を確認してください。
    

  • 新しいリポジトリを作成する場合
     # プロンプト例 :
     
     「my-new-project」という名前の新しいリポジトリを作成してください。
    


Issueの操作例

Issueの作成・管理に関する操作例を以下に示す。

  • オープン中のIssue一覧を表示する場合
     # プロンプト例 :
     
     オープン中のIssue一覧を表示してください。
    

  • バグを報告するIssueを作成する場合
     # プロンプト例 :
     
     ログイン画面でパスワードのバリデーションが機能しないバグを報告するIssueを作成してください。
    

  • Issueにコメントを追加する場合
     # プロンプト例 :
     
     Issue #123に「対応中です。近日中に修正します。」というコメントを追加してください。
    


Pull Requestの操作例

Pull Requestの作成・管理に関する操作例を以下に示す。

  • オープン中のPull Requestを一覧表示する場合
     # プロンプト例 :
     
     オープン中のPull Requestを一覧表示してください。
    

  • Pull Requestの差分を確認してレビューする場合
     # プロンプト例 :
     
     PR #456の差分を確認して、コードの問題点をレビューしてください。
    

  • Pull Requestを作成する場合
     # プロンプト例 :
     
     feature/new-uiブランチからmainブランチへのPull Requestを作成してください。
    


コードレビューの操作例

コードの分析・レビューに関する操作例を以下に示す。

  • Pull Requestのコード変更をレビューして改善点を提案する場合
     # プロンプト例 :
     
     PR #789のコード変更をレビューして、改善点を提案してください。
    

  • 最新のコミットメッセージを表示する場合
     # プロンプト例 :
     
     mainブランチの最新10件のコミットメッセージを表示してください。
    



トラブルシューティング

共通の問題

下表に、OS問わず発生する可能性がある問題と対処法を示す。

共通トラブルシューティング
問題 対処法
認証エラー (401) が発生する PATが有効であり、必要なスコープを持っているか確認する。
MCPサーバが表示されない 設定ファイルのJSON構文を確認し、アプリケーションを完全に再起動する。
権限エラー (403) が発生する PATのスコープが十分であることを確認する。
(リポジトリアクセスには repo スコープが必須)
コンテキスト超過が発生する ツールセットを制限して使用するツール数を削減する。


Docker関連の問題

下表に、Dockerを使用したローカルサーバ方式で発生する可能性がある問題と対処法を示す。

Dockerトラブルシューティング
問題 対処法
Dockerがインストールされていない Dockerをインストールする。
リモートサーバ方式を使用する場合はDocker不要
Dockerイメージのプルに失敗する ネットワーク接続を確認する。
ghcr.ioへのアクセスが許可されているか確認する。
コンテナの起動に失敗する Dockerデーモンが起動しているか確認する。
docker ps コマンドで確認する。


認証・権限の問題

下表に、認証および権限に関する問題と対処法を示す。

認証・権限トラブルシューティング
問題 対処法
PATの有効期限が切れている GitHubでPATを再生成する。
有効期限を適切に設定する。
OAuth認証エラーが発生する 一部クライアントではOAuth認証に問題がある場合がある。
PAT認証に切り替える。
プライベートリポジトリにアクセスできない PATに repo スコープが付与されているか確認する。



関連リソース