AIエージェント活用実践編Tool Use と MCP — 外部システム連携

GitHub MCP を繋いで Issue 一覧を取る

無料公開レッスン / 読了目安 7


学習のねらい

これまでのレッスンで、Claude Agent SDK と MCP の基礎、そして自作 MCP サーバの作り方を学びました。 本レッスンでは、実際に公開されている GitHub MCP サーバを Claude Agent SDK に接続し、AI エージェントが GitHub の Issue 一覧を取得するタスクを実行してみましょう。 これにより、AI エージェントが外部の複雑なシステムと連携する具体的な手順と、その際の認証の重要性を実践的に理解します。

公開 MCP の起動方法

GitHub MCP は、modelcontextprotocol プロジェクトによって提供されている公開 MCP サーバの一つです。 このサーバは、GitHub API とのやり取りを MCP プロトコルに変換する役割を担います。

GitHub MCP のインストールと起動

GitHub MCP は、pip でインストールできます。

pip install modelcontextprotocol[github]

起動は、コマンドラインから行います。

mcp github

このコマンドを実行すると、GitHub MCP サーバが起動し、標準入出力 (stdio) 経由で MCP クライアントからのリクエストを待ち受けます。 初めて起動する場合や、認証情報が設定されていない場合は、GitHub の OAuth 認証プロセスをブラウザで開始するよう促されます。 指示に従って GitHub アカウントで認証し、必要な権限 (スコープ) を付与してください。 認証が成功すると、アクセストークンが安全に保存され、MCP サーバが利用可能になります。

Claude にどう繋ぐか

Claude Agent SDK から外部の MCP サーバを呼び出すには、ProcessTool を使います。 前回の電卓 MCP サーバの演習と同様に、ProcessTool は指定されたコマンドを実行し、そのプロセスと標準入出力で通信します。

from anthropic_agent.tool import ProcessTool

# GitHub MCP サーバを ProcessTool として登録
github_tool = ProcessTool(command=["mcp", "github"])

# Agent にツールを渡す
agent = Agent(
    tools=[github_tool],
    model="claude-3-opus-20240229",
    system_prompt="あなたはGitHubアシスタントです。GitHubの情報を取得するツールを使ってください。",
)

このように設定することで、Claude エージェントは github_tool を介して GitHub MCP サーバと通信し、GitHub の機能を利用できるようになります。

Issue 一覧の取得と表示

GitHub MCP が提供するツールの一つに、リポジトリの Issue 一覧を取得する機能があります。 Claude エージェントがこの機能を利用するには、ユーザーからの指示を適切に解釈し、GitHub MCP の list_issues ツールを呼び出す必要があります。

ツール呼び出しのイメージ

  1. ユーザー: 「my-org/my-repo リポジトリのオープンな Issue を教えて」
  2. Claude エージェント: ユーザーの意図を理解し、思考する。
    • 「GitHub の Issue 一覧を取得する必要がある」
    • github ツールに list_issues メソッドがあるはずだ」
    • 「引数として owner='my-org', repo='my-repo', state='open' を渡そう」
  3. Claude エージェント: github.list_issues(owner='my-org', repo='my-repo', state='open') を呼び出す。
  4. ProcessTool: mcp github プロセスに tools/call メッセージを送信。
  5. GitHub MCP サーバ: GitHub API を呼び出し、結果を受け取る。
  6. GitHub MCP サーバ: 結果を tools/call_result メッセージとして ProcessTool に返す。
  7. Claude エージェント: 返された Issue リストを解釈し、ユーザーに分かりやすく整形して報告する。

この一連のプロセスを通じて、AI エージェントは外部システムと安全かつ効果的に連携できます。 特に、GitHub のような認証が必要なシステムでは、MCP サーバが認証情報を安全に管理する役割が非常に重要になります。

まとめ

このレッスンでは、modelcontextprotocol[github] をインストールし、mcp github コマンドで GitHub MCP サーバを起動する方法を学びました。 そして、Claude Agent SDK の ProcessTool を使って、この公開 MCP サーバをエージェントに接続する手順を理解しました。 これにより、AI エージェントが GitHub の Issue 一覧を安全に取得する具体的な連携フローを把握できました。 次の演習では、実際に自分の GitHub リポジトリの Issue 一覧を Claude エージェントに取得させてみましょう。

参考リンク


GitHub MCP を繋いで Issue 一覧を取る | AIエージェント活用実践編 第1章 - AI研修