Resources: данные по URI
Resources — данные, которые AI-клиент может прочитать по URI.
Создание
php artisan make:mcp-resource OrderResource
Базовая структура
namespace App\Mcp\Resources;
use Laravel\Mcp\Resource;
use Laravel\Mcp\Resource\Response;
class OrderResource extends Resource
{
protected string $uri = 'orders://{id}';
protected string $mimeType = 'application/json';
public function handle(Request $request): Response
{
$order = Order::find($request->get('id'));
return Response::json([
'id' => $order->id,
'status' => $order->status,
'total' => $order->total,
]);
}
}
URI-шаблоны
protected string $uri = 'orders://{id}';
protected string $uri = 'users://{userId}/orders';
protected string $uri = 'config://app';
Регистрация
protected array $resources = [
OrderResource::class,
UserResource::class,
];
Resource Templates
Динамические ресурсы:
php artisan make:mcp-resource-template OrderTemplate
Ответы
return Response::text('Текст');
return Response::json(['data' => $value]);
return Response::html('<div>...</div>');
Разница с Tools
- Tools — действия, агент вызывает
- Resources — данные, пользователь выбирает для контекста
Resources больше для пользователя: «выбери этот документ для анализа».
Итоги
make:mcp-resourceсоздаёт$uriи$mimeTypehandle()возвращает данные- URI-шаблоны
- Для контекста, не для действий