GitHub MCPサーバーとは|できること・toolset・リモート/ローカルのセットアップを解説
GitHub MCPサーバーは、Claude・Copilot・CursorといったAIエージェントに「GitHubを操作するツール」を提供する、GitHub公式のMCP(Model Context Protocol)サーバーです。これを接続すると、AIが自然言語の指示からリポジトリの中身を読んだり、IssueやプルリクエストをAPI経由で作成・更新したり、GitHub Actionsのワークフローを実行したりできるようになります。実体はGo製のオープンソース(github/github-mcp-server)で、GitHubがホストするリモート版と、手元で動かすローカル版(Docker)の2通りで使えます。本記事は、できること(toolset)・リモートとローカルの選び方・セットアップ・権限を絞る設定までを、公式仕様に沿って一次情報ベースで整理します。
まとめ|GitHub MCPサーバーで押さえる要点
GitHub MCPサーバーは、AIエージェントにGitHub操作の権限とツールを与える公式の橋渡し役です。リポジトリ・Issue・プルリクエスト・GitHub Actions・セキュリティアラートなど、GitHub APIでできることのほとんどを、toolset(機能グループ)単位でAIに開放します。使い始めるうえでの判断は次の3点です。
- 接続方法を選ぶ:まず試すなら、インストール不要でGitHubがホストするリモート版(
https://api.githubcopilot.com/mcp/、2025年9月4日にGA)。オフラインや企業ネットワークで制御したいならローカル版(Docker)。 - 認証を用意する:リモート版はOAuthかPersonal Access Token(PAT)、ローカル版はPATを使う。PATのスコープは必要最小限に絞る。
- 権限を絞る:全ツールを開放せず、
--read-onlyやGITHUB_TOOLSETSで使うtoolsetだけを有効化するのが安全な既定。
リモート接続の詳しい手順やOAuth/PATの使い分けはGitHub Remote MCP Serverの解説記事で深掘りしています。この記事は全体像とローカル版まで含めた入り口として読んでください。
GitHub MCPサーバーとは|AIにGitHub操作を渡す公式MCPサーバー
まず「MCPサーバーが何をするものか」と「GitHub公式サーバーの実体」を押さえると、以降のtoolsetやセットアップが同じ考え方で理解できます。
MCP(Model Context Protocol)とGitHub MCPサーバーの関係
MCPは、AIモデルと外部ツール・データソースをつなぐための共通規格です。AIエージェント側(ホスト)とツール提供側(サーバー)が同じプロトコルで会話するため、対応クライアントであればどのMCPサーバーでも同じ作法で接続できます。GitHub MCPサーバーはこの規格に沿ったサーバー側の実装で、「create_pull_request」「list_issues」「get_file_contents」といったGitHub操作をツールとしてAIに公開します。AIは自然言語の指示を受け取ると、必要なツールを選んで呼び出し、GitHub APIを介して実際の操作を行います。MCPの基礎そのものは、MCPサーバーを自作するFastMCPの解説記事も合わせて読むと理解が深まります。
公式サーバーの実体(github/github-mcp-server・Go製)
GitHub MCPサーバーは、GitHubが自ら開発・公開している公式リポジトリgithub/github-mcp-serverで提供されます。実装言語はGoで、MITライセンスのオープンソースです。かつてコミュニティが作っていた非公式のGitHub連携サーバーとは異なり、GitHub自身が保守しているため、APIの追従やセキュリティ対応が速いのが特徴です。「official」「公式」で検索した場合の答えは、このgithub/github-mcp-serverと、GitHubがホストするリモートエンドポイントの2つになります。
GitHub MCPサーバーでできること|20のtoolset一覧
GitHub MCPサーバーの機能はtoolset(機能グループ)単位で整理されています。toolsetを有効化すると、その中の個別ツール(API操作)がAIから呼べるようになります。全ツールを一度に開くのではなく、使うtoolsetだけを有効化するのが基本設計です。主なtoolsetは次のとおりです。
| toolset | 担当領域 | 代表的な操作 |
|---|---|---|
| repos | リポジトリ・ファイル | ファイル取得・ブランチ/コミット・検索 |
| issues | Issue | 作成・更新・コメント・割り当て |
| pull_requests | プルリクエスト | 作成・レビュー・差分取得・マージ |
| actions | GitHub Actions | ワークフロー実行・実行状況/ログ取得 |
| code_security | Code scanning | コードスキャンのアラート参照 |
| secret_protection | Secret scanning | シークレット検出アラート参照 |
| dependabot | Dependabot | 依存関係の脆弱性アラート参照 |
| security_advisories | アドバイザリ | セキュリティアドバイザリ参照 |
| notifications | 通知 | 通知の取得・既読化 |
| discussions | Discussions | ディスカッション参照・投稿 |
| gists | Gist | Gistの作成・取得 |
| orgs / projects / users | 組織・Projects・ユーザー | 組織情報・Projects項目・ユーザー参照 |
| git / labels / stargazers | Git・ラベル・スター | 低レベルGit・ラベル・スター一覧 |
| copilot / code_quality | Copilot・コード品質 | Copilot連携・品質チェック |
| context | コンテキスト(既定で有効) | ログイン中ユーザー等の状況取得(get_me) |
上の表は主要領域をまとめて掲載したもので、個別のtoolsetは全部で20あります(orgs/projects/usersなどは表では1行に集約)。toolsetの名称と数はバージョンで増減するため、最新の一覧は公式リポジトリのREADMEで確認してください。
リポジトリ・Issue・プルリクエストの操作(repos / issues / pull_requests)
中心になるのはこの3つのtoolsetです。reposでリポジトリ内のファイルやブランチを読み書きし、issuesでIssueの起票・整理、pull_requestsでPRの作成・差分レビュー・マージまでを扱えます。たとえば「このIssueの内容でブランチを切り、修正してPRを出して」と指示すると、AIはrepos・issues・pull_requestsのツールを順に呼び出し、一連の作業をGitHub上で完結させられます。人手のコピー&ペーストを介さずにGitHubを操作できる点が、MCPサーバーを挟む最大の価値です。
GitHub Actions・セキュリティ系のtoolset(actions / code_security / dependabot)
「github actions mcp」で探される用途、つまりCI/CDの操作はactions toolsetが担います。ワークフローの起動、実行中ジョブの状態確認、失敗したジョブのログ取得までAIに任せられるため、「失敗したワークフローのログを読んで原因を教えて」といった調査が自然言語で行えます。セキュリティ面ではcode_security(Code scanning)・secret_protection(Secret scanning)・dependabot(依存脆弱性)のアラートを参照でき、AIに検出結果の要約や優先度付けをさせる使い方ができます。これらは参照系が中心で、書き込みを伴う操作は後述の権限設定で制御します。
リモート版とローカル版の違いと選び方
GitHub MCPサーバーには、GitHubがホストするリモート版と、自分の環境で動かすローカル版があります。リモート版は2025年9月4日に一般提供(GA)となり、対応クライアントならインストールなしでURLを登録するだけで使えます。両者の違いを整理します。
| 観点 | リモート版 | ローカル版 |
|---|---|---|
| 実行場所 | GitHubがホスト | 自分のマシン/サーバー |
| 導入 | URL登録のみ(インストール不要) | Docker/バイナリを用意 |
| エンドポイント | api.githubcopilot.com/mcp/ | stdio(標準入出力) |
| 認証 | OAuth または PAT | PAT(環境変数) |
| 提供状況 | 2025年9月4日 GA | 安定版(OSS) |
| 向くケース | すぐ試す・保守を任せたい | ネットワーク制御・自前運用 |
リモート版(ホスト型・OAuth/PAT)
リモート版は、クライアントにhttps://api.githubcopilot.com/mcp/を登録するだけで接続でき、サーバーの更新もGitHub側で行われます。認証はブラウザで認可して接続するOAuth(PATのように長期のトークンを手元へ保管しなくてよい)か、PATをBearerヘッダーで渡す方式です。OAuthはVS CodeやCursorなど多くのクライアントで使えますが、クライアントによってはリモート接続でPATのみ対応の場合があります(GA時点のClaude CodeはPAT接続)。リモート版の細かな接続手順・OAuthとPATの使い分けはGitHub Remote MCP Serverの解説にまとめています。
ローカル版(Docker/バイナリ・PAT)
ローカル版はDockerイメージghcr.io/github/github-mcp-serverを使うのが最も手軽です。Goで書かれているため、ソースからgo buildしてバイナリをstdioで起動する方法もあります。認証は環境変数GITHUB_PERSONAL_ACCESS_TOKENにPATを渡します。通信が自分のマシン内で完結するため、外部にトラフィックを出したくない企業ネットワークや、toolsetを細かく固定したい運用に向きます。
セットアップ手順(リモート/ローカル)
代表的なクライアントでの登録例を示します。設定ファイルのキー名はクライアントごとに異なりますが、考え方は「リモートはURL、ローカルはDockerコマンド+PAT」で共通です。
VS Code・Cursorでリモート版を登録する
VS Code(1.101以降)やCursorでは、MCP設定にHTTP型のサーバーとしてリモートURLを追加します。VS Codeなら.vscode/mcp.jsonに次のように書きます。
{
"servers": {
"github": {
"type": "http",
"url": "https://api.githubcopilot.com/mcp/"
}
}
}
初回接続時にOAuthのログイン画面が開き、認可するとツールが使えるようになります。PATで接続する場合は、クライアントの案内に従ってAuthorizationヘッダーにトークンを設定します。
Dockerでローカル版を起動する
ローカル版は、PATを環境変数で渡してDockerイメージを起動します。クライアントのMCP設定に次のようなコマンドを登録します。
docker run -i --rm \
-e GITHUB_PERSONAL_ACCESS_TOKEN=<your_pat> \
ghcr.io/github/github-mcp-server
PATはGitHubの設定画面(Settings → Developer settings → Personal access tokens)で発行します。fine-grained PATなら、対象リポジトリと必要な権限だけを選んで最小スコープにできます。PATの発行手順やOAuthとの使い分けはGitHub Remote MCP Serverの解説で詳しく扱っています。起動後、クライアント側でGitHub関連のツールが認識されれば接続完了です。
権限とセキュリティを絞る設定(read-only・toolset制限)
GitHub MCPサーバーは、接続したAIにGitHubの書き込み権限まで渡しうるため、全ツールを無条件に開放しないことが安全運用の核心です。公式サーバーには、開放範囲を絞るための仕組みが用意されています。競合記事では触れられにくい、実務で効く3つの制御を挙げます。
読み取り専用にする(–read-only)
フラグ--read-onlyを付けると、書き込み系ツール(Issue作成やPRマージなど)が無効化され、参照系だけが有効になります。コードレビューや調査など「読むだけ」の用途では、まずこれを付けて事故を防ぐのが定石です。ローカル版のバイナリなら次のように起動します。
github-mcp-server stdio --read-only --toolsets repos,issues,pull_requests
使うtoolsetだけ有効化する(–toolsets / GITHUB_TOOLSETS)
有効化するtoolsetは、コマンドラインの--toolsetsか、環境変数GITHUB_TOOLSETSで指定します。Dockerならこう書きます。
docker run -i --rm \
-e GITHUB_PERSONAL_ACCESS_TOKEN=<your_pat> \
-e GITHUB_TOOLSETS=repos,issues,pull_requests \
ghcr.io/github/github-mcp-server
toolsetより細かく、個別ツール単位で絞りたいときは--tools(環境変数GITHUB_TOOLS)で許可するツールを列挙できます。また、どのtoolsetが必要か事前に決めにくい場合は、動的にtoolsetを読み込む--dynamic-toolsetsもあります。ただしAIが必要に応じて機能を有効化していく挙動になるため、権限を厳密に固定したい本番運用では、使うtoolset・ツールを明示列挙する方が安全です。
PATのスコープを最小化する
最終的な権限の上限を決めるのはPATのスコープです。toolsetを絞っても、PATに広い権限があれば渡しうる操作は残ります。fine-grained PATで対象リポジトリと必要な権限だけを選び、参照中心の用途ならContents/Issuesを読み取りに限定する、といった最小化を行います。MCPサーバー経由でAIにツールを渡す際のリスク設計は、Playwright MCPのセキュリティ解説の考え方も参考になります。複数のMCPサーバーをまとめて安全に管理したい場合は、Docker MCP Gatewayのようなゲートウェイの利用も選択肢です。
主要クライアントと実際の使い方
GitHub MCPサーバーは、MCPに対応するAIクライアントであれば共通の作法で使えます。GA時点で、VS Code(Copilotエージェントモード)・Cursor・Claude Desktop/Claude Code・JetBrains系IDE・Windsurf・Zed・GitHub Copilot CLIなど幅広いクライアントが接続できます。
Copilot(VS Codeエージェントモード)との連携
VS CodeのCopilotエージェントモードにGitHub MCPサーバーを登録すると、Copilotがチャットからリポジトリ操作・PR作成・Actionsの確認までツールとして呼び出せます。「github copilot mcp server」で探される構成がこれで、Copilotの補完に加えてGitHub操作そのものをAIに任せられるのが違いです。
代表的なユースケース(PRレビュー・Issue整理)
実務で効果が出やすいのは、プルリクエストのレビュー支援とIssueの整理です。PRレビューでは「このPRの差分を要約して、懸念点を指摘して」と指示すれば、pull_requestsツールで差分を取得してレビュー観点を返します。Issue整理では、未対応Issueの一覧取得・ラベル付け・重複の指摘などをまとめて任せられます。いずれも書き込みを伴う操作は--read-onlyを外した状態で、権限を絞ったうえで実行するのが安全です。
よくある質問
GitHub MCPサーバーとは何ですか?
AIエージェントにGitHub操作のツールを提供する、GitHub公式のMCP(Model Context Protocol)サーバーです。接続すると、AIがリポジトリの参照・Issue/PRの作成・GitHub Actionsの実行などをGitHub API経由で行えるようになります。
GitHub MCPサーバーは公式ですか?
公式です。GitHub自身がリポジトリgithub/github-mcp-server(Go製・OSS)を保守し、GitHubがホストするリモート版も提供しています。非公式のコミュニティ実装とは別物です。
リモート版とローカル版はどちらを使うべきですか?
すぐ試したい・保守を任せたいならリモート版(URL登録のみ、2025年9月4日GA)。外部にトラフィックを出したくない、toolsetを自前で固定したいならローカル版(Docker)です。まずはリモート版で試すのが手軽です。
GitHub Actionsの操作はできますか?
できます。actions toolsetを有効化すると、ワークフローの実行・実行状況の確認・失敗ジョブのログ取得などをAIから行えます。「失敗したワークフローの原因を調べて」といった調査に使えます。
利用に料金はかかりますか?
サーバー自体はMITライセンスのオープンソースで、リモート版もGitHubアカウントがあれば利用できます。ただしGitHub APIのレート制限は適用され、Copilot Coding AgentなどCopilotを前提とする機能はCopilotの有料プランが必要です。最新の条件は公式で確認してください。