GitHub MCP サーバ(Personal Access Token 付き)

fine-grained Personal Access Token を使って @modelcontextprotocol/server-github を設定し、Claude や Cursor からリポジトリ・Issue・PR を読み取れるようにします。

Presets

詳細な説明

GitHub サーバ:リポジトリと Issue へのアクセス

GitHub MCP サーバは GitHub REST API を MCP ツールとしてラップし、モデルからコード検索、Issue 読み取り、(適切なスコープがあれば)PR の作成までを可能にします。

設定

{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxxxxxxxxxxxxxxxxxx"
      }
    }
  }
}

fine-grained トークンの生成

  1. github.com で Settings → Developer settings → Personal access tokens → Fine-grained tokens を開きます。
  2. Generate new token をクリックし、"All repositories" ではなく Only select repositories を選択します。これは「1 つのリポジトリが漏れる」のと「アカウント全体が漏れる」のとの分岐点です。
  3. Repository permissions で読み取り専用なら Contents: Read-onlyIssues: Read-only を付与。PR の作成までさせたいときだけ Pull requests: Read and write を追加します。
  4. ghp_... トークンをコピーして env フィールドに貼ります。トークンは一度しか表示されないため、後から再取得はできません。

args ではなく env に入れる理由

API トークンは args ではなく env に置きます。理由は 2 つ。ps aux のようなプロセス一覧は args は表示されますが env は通常表示されないこと、そして GitHub サーバは慣例的に GITHUB_PERSONAL_ACCESS_TOKEN 環境変数からトークンを読むため、他の MCP サーバが誤って参照することがないからです。

トークンの確認

GitHub の PAT は JWT ではなく不透明な文字列なので、JWT デコーダー では中身を読めません。代わりに同じ値を GITHUB_TOKEN にエクスポートして gh auth status を実行すれば、有効性を確認できます。

ユースケース

Claude Desktop に「api リポジトリで今オープンしている Issue は?」「タイムアウトに言及している直近 10 件の Issue を要約して」と尋ね、GitHub の Web ページをチャットに貼らずに済ませる用途です。

試してみる — MCP Server Config Generator

フルツールを開く