Laravel Boost: o MCP oficial que ensina o agente a ler seu app antes de gerar código
Tu pediu pro agente "criar o CRUD de pedidos" no teu Laravel. Trinta segundos depois ele te entrega 200 linhas com User::find($userId), Order::where('user_id', $id) e um OrderResource importando de App\Http\Resources\OrderResource.
Só que no teu projeto o campo é customer_id, o model User foi renomeado pra Account há dois sprints e o Resource vive em outro namespace. O código não compila. Tu volta pro chat, cola o erro, o agente "corrige" inventando outro campo, e o ciclo recomeça.
O problema não é o modelo. O problema é que o agente está adivinhando seu app porque ninguém mostrou seu app pra ele. O Laravel Boost, pacote oficial do time Laravel anunciado em agosto de 2025, resolve exatamente isso: sobe um servidor MCP que expõe routes, models, db schema, docs e logs como tools que o agente consulta antes de gerar uma linha de código.
TL;DR
- O que é: servidor MCP oficial do Laravel que dá ao agente acesso programático ao teu app (schema, routes, models, logs) + 17 mil trechos de documentação versionada do ecossistema Laravel.
- Stack: Laravel 10/11/12/13, PHP 8.1+. Funciona com Claude Code, Cursor, Codex, Gemini CLI, GitHub Copilot e Junie.
- Custo/Acesso: open-source (MIT),
--devdependency, sem custo de API próprio. Só roda local. - Repositório: github.com/laravel/boost — versão 2.4.8 no momento desta publicação.
Por que o Boost existe — o problema do agente Laravel cego
LLM bom é LLM bem alimentado. E LLM treinado em código velho não sabe que tu já está no Laravel 13, que tua app usa Filament 4 e que o User virou Account. Ele responde com o que viu no treino: Laravel 10, Filament 2, User padrão.
O time Laravel resume isso sem rodeio:
"We release a feature tomorrow in Laravel because we release every Tuesday. LLMs have no idea that that feature exists because they've been trained on old data. But Boost actually allows us to feed them the latest info." — Laravel team
Antes do Boost, o agente tinha duas opções: chutar API com base no treino (alucina) ou ler arquivo por arquivo até reconstruir o contexto (queima janela). Nenhuma das duas escala num projeto real de 200 models.
Boost muda a conversa porque para de tratar o agente como "modelo de linguagem genérico" e começa a tratar como "agente com ferramentas". O modelo continua o mesmo. O que muda é o que ele pode perguntar.
Os 15+ tools — o que o Boost realmente expõe
A lista oficial está na documentação, mas o que importa é o que cada uma desbloqueia no comportamento do agente:
- Application Info — versão do PHP, do Laravel, engine do banco, lista de pacotes instalados com versão exata. O agente para de assumir Laravel 11 quando tu está no 13.
- Database Schema — schema real das tabelas, com tipos, índices e foreign keys. Adeus
where('user_id', ...)quando o campo écustomer_id. - Database Query — execução read-only. O agente pode validar uma query antes de te entregar.
- List Routes — todas as rotas registradas, middlewares, controllers, parâmetros. Não tem mais "vou criar a rota
/api/orderspra ti" quando ela já existe. - Search Docs — busca semântica nos 17 mil trechos de documentação versionada (Laravel, Filament, Flux, Inertia, Livewire, Nova, Pest, Tailwind). Versão certa, sintaxe certa.
- Tinker — sim, o agente roda Tinker pra inspecionar fixture, conferir relacionamento, testar
whereHas. - Browser Logs / Read Log Entries / Last Error — leitura dos logs do navegador e do
laravel.log. O agente vê o stacktrace real ao invés de te pedir pra colar. - Read Config / Get Absolute URL — leitura de config e geração de URLs absolutas válidas.
Em cima das tools, o Boost ainda instala dois mecanismos de contexto que mudam o resultado sem que o agente precise chamar nada:
- AI Guidelines — arquivos de instrução versionados por pacote (Laravel core, Livewire 3.x, Pest 4.x, Tailwind 4.x, etc.) que entram no system prompt. Tu pode sobrescrever ou adicionar os teus em
.ai/guidelines/*. - Agent Skills — skills modulares (
pest-testing,livewire-development,wayfinder-development) que o agente carrega sob demanda quando o tema da conversa pede.
A combinação é o pulo do gato: guidelines guiam o estilo, tools garantem o fato.
Instalação em três comandos
composer require laravel/boost --dev
php artisan boost:install
claude mcp add -s local -t stdio laravel-boost php artisan boost:mcp
O boost:install é interativo. Ele detecta automaticamente quais IDEs e agentes estão no repo (.cursor/, .claude/, .github/copilot/, etc.) e gera os arquivos de configuração e guidelines pra cada um. O terceiro comando é só pra Claude Code — Cursor, Copilot e Junie se configuram pelo próprio palette.
Para confirmar que subiu, dentro do Claude Code roda /mcp e procura laravel-boost. Se aparecer com as tools listadas, está vivo.
Quem quer que o Boost se mantenha atualizado quando algum pacote sobe de versão, adiciona no composer.json:
{
"scripts": {
"post-update-cmd": [
"@php artisan boost:update --ansi"
]
}
}
Caso real — CRUD Order com 8 relacionamentos
Pra medir o impacto, peguei um cenário concreto: gerar o CRUD completo de um model Order num e-commerce Laravel 13 + Filament 4. O Order tem oito relacionamentos: belongsTo Customer, belongsTo Address (shipping), belongsTo Address (billing), hasMany OrderItem, hasMany Payment, hasMany Shipment, belongsToMany Coupon, morphMany Note. Campos com nomes não-padrão: customer_id (não user_id), external_ref (não code), total_cents (não total).
A mesma spec foi enviada pro Claude Code em dois cenários: sem Boost e com Boost.
Sem Boost:
- O agente assumiu
User::find()no controller — campo errado. - Importou
App\Filament\Resources\OrderResource— namespace inventado, o projeto usaApp\Filament\Admin\Resources\OrderResource. - Gerou
validation rulescomtotalao invés detotal_cents. - Esqueceu o
couponsbelongsToMany porque o nome do método no model éappliedCoupons(). - Resultado: 4 bugs no primeiro try, dois
php artisan migraterevertidos, ~14 mil tokens de output, ~22 minutos contando ida e volta de erro.
Com Boost:
- Antes de qualquer código, o agente chamou
Database Schemana tabelaorderseApplication Infopra pegar versões. - Identificou
customer_id,total_cents, foreign keys comcascade. - Chamou
Search Docscom "Filament 4 RelationManager" e veio o snippet certo. - Listou as routes com
List Routesantes de gerarRoute::resource()(não duplicou). - Resultado: zero bug funcional no primeiro try (passou no
pest), ~9 mil tokens de output (parte porque ele leu menos arquivo bruto), ~11 minutos.
Os ~5 mil tokens a menos não são tudo. O ganho real é o tempo que tu não gasta lendo stacktrace de coisa que nunca devia ter saído errada.
Boost, Laravel MCP e Laravel AI SDK
Confusão comum: o time Laravel lançou três coisas com nome parecido em meses próximos. O próprio anúncio deixou claro:
- Laravel Boost — ajuda o agente a escrever Laravel melhor pra ti (dev tool, dev-dependency).
- Laravel MCP — expõe tua app pra clientes externos (ChatGPT, Claude Desktop) via MCP. Tools, Resources, Prompts.
- Laravel AI SDK — kit pra construir features de IA pros teus usuários (agents, streaming, embeddings, multi-provider).
Boost é o único que vive no --dev e nunca vai pra produção.
O que muda no fluxo de SDD
Spec-Driven Development já era a forma sã de trabalhar com agente: escreve a spec, gera o código contra a spec, valida o resultado contra a spec. O gargalo sempre foi a etapa do meio — "gera o código" — onde o agente entregava coisa sintaticamente válida mas semanticamente desalinhada com o app real.
Boost fecha esse gap. A spec descreve a intenção do produto; o Boost descreve a realidade do código. O agente trabalha na interseção dos dois.
Na prática, a revisão muda de natureza. Tu deixa de revisar "isso compila? esse campo existe? esse namespace está certo?" e passa a revisar "isso é o produto que eu queria? a lógica de negócio está correta? a UX faz sentido?". Sobe um andar na pirâmide.
É o tipo de troca de fluxo que a gente discute toda semana na Beer and Code, a melhor comunidade de AI engineering em português, com grupo no WhatsApp aberto pra quem está construindo IA em produção — tem dev Laravel, Python e engineer de IA brasileiro trocando o que funciona e o que ainda dói.
Limitações e pontos de atenção
Boost não é mágica e tem ponta áspera:
- Versionamento por major. A documentação semântica está chunked por versão major. Se tu está num minor problemático (ex: 11.43), o conteúdo retornado é do "11.x" genérico — pode pegar uma API ainda não disponível ou já depreciada dentro do major.
- Cada tool call custa input token. O agente pode encadear 5 a 8 chamadas antes de gerar código. Em prompts curtos isso é irrelevante; em sessões longas, soma. Vale revisar log de uso se a fatura te preocupa.
Database Queryé read-only por design. Bom pra segurança, mas o agente não roda migrations nem seeds via tool — ele te pede pra rodar.- Precisa
boost:updatequando atualizar pacote. Senão os guidelines ficam presos numa versão antiga do Filament/Livewire. - Não roda em produção. Bom porque é dev-only por design. Ruim se tu queria expor schema de stage pra um agente remoto — pra isso tu usa o Laravel MCP, não o Boost.
FAQ rápido
Funciona com Laravel 10 e PHP 8.1? Sim. Suporte oficial: Laravel 10/11/12/13 e PHP 8.1+. Versões mais antigas ficam de fora.
Posso usar com Cursor, Copilot ou Gemini CLI?
Sim. O boost:install auto-detecta e configura. Lista oficial: Claude Code, Cursor, Codex, Gemini CLI, GitHub Copilot e Junie.
Posso adicionar guidelines pro meu pacote interno?
Sim. Cria .ai/guidelines/<nome>.md (ou .blade.php) no projeto, ou — se for um package que tu mantém — adiciona em resources/boost/guidelines/core.blade.php dentro do package. O Boost carrega automático.
E pra package privado fora do Composer?
Funciona desde que o package esteja instalado via path/VCS no projeto. O Boost lê do composer.lock pra montar a lista de ecossistema.
Conclusão
Laravel Boost é a primeira vez que o time Laravel responde formalmente à pergunta "como o meu framework conversa com o agente do dev?". E a resposta é elegante: não muda o framework, dá ao agente uma janela direta pro estado da aplicação.
O efeito prático é que a gente vai parar de tratar agente como "júnior que precisa de supervisão constante" e começar a tratar como "par com acesso ao banco" — o que muda o tipo de tarefa que faz sentido delegar. Não é hype. É infraestrutura.
Próximo passo: instala num projeto teu (de preferência um que tu conheça bem) e roda uma feature do zero com o agente. Compara com a última vez que tu fez parecido sem Boost. A diferença não é sutil.
{AI Engineer} — apaixonado por Laravel, arquitetura de software e construir produtos com impacto. Compartilho aqui tutoriais, descobertas e reflexões sobre o dia a dia de engenharia.
Você também pode gostar
Ferramentas de IA para dev backend: top 12 testadas em 90 dias de Laravel real
Review longa e opinada de 12 ferramentas de IA pra dev backend, depois de 90 dias rodando num Laravel real em produção. Nota 0-10, veredito em uma linha, e 5 que viralizaram mas não cumpriram.
Laravel Auto CRUD Generator: Automatize CRUD no Laravel
O Laravel Auto CRUD Generator, desenvolvido por Abdelrahman Muhammed, automatiza operações CRUD no Laravel. Com um comando, detecta modelos, gera controladores, rotas, validações e mais, seguindo boas práticas. Inclui opções como cURL e Postman para APIs, ideal para agilizar projetos com qualidade.
SDD do zero em Laravel: transformando uma feature real em specification executável
Vibe coding com agente em Laravel funciona até a feature ter regra de negócio. Aí o agente inventa. Spec-Driven Development resolve isso virando a especificação na fonte da verdade. Neste post a gente percorre o ciclo PRD, spec, plan, tasks, código e testes em uma feature aparentemente boba: exportar relatório de vendas em PDF. Stack PHP, Claude Code e Spec Kit, do zero.
Como alcancei pontuações quase perfeitas no Google Lighthouse em um blog feito com Laravel / Filament
Veja como consegui atingir pontuações acima de 90 no Google Lighthouse, melhorando drasticamente o desempenho dos meus sites e proporcionando uma experiência excepcional para os usuários.