メインコンテンツへスキップ
見出し画像

GitHub MCP Serverの使い方——リモートかローカルか、ツールセットの絞り方、読み取り専用で始める

    AIにGitHubを触らせたい。でも、何をどこまで触られるのかが分からないまま鍵を渡すのは怖い。

    その両方を、同時に解決しているOSSがあります。

    GitHub MCP Server。GitHubが自分で作って公開している、MCPのサーバーです。GitHubのリポジトリのREADMEの1行目は「The GitHub MCP Server connects AI tools directly to GitHub's platform」。AIの道具をGitHubに直接つなぐ。

    この記事では、GitHub MCP Serverの使い方を、最初に決める1つ(リモートかローカルか)、入れる手順、触らせる範囲の絞り方、の順に並べます。根拠はREADMEと、同じリポジトリにあるClaude向けの導入ガイドだけです。確認日は2026年9月14日です。

    GitHub MCP Serverとは——AIにリポジトリ・Issue・PRを読み書きさせる公式の窓口

    前提を1つ。

    MCPは、AIがツールを呼ぶための共通の口です。GitHub MCP Serverは、その口の向こうにGitHubを置く。READMEには、使い道としてリポジトリの閲覧と検索、IssueとPRの作成・更新、GitHub Actionsの実行状況の監視、コードスキャンやDependabotの結果の確認、Discussionsや通知の扱いが並んでいます。

    つまり、AIに「このリポジトリのPRを見て、失敗したCIの原因を探して」と言える状態を作るものです。

    僕が気に入っているのは、作っているのがGitHub自身だという点です。第三者が作った非公式の窓口と違って、GitHub側の変更に追従する責任が本人にある。

    ここまで前提。ここから手順です。

    ステップ1:リモートかローカルかを、先に決める

    GitHub MCP Serverには、動かし方が2つあります。

    1つ目、リモート。GitHubがホストしているサーバーに、URLでつなぐ。READMEには「hosted by GitHub and provides the easiest method」とあります。URLは https://api.githubcopilot.com/mcp/ で、認証はOAuthかGitHubのPersonal Access Token(PAT)。

    2つ目、ローカル。自分のマシンでDockerか実行ファイルとして動かす。イメージは ghcr.io/github/github-mcp-server。github.com なら初回にブラウザでOAuthログインが開き、トークンはメモリにだけ保持される。PATを使うなら GITHUB_PERSONAL_ACCESS_TOKEN で渡す。

    どっちがいいの?

    迷うなら、リモートです。Dockerを入れなくていいし、設定はURLを1行書くだけ。READMEも、リモートに対応していないホストのときにローカルを使え、という順番で書いています。

    ローカルを選ぶのは、GitHub Enterprise Serverのようにリモートが使えない環境か、通信を自分の管理下に置きたいときです。

    画像


    ステップ2:Claude Codeに入れる——1行と、再起動と、listで確認

    僕が使っているClaude Codeでの入れ方を、公式の導入ガイドどおりに書きます。

    前提は3つ。Claude Codeが入っていること、GitHubのPATを作ってあること、そして「プロジェクトのディレクトリの中でClaude Codeを開く」こと。ガイドが推奨として書いています。

    リモートなら、ターミナルで次の1行です(Claude Code 2.1.1以降)。

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

    YOUR_GITHUB_PAT の部分に、自分のトークンを入れる。ガイドは、トークンを .env に置いて環境変数から読む形も載せています。

    そのあと、Claude Codeを再起動する。最後に claude mcp list を打って、github が並んでいれば入っています。

    スコープを指定したいときは、末尾に --scope を足します。既定の local は、いまのプロジェクトで自分だけ。project は .mcp.json に書かれてチームで共有。user は自分の全プロジェクト。

    ローカル(Docker)で入れるなら、こちらです。

    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

    初回にブラウザでログインが開きます。PATで済ませたいなら、-e GITHUB_PERSONAL_ACCESS_TOKEN で渡す形もガイドにあります。

    画像


    ステップ3:触らせる範囲を、ツールセットで絞る

    入ったら、次は「何を触らせるか」です。ここを飛ばすと、AIにGitHubの全部を渡すことになります。

    GitHub MCP Serverは、道具を「ツールセット」という束で管理しています。READMEによれば、何も指定しないときの default は context、repos、issues、pull_requests、users の5つ。Actionsやコードスキャン、Dependabot、Discussions、Gist、Projectsなどは、明示的に足したときだけ有効になります。

    足し方は環境変数です。GITHUB_TOOLSETS="repos,issues,pull_requests,actions" のように並べる。既定を残して足すなら GITHUB_TOOLSETS="default,stargazers"。逆に、個別の道具だけを名指しするなら GITHUB_TOOLS="get_file_contents,issue_read,create_pull_request"。

    いや、最初から全部にしておいた方が楽じゃない?

    「all」という指定もあります。ただ、僕はおすすめしません。理由は次の節に書きますが、AIが呼べる道具が多いほど、意図しない操作の入口も増えるからです。最初は default のままで足りることがほとんどです。

    読み取り専用で始める——READ_ONLYとLockdown

    ここが、この記事でいちばん伝えたいところです。

    GitHub MCP Serverには、読み取り専用モードがあります。実行ファイルなら --read-only、Dockerなら GITHUB_READ_ONLY=1。READMEには、読み取りの道具だけを提供し、リポジトリ・Issue・PRへの変更を防ぐ、とあります。

    最初の1週間は、これで動かしてください。

    AIに「このPRのレビューをして」「失敗したワークフローのログを読んで」と頼む分には、書き込みは要りません。読むだけで価値の大半が出る。書き込みが必要になった時点で、必要な道具だけを足す。この順番が、事故を一番減らします。

    もう1つ、Lockdown Mode。--lockdown-mode か GITHUB_LOCKDOWN_MODE=1。

    これは、公開リポジトリの中身で、書き込み権限(push access)を持たない人が書いた内容を、サーバーが表に出さないようにする仕組みです。READMEの説明は「best-effort content filter intended to reduce the risk of prompt injection」。Issueやコメントに仕込まれた「AIへの指示」を、AIが読んでしまうリスクを減らす。

    ただし、READMEははっきり書いています。「not an authorization boundary」。これは権限の境界ではない。トークンが読めるものは、別の道具や直接のAPIからは読める。だから、Lockdownは「トークンのスコープを最小にする」の代わりにはなりません。

    トークンについては、READMEのベストプラクティスに3つ。最小のスコープだけ許可する。トークンは環境変数か .env に置く。.env は .gitignore に入れる。

    画像


    使う前に知っておく2つ——ホストごとの差と、消えないトークン

    最後に、READMEの注意書きから2つだけ。

    1つ目、ホストによって対応が違う。リモート版をOAuthで使うには、ホスト側がGitHub AppかOAuth Appの設定を持っている必要があります。PAT認証なら、リモートMCPに対応しているホストなら基本的に動く。詳しくはホストの側のドキュメントを見ろ、とREADMEにあります。VS Code、Claude Code、Codex、Cursor、Zedなど、ホスト別の導入ガイドが同じリポジトリに揃っています。

    2つ目、環境変数の対応もホストによって違う。READMEには、Windsurfのように設定ファイルにトークンを直書きしないといけないホストもある、と書かれています。直書きするなら、その設定ファイルを絶対にリポジトリに入れない。

    まとめ:GitHub MCP Serverの使い方は、リモートで入れて、絞って、読み取り専用から

    まとめます。

    GitHub MCP Serverは、GitHub自身が作ったMCPサーバー。AIにリポジトリ・Issue・PR・Actionsを読み書きさせる公式の窓口。

    迷ったらリモート。Claude Codeなら claude mcp add-json の1行、再起動、claude mcp list。

    触らせる範囲は GITHUB_TOOLSETS で絞る。既定は context・repos・issues・pull_requests・users の5つ。

    最初は GITHUB_READ_ONLY=1 で読み取り専用。Lockdownは補助であって権限の境界ではない。トークンは最小スコープで .env に。

    まず今日、読み取り専用で入れて、AIに「このリポジトリで一番古い未解決のIssueを教えて」と聞いてみてください。答えが返ってきたら、窓口は開いています。

    ▶ 関連記事: Apify MCP Serverの使い方——数千のスクレイパーをAIの道具にする前に決める2つ

    ▶ 関連記事: OpenWork の使い方——スキルとMCPを1箇所に置いて、どのAIからでも同じものを呼ぶ


    OSS活用の型をまとめた6大特典は 👉 オープンソース研究所の6大特典を受け取る

     
     
    今バズってるAI系オープンソースを毎日発信|海外で話題のGitHubレポジトリを最速で紹介|“使えるかどうか”まで解説|AI・開発トレンドを追う人向け|AIメディア|最新情報を毎日執筆中|フォロー推奨👇

    あなたへのおすすめ