Skip to main content

概要

2026年6月、Laravel公式ブログで、Laravel AI SDKで構築したAIエージェントから MCP(Model Context Protocol)サーバーに接続できるようになったことが発表されました。 これまでLaravel MCPは「Laravelアプリを MCPサーバーとして 公開する」機能を提供していましたが、今回追加されたのは逆方向、つまり「Laravelアプリが MCPクライアントとして 他のMCPサーバーに接続する」機能です。
MCP自体の詳しい仕組みはLaravel MCPのドキュメントを参照してください。このページではクライアント機能に絞って解説します。

なぜAI SDK本体ではなくLaravel MCPに実装されたか

MCPはトランスポートのネゴシエーション、ハンドシェイク、認証フローなど扱う範囲が広いプロトコルです。これをAI SDK内に直接実装すると、エージェントなしでMCPサーバーと通信したい場面(キュージョブやコンソールコマンドなど)で再利用できません。 そこでLaravel チームは機能を2つに分けました。
  • laravel/mcp:接続・ネゴシエーション・認証・ツール呼び出しを担当するMCPクライアント本体
  • laravel/ai:エージェントがそのクライアントをtools()から違和感なく使えるようにする薄い統合層
それぞれが単独でも使え、組み合わせるとエージェントからMCPサーバーのツールを手書きのツールと同じように扱えます。

MCPサーバーへの接続

ローカルプロセスとして起動するSTDIOサーバーと、HTTP経由のリモートサーバーの両方に対応しています。
接続、ハンドシェイク、プロトコルバージョンのネゴシエーションはすべてクライアントが処理するため、アプリ側はtools()を呼ぶだけで済みます。

認証

Bearerトークン

OAuth

Nightwatchなど多くのホスト型MCPサーバーはOAuthを要求します。サービスプロバイダーで名前付きクライアントを登録します。
OAuthのルートとコールバック処理を配線します。
これでmcp.oauth.nightwatch.connectと対応するコールバックルートが生成されます。Blade側では接続ボタンを置くだけです。
ユーザーがログインして承認すると、コールバックのクロージャがトークンを受け取ります。リダイレクトURLやPKCEの詳細を自分で扱う必要はありません。 ユーザーの介在がないバックグラウンド処理向けには、クライアントクレデンシャルグラントも用意されています。

エージェントへの組み込み

一番のポイントは、エージェントのtools()メソッドを変更せずにMCPツールを混ぜられることです。
Laravel AIはtools()配列の中身がMCPツールであることを検知し、エージェントのツール契約に合うようラップします。MCPの入力スキーマをLaravelのJSONスキーマに変換し、モデルがツールを呼び出したときにリモート呼び出しを行い、結果を正規化して返します。エラー、構造化データ、プレーンテキスト、ストリーミング更新のいずれも自動的に処理されるため、エージェント側のコードにMCPの詳細が漏れ出すことはありません。 複数のトランスポートを1つのエージェントに混在させることもできます。
さらに、自分のLaravel MCPサーバー用に書いたツールクラスは、クライアント接続なしにそのままエージェントへ渡せます。同じツールを外部公開用とエージェント用の両方で使い回せるということです。

ツール一覧のキャッシュ

ツール一覧の取得にはサーバーへの往復が発生します。特にOAuth経由のリモートサーバーでは、プロンプトのたびに呼び出すのは無駄です。ツール一覧は頻繁に変わらないため、キャッシュ対象として適しています。
MCPツールはプレーンなデータとして返るため、キャッシュから復元してもそのまま動作します。

テスト

実際に稼働しているMCPサーバーがなくても、Laravel AIのフェイク機能でエージェントをテストできます。MCPツール名はmcp_tools_<name>という命名規則に従うため、searchというツールはmcp_tools_searchとして現れます。
エージェントの通常のループはそのまま動き、モデルの発言だけをフェイクが決定します。ツール呼び出し自体はMCPレイヤーを実際に通過するため、ネットワークなしで本番と同じ経路をテストできます。

現時点でサポートされる範囲

この最初のリリースでは、STDIOとStreamable HTTPの両トランスポートで、ツールとプロンプトをサポートしています。認証はBearerトークンとOAuthに対応しています。MCP自体の進化に合わせて、今後も対応範囲が広がっていく見込みです。

関連ページ

AI SDKのカスタムプロバイダーを作る

標準対応していないAIサービスに対応するカスタムプロバイダーの実装方法

Laravel Nightwatch 入門

この記事で例に使われているホスト型監視サービスNightwatchの解説
最終更新日 2026年7月31日