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 ツールを呼び出す必要があります。
ツール呼び出しのイメージ
- ユーザー: 「
my-org/my-repoリポジトリのオープンな Issue を教えて」 - Claude エージェント: ユーザーの意図を理解し、思考する。
- 「GitHub の Issue 一覧を取得する必要がある」
- 「
githubツールにlist_issuesメソッドがあるはずだ」 - 「引数として
owner='my-org',repo='my-repo',state='open'を渡そう」
- Claude エージェント:
github.list_issues(owner='my-org', repo='my-repo', state='open')を呼び出す。 - ProcessTool:
mcp githubプロセスにtools/callメッセージを送信。 - GitHub MCP サーバ: GitHub API を呼び出し、結果を受け取る。
- GitHub MCP サーバ: 結果を
tools/call_resultメッセージとして ProcessTool に返す。 - Claude エージェント: 返された Issue リストを解釈し、ユーザーに分かりやすく整形して報告する。
この一連のプロセスを通じて、AI エージェントは外部システムと安全かつ効果的に連携できます。 特に、GitHub のような認証が必要なシステムでは、MCP サーバが認証情報を安全に管理する役割が非常に重要になります。
まとめ
このレッスンでは、modelcontextprotocol[github] をインストールし、mcp github コマンドで GitHub MCP サーバを起動する方法を学びました。
そして、Claude Agent SDK の ProcessTool を使って、この公開 MCP サーバをエージェントに接続する手順を理解しました。
これにより、AI エージェントが GitHub の Issue 一覧を安全に取得する具体的な連携フローを把握できました。
次の演習では、実際に自分の GitHub リポジトリの Issue 一覧を Claude エージェントに取得させてみましょう。