GitHub MCP サーバ:読み取り専用 vs 書き込み権限

github MCP サーバの Personal Access Token をどうスコープ設定するか — 閲覧用の読み取り専用と、PR 作成・Issue 更新用の読み書き構成。

Client Differences

詳細な説明

2 つのトークンプロファイル

github MCP サーバの能力はトークンの GitHub 権限で完全に決まります。同じサーババイナリ、同じ env 変数名でも、スコープによって影響範囲が大きく変わります。

プロファイル 1:読み取り専用(推奨デフォルト)

トークン権限:

  • Repository → Contents: Read-only
  • Repository → Issues: Read-only
  • Repository → Pull requests: Read-only
  • Repository → Metadata: Read-only(自動付与)

モデルにできること:

  • 選択リポジトリ全体のコード検索
  • Issue / PR の本文・コメント・ラベル読み取り
  • ブランチ・コミット・リリース一覧

できないこと:

  • Issue や PR の作成
  • 既存 Issue へのコメント
  • コードのプッシュ

これがデフォルトとして適切です。書き込み一切なしで「バックログには何がある?」に答えられます。

プロファイル 2:読み書き(選択的)

追加:

  • Repository → Contents: Read and write(コミット・PR 作成)
  • Repository → Issues: Read and write(新規 Issue + コメント)
  • Repository → Pull requests: Read and write(PR 作成・レビュー)

変わること:

  • モデルが github.create_issuegithub.create_pull_request 等を呼べるようになります。
  • 全ての書き込みは GitHub 監査ログにあなたのアカウントとして記録されます。

設定(両プロファイルで同一)

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

トークンのスコープが実行時にどのツールが成功するかを決め、JSON 設定自体は同じです。

ベストプラクティス

PAT を 2 つ持ちます:日常用の読み取り専用 PAT と、明示的にモデルに行動させたいときだけ差し替える書き込み PAT です。設定スニペットを共有する前には シークレット秘匿ツール を通してトークンの偶発漏洩を防ぎます。

ユースケース

LLM に Issue を 50 件検索・要約させたいが、誤って close されたくないとき。逆に、意図した「トリアージ Day」セッションだけ書き込み権限を付与し、終わったら剝奪する運用にも使えます。

試してみる — MCP Server Config Generator

フルツールを開く