laravel-mcp について
LaravelでMCPサーバーを構築する開発者向けのリファレンススキルです。サーバー登録、ツール、プロンプト、リソース、認証、テストの実装パターンとルールを扱います。
主な機能
- 01Web・ローカルサーバーの設定
- 02スキーマと応答を備えたツール
- 03プロンプトとリソーステンプレート
- 04OAuth、Sanctum、独自認証
- 05MCP Inspectorとユニットテスト
活用シーン
- 01Laravel MCPサーバーの作成
- 02AIクライアント向けツールの公開
- 03再利用可能なプロンプトとリソースの提供
- 04MCPエンドポイントの保護とテスト
MCP 対応
LaravelでMCPサーバーを構築し、AIクライアントにツール、プロンプト、リソースを公開するためのガイドです。サーバー登録と認証も扱います。
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ asyrafhussin/ agent-skills --skill laravel-mcpインストール後、Claude Code で/laravel-mcpを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
AGENTS.mdmetadata.jsonREADME.mdrules/auth-protect.mdprompt-create.mdresource-create.mdserver-create-register.mdtest-unit.mdtool-create.mdtool-responses.md詳細
Laravel MCP
Laravel を使用して MCP(Model Context Protocol)サーバーを構築するための包括的なガイドです。AI クライアントにツール、プロンプト、リソースを公開するための、5 つのカテゴリにわたる 7 つのルールが含まれています。
適用する場面
以下の場合にこれらのガイドラインを参照してください。
- MCP サーバー(ウェブまたはローカル)を作成する
- AI クライアントが呼び出せるツールを構築する
- 再利用可能な AI インタラクションのためのプロンプトを定義する
- AI コンテキスト用のリソースを公開する
- OAuth または Sanctum で MCP サーバーを保護する
- MCP サーバー、ツール、プロンプト、リソースをテストする
優先度別のルールカテゴリ
| 優先度 | カテゴリ | 影響度 | プレフィックス |
|---|---|---|---|
| 1 | サーバー | CRITICAL | server- |
| 2 | ツール | HIGH | tool- |
| 3 | プロンプトとリソース | MEDIUM | prompt-, resource- |
| 4 | 認証 | HIGH | auth- |
| 5 | テスト | HIGH | test- |
クイックリファレンス
1. サーバー(CRITICAL)
server-create-register- ウェブまたはローカルの MCP サーバーを作成して登録する
2. ツール(HIGH)
tool-create- 入力/出力スキーマ、DI、アノテーションを備えたツールを作成するtool-responses- テキスト、エラー、構造化、ストリーミング、複数コンテンツのレスポンス
3. プロンプトとリソース(MEDIUM)
prompt-create- 引数、バリデーション、レスポンスを備えたプロンプトを作成するresource-create- URI パターンを使用してリソースとリソーステンプレートを作成する
4. 認証(HIGH)
auth-protect- OAuth 2.1、Sanctum、またはカスタム認証でサーバーを保護する
5. テスト(HIGH)
test-unit- MCP Inspector とユニットテストを使用してテストする
重要なパターン
MCP サーバーの作成
<?php
namespace App\Mcp\Servers;
use Laravel\Mcp\Server;
use Laravel\Mcp\Server\Attributes\Instructions;
use Laravel\Mcp\Server\Attributes\Name;
use Laravel\Mcp\Server\Attributes\Version;
#[Name('Weather Server')]
#[Version('1.0.0')]
#[Instructions('This server provides weather information.')]
class WeatherServer extends Server
{
protected array $tools = [
CurrentWeatherTool::class,
];
protected array $resources = [];
protected array $prompts = [];
}
routes/ai.php への登録
use App\Mcp\Servers\WeatherServer;
use Laravel\Mcp\Facades\Mcp;
Mcp::web('/mcp/weather', WeatherServer::class);
Mcp::local('weather', WeatherServer::class);
ツールの作成
<?php
namespace App\Mcp\Tools;
use Illuminate\Contracts\JsonSchema\JsonSchema;
use Laravel\Mcp\Request;
use Laravel\Mcp\Response;
use Laravel\Mcp\Server\Attributes\Description;
use Laravel\Mcp\Server\Tool;
#[Description('Fetches the current weather for a location.')]
class CurrentWeatherTool extends Tool
{
public function handle(Request $request): Response
{
$location = $request->get('location');
return Response::text("The weather in {$location} is sunny, 72°F.");
}
public function schema(JsonSchema $schema): array
{
return [
'location' => $schema->string()
->description('The location to get the weather for.')
->required(),
];
}
}
使い方
詳しい説明とコード例については、各ルールファイルをお読みください。
各ルールファイルには以下が含まれています。
- メタデータ(タイトル、影響度、タグ)を含む YAML フロントマター
- 重要な理由の簡単な説明
- 説明付きの悪い例
- 説明付きの良い例
- Laravel 13 および PHP 8.3 固有の背景情報と参考資料
完全版ドキュメント
すべてのルールを展開した完全なガイドについては、AGENTS.md をご覧ください。
コメント
Markdown 対応