Урок 02

Создание MCP-сервера

MCP-сервер — это класс-контейнер для tools, resources и prompts.

Генерация

php artisan make:mcp-server OrderServer

Регистрация

В routes/ai.php:

use App\Mcp\Servers\OrderServer;
use Laravel\Mcp\Facades\Mcp;

// Для HTTP-клиентов (ChatGPT, Claude)
Mcp::web('/mcp/orders', OrderServer::class);

// Для локальных CLI-агентов
Mcp::local('orders', OrderServer::class);

Mcp::web() — удалённые клиенты через HTTP POST. Mcp::local() — локальные через stdio.

Структура сервера

namespace App\Mcp\Servers;

use Laravel\Mcp\Server;
use Laravel\Mcp\Server\Attributes\Instructions;

#[Instructions('Этот сервер управляет заказами. Используй tools для поиска и создания.')]
class OrderServer extends Server
{
    protected array $tools = [
        // LookupOrder::class,
        // CreateOrder::class,
    ];

    protected array $resources = [
        // OrderResource::class,
    ];

    protected array $prompts = [
        // ReviewOrderPrompt::class,
    ];
}

Instructions

Атрибут #[Instructions] — системный промпт для AI-клиента. Объясняет, что умеет сервер.

Авторизация

Mcp::oauthRoutes();

Mcp::web('/mcp', Flightio::class)
    ->middleware('auth:api');

Laravel MCP поддерживает OAuth 2.1 через Passport и Sanctum.

Тестирование

MCP Inspector:

npx @modelcontextprotocol/inspector http://localhost/mcp/orders

Откроется веб-интерфейс для проверки tools, resources, prompts.

Итоги

  • make:mcp-server создаёт класс
  • Mcp::web() и Mcp::local()
  • #[Instructions] для описания
  • Middleware для авторизации
  • MCP Inspector для тестов