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 トークンの生成
- github.com で Settings → Developer settings → Personal access tokens → Fine-grained tokens を開きます。
- Generate new token をクリックし、"All repositories" ではなく Only select repositories を選択します。これは「1 つのリポジトリが漏れる」のと「アカウント全体が漏れる」のとの分岐点です。
- Repository permissions で読み取り専用なら Contents: Read-only と Issues: Read-only を付与。PR の作成までさせたいときだけ Pull requests: Read and write を追加します。
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 ページをチャットに貼らずに済ませる用途です。