在 laravel 项目里用 mcp::local() 注册本地 mcp 服务,把只读工具加入服务类的 $tools 数组,再用 mcp:inspector 查看和调用工具。示例只返回固定文本,便于先验证注册链路。
安装 Laravel MCP 并生成本地类
在项目根目录执行。已有 routes/ai.php 时保留现有文件,直接添加注册语句。
composer require laravel/mcp php artisan vendor:publish --tag=ai-routes php artisan make:mcp-server CatalogServer php artisan make:mcp-tool CatalogStatusTool

按命令输出核对生成路径。默认类位于 app/Mcp/Servers 与 app/Mcp/Tools。
定义一个返回固定文本的只读工具
将以下代码放入 app/Mcp/Tools/CatalogStatusTool.php,方便区分工具运行失败与业务依赖失败。
<?php namespace App\Mcp\Tools;
use Laravel\Mcp\Request;
use Laravel\Mcp\Response;
use Laravel\Mcp\Server\Attributes\Description;
use Laravel\Mcp\Server\Tool;
#[Description('Returns the local catalog status.')]
final class CatalogStatusTool extends Tool
{
public function handle(Request $request): Response
{
return Response::text('catalog ready');
}
}

Laravel Cloud(cloud.laravel.com)。此技能用于处理所有 Laravel Cloud 请求,包括搜索和读取数据。只要任务涉及 Laravel Cloud,即使用此技能。
此示例无输入参数,也不写数据库。
注册工具并用 Inspector 发起调用
在生成的 CatalogServer 类中替换 tools 数组。再把本地服务注册到 routes/ai.php。
// CatalogServer 类内
protected array $tools = [
\App\Mcp\Tools\CatalogStatusTool::class,
];
// routes/ai.php 中
\Laravel\Mcp\Facades\Mcp::local(
'catalog',
\App\Mcp\Servers\CatalogServer::class,
);

本机准备 Node.js 和 npx 后,执行 php artisan mcp:inspector catalog。连接后列出工具,选择 CatalogStatusTool 对应的条目并调用,应返回 catalog ready。找不到工具时检查工具数组及命名空间。










