Laravelを使用して独自のMCPサーバーを作成する

ClaudeはあなたのLaravelアプリと連携できます。REST APIを構築したり、カスタムクライアントを記述したりする必要はありません。Model Context Protocol (MCP) を通じてツールを公開できます。

laravel/mcp パッケージを使えば、これは簡単です。午後のひとときでMCPサーバーを構築できます。

MCPサーバーは、AIに対して以下の3つのものを提供します: • Tools(ツール): 注文の検索など、モデルが呼び出すアクション。 • Resources(リソース): モデルがコンテキストとして取得する読み取り専用データ。 • Prompts(プロンプト): 再利用可能なテンプレート。

構築方法:

  1. セットアップ Composer経由でパッケージをインストールします: composer require laravel/mcp

ルートを公開します: php artisan vendor:publish --tag=ai-routes

  1. サーバーの作成 サーバーはツールとリソースをグループ化します。以下のコマンドで生成できます: php artisan make:mcp-server OrdersServer

routes/ai.php に登録します。リモートクライアント用にWebサーバーを実行することも、Claude Codeのようなツールのためにローカルサーバーを実行することもできます。

  1. ツールの作成 ツールが実際の作業を行います。以下のコマンドでツールを生成します: php artisan make:mcp-tool SearchOrdersTool

ツールには2つのメソッドが必要です: • Schema: モデルが送信する引数を定義します。 • Handle: ロジックを実行し、レスポンスを返します。

明確な説明を記述してください。モデルは、いつツールを使用するかを判断するためにこれらの説明を使用します。

  1. アノテーションの使用 属性(Attributes)を使用してツールの動作を記述します: • IsReadOnly: ツールはデータを変更しません。 • IsDestructive: ツールはデータを変更または削除します。 • IsIdempotent: 2回実行しても1回目と同じ結果になります。

  2. サーバーの保護 Web MCPサーバーは公開エンドポイントです。他のAPIと同様に扱ってください。ミドルウェアを使用して保護します。認証には Laravel Sanctum や Passport が適しています。

  3. テスト MCP Inspectorを使用して、サーバーを手動でテストします: php artisan mcp:inspector orders

また、ツールが正しく動作することを確認するために、標準的なPHPUnitテストを書くこともできます。

これで、AIがアプリケーションと対話するための標準的なインターフェースが整いました。プロトコルコードを記述する必要はありません。ツールを追加し、明確に説明し、ミドルウェアで保護するだけです。

あなたはMCPサーバーを何に接続しましたか?コメントで教えてください。

Source: https://dev.to/accreditly/use-laravel-to-create-your-own-mcp-server-251g