mcpField
L
laravel-mcp

laravel-mcp

github.com/asyrafhussin開発95668 回インストール9 週間前に更新
リポジトリ

laravel-mcp について

LaravelでMCPサーバーを構築する開発者向けのリファレンススキルです。サーバー登録、ツール、プロンプト、リソース、認証、テストの実装パターンとルールを扱います。

主な機能

  1. 01Web・ローカルサーバーの設定
  2. 02スキーマと応答を備えたツール
  3. 03プロンプトとリソーステンプレート
  4. 04OAuth、Sanctum、独自認証
  5. 05MCP Inspectorとユニットテスト

活用シーン

  1. 01Laravel MCPサーバーの作成
  2. 02AIクライアント向けツールの公開
  3. 03再利用可能なプロンプトとリソースの提供
  4. 04MCPエンドポイントの保護とテスト

MCP 対応

LaravelでMCPサーバーを構築し、AIクライアントにツール、プロンプト、リソースを公開するためのガイドです。サーバー登録と認証も扱います。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/asyrafhussin/agent-skills --skill laravel-mcp

インストール後、Claude Code で/laravel-mcpを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

AGENTS.md
metadata.json
README.md
rules/
auth-protect.md
prompt-create.md
resource-create.md
server-create-register.md
test-unit.md
tool-create.md
tool-responses.md

詳細

Laravel MCP

Laravel を使用して MCP(Model Context Protocol)サーバーを構築するための包括的なガイドです。AI クライアントにツール、プロンプト、リソースを公開するための、5 つのカテゴリにわたる 7 つのルールが含まれています。

適用する場面

以下の場合にこれらのガイドラインを参照してください。

  • MCP サーバー(ウェブまたはローカル)を作成する
  • AI クライアントが呼び出せるツールを構築する
  • 再利用可能な AI インタラクションのためのプロンプトを定義する
  • AI コンテキスト用のリソースを公開する
  • OAuth または Sanctum で MCP サーバーを保護する
  • MCP サーバー、ツール、プロンプト、リソースをテストする

優先度別のルールカテゴリ

優先度カテゴリ影響度プレフィックス
1サーバーCRITICALserver-
2ツールHIGHtool-
3プロンプトとリソースMEDIUMprompt-, resource-
4認証HIGHauth-
5テストHIGHtest-

クイックリファレンス

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 をご覧ください。

コメント