Laravelを使用して独自のMCPサーバーを作成する
ClaudeはあなたのLaravelアプリと連携できます。REST APIを構築したり、カスタムクライアントを記述したりする必要はありません。Model Context Protocol (MCP) を通じてツールを公開できます。
laravel/mcp パッケージを使えば、これは簡単です。午後のひとときでMCPサーバーを構築できます。
MCPサーバーは、AIに対して以下の3つのものを提供します: • Tools(ツール): 注文の検索など、モデルが呼び出すアクション。 • Resources(リソース): モデルがコンテキストとして取得する読み取り専用データ。 • Prompts(プロンプト): 再利用可能なテンプレート。
構築方法:
- セットアップ
Composer経由でパッケージをインストールします:
composer require laravel/mcp
ルートを公開します:
php artisan vendor:publish --tag=ai-routes
- サーバーの作成
サーバーはツールとリソースをグループ化します。以下のコマンドで生成できます:
php artisan make:mcp-server OrdersServer
routes/ai.php に登録します。リモートクライアント用にWebサーバーを実行することも、Claude Codeのようなツールのためにローカルサーバーを実行することもできます。
- ツールの作成
ツールが実際の作業を行います。以下のコマンドでツールを生成します:
php artisan make:mcp-tool SearchOrdersTool
ツールには2つのメソッドが必要です: • Schema: モデルが送信する引数を定義します。 • Handle: ロジックを実行し、レスポンスを返します。
明確な説明を記述してください。モデルは、いつツールを使用するかを判断するためにこれらの説明を使用します。
アノテーションの使用 属性(Attributes)を使用してツールの動作を記述します: • IsReadOnly: ツールはデータを変更しません。 • IsDestructive: ツールはデータを変更または削除します。 • IsIdempotent: 2回実行しても1回目と同じ結果になります。
サーバーの保護 Web MCPサーバーは公開エンドポイントです。他のAPIと同様に扱ってください。ミドルウェアを使用して保護します。認証には Laravel Sanctum や Passport が適しています。
テスト MCP Inspectorを使用して、サーバーを手動でテストします:
php artisan mcp:inspector orders
また、ツールが正しく動作することを確認するために、標準的なPHPUnitテストを書くこともできます。
これで、AIがアプリケーションと対話するための標準的なインターフェースが整いました。プロトコルコードを記述する必要はありません。ツールを追加し、明確に説明し、ミドルウェアで保護するだけです。
あなたはMCPサーバーを何に接続しましたか?コメントで教えてください。
Source: https://dev.to/accreditly/use-laravel-to-create-your-own-mcp-server-251g