0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MCP(Model Context Protocol)とGitHubを連携させてAIエージェントによるIssue対応を半自動化する設定手順

0
Posted at

読者が抱える課題

GitHubで管理されているIssueの確認、コードの検索、修正案の作成、レスポンスの作成といった一連の作業は、開発者にとって一定の手間がかかります。また、Webブラウザ上のGitHub UIとローカルの開発環境を行き来することによる文脈切り替えのコストも発生します。

この記事で分かること

  • MCP(Model Context Protocol)を経由してGitHub APIとAIエージェント(Claude DesktopやCline等)を接続する仕組み
  • ローカル環境でGitHub MCPサーバーを起動し、AIエージェントからIssueの取得やPR作成を行うための設定手順
  • 運用上のセキュリティ上の注意点とパーミッション設定のチェックリスト

対象読者・前提条件

  • Node.js(v18以上)または Docker がインストールされている環境
  • GitHubのアカウントおよびPersonal Access Token(PAT)の発行権限
  • MCPに対応したクライアント(Claude Desktopなど)の利用環境

※仕様変更の可能性があるため、導入時はMCP公式ドキュメントおよびGitHub APIの最新情報を合わせてご確認ください。

仕組みの概要

Model Context Protocol(MCP)は、LLM(大規模言語モデル)アプリケーションが外部のツールやデータソースと安全に通信するためのオープンプロトコルです。
GitHub MCP サーバーを介することで、AIエージェントに対して「指定したIssueの内容を取得する」「リポジトリ内を検索する」「ブランチを作成してファイルを変更する」といったツール実行能力を安全に付与できます。

設定手順

1. GitHub Personal Access Token (PAT) の発行

GitHubの [Settings] > [Developer settings] > [Personal access tokens] からトークンを発行します。
Fine-grained tokens または Tokens (classic) が利用可能です。

必要最小限の権限(例):

  • repo (フルコントロール、またはIssueおよびPull Requestの読み書き権限)
  • read:org (組織のリポジトリを扱う場合)

※取得したトークンは外部に露出させないよう厳重に管理してください。

2. MCPクライアントの設定(Claude Desktopの例)

Claude Desktopの設定ファイル(claude_desktop_config.json)を編集し、GitHub MCPサーバーを登録します。

OS別の設定ファイルパス:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

設定例 (npxを使用する場合)

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

※ YOUR_GITHUB_PAT_HERE 部分をご自身の発行したPATに置き換えてください。環境変数を利用して読み込む運用も推奨されます。

3. 動作確認

設定ファイルの保存後、Claude Desktopを再起動します。右下にハンマーアイコン(ツール読み込みマーク)が表示され、github に関連するツール群(get_issue, search_repositories, create_pull_request など)が認識されているか確認します。

実務での利用プロンプト例

Issueの確認から修正案の提示を依頼する際のプロンプト例です。

リポジトリ `my-org/my-repo` の Issue #42 の内容を取得してください。
そのIssueに記載されているバグの原因をプロジェクト内のコードから検索し、
修正に必要なコードの変更案と、Issueへの返信文案を作成してください。
まだPRの作成やコメントの投稿は実行しないでください。

運用時の判断基準と注意点

AIエージェントによる自動化を導入する際は、安全性の観点から段階的に権限を付与することを推奨します。

フェーズ エージェントの権限 人間の作業 適用対象
導入初期 読み取り専用 (read-only) コード修正、PR作成、コメント投稿の全手動実行 既存プロジェクトへの試行時
中期 読み取り + ブランチ作成/コミット PRの差分レビュー、マージ判定、コメント最終確認 定型的なバグ修正・ドキュメント更新
高度な自動化 Issue作成 + PR自動生成 コードレビューおよびマージ操作のみ CI/CDと連携した自動トリガー

セキュリティ&運用チェックリスト

導入時および運用時に以下の項目を確認してください。

  • Personal Access Token に過剰な権限(admin:org や不要な削除権限など)が付与されていないか
  • トークンをソースコードやパブリックリポジトリにコミットしていないか
  • AIエージェントが自動で直接 main または master ブランチに push しない設定になっているか
  • 外部から入力されたIssue本文に含まれる悪意のある指示(プロンプトインジェクション)により、意図しないツール実行が行われないよう、実行前に人間の確認ステップを挟んでいるか
  • 取得したコードやデータに個人情報・秘密情報が含まれていないか

まとめ

MCPを活用してGitHubとAIエージェントを連携させることで、Issueの解析や修正案の作成といった定型作業の効率化が期待できます。安全に運用するためには、最小権限の原則を守り、書き込み系のアクションには人間のレビュー(Human-in-the-loop)を挟む構成から開始することが重要です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?