はじめに
Laravel公式から登場した Laravel Boost を、普段使っている Claude Code と組み合わせて試してみました。
筆者の環境は以下の通りです。
- Laravel 13 / PHP 8.4 のアプリを Laravel Sail(Dockerベースの開発環境)で稼働中
- Laravel Boost は v2.4.10
Laravel Boostとは
Laravel Boostは、AIがLaravelプロジェクトをより正確に理解し、高品質なコードを書けるようにするLaravel公式のパッケージです。
通常のAIはソースコードを読み取ることはできますが、
- 実際のDBスキーマ
- インストール済みパッケージの正確なバージョン
- Laravelの推奨実装
といった情報までは十分に把握できません。
Laravel Boostは、こうした情報をAIへ提供することで、「推測して書く」のではなく、「実際のプロジェクトを理解したうえで書く」ことを目指しています。
そのためにBoostは、大きく3つの仕組みを提供します。
- MCPサーバーとTools — DB参照やTinker実行などをAIから利用できるようにし、稼働中のLaravelアプリへ直接問い合わせられるようにします。
- AIガイドライン(
CLAUDE.md) — Laravelの作法やプロジェクトのバージョン情報などをまとめた、このプロジェクト専用のガイドラインです。 - Agent Skills — InertiaやTailwindなど技術スタックごとの実装ノウハウを、必要なタイミングだけ読み込むモジュールです。
これらにより、AIは次の2種類の情報を利用できるようになります。
動的な情報(MCP Tools)
- 稼働中のアプリの状態
- プロジェクトのバージョンに対応したドキュメント
静的な知識(CLAUDE.md・Skills)
- Laravelのベストプラクティス
- プロジェクト固有の環境情報
導入してみる
既存のSailプロジェクトに、Boostをdev依存として追加します。Sail環境ではコマンドに
sail
を付けてコンテナ内で実行します。
| 1 2 | ./vendor/bin/sail composer require laravel/boost --dev ./vendor/bin/sail php artisan boost:install |
boost:install
を実行すると、使用中のAI(今回はClaude Code)を自動検出し、どのガイドラインやスキルを入れるかを尋ねてきます。基本的には推奨設定のまま進めて問題ありません。
boost:install で何が作られるのか
インストールが完了すると、プロジェクトルートにいくつかのファイルが生成されます。ここを理解しておくと、Boostが「どうやってAIを賢くしているか」が見えてきます。
| ファイル | 役割 |
|---|---|
.mcp.json
| MCPサーバーの起動設定 |
CLAUDE.md
| AIが常に参照する基礎ガイドライン |
boost.json
| Boostの構成(有効化したスキル等) |
.claude/skills/
| 技術スタックごとの詳細ガイドライン(スキル) |
.mcp.json
— Sailを自動で認識してくれる
MCPサーバーの起動方法を定義するファイルです。
command
が
php
ではなく
vendor/bin/sail
になっているのは、コマンドがSail上(Docker上)で行われる前提になっている為です。Sail未使用時は
php
となっているようです。
| 1 2 3 4 5 6 7 8 | { "mcpServers": { "laravel-boost": { "command": "vendor/bin/sail", "args": ["artisan", "boost:mcp"] } } } |
CLAUDE.md
— このプロジェクト用に合成されるガイドライン
Boostは内部に、Laravelエコシステム向けのAIガイドラインを Bladeファイル として保持しています。
boost:install
実行時に、プロジェクトへインストールされているパッケージを検出し、必要なガイドラインだけを抽出・合成して
CLAUDE.md
を生成します。
CLAUDE.md
に書かれる内容は、大きく3種類に分けられます。
1つ目は、このアプリの正確なバージョン情報(Foundational Context)。
| 1 2 3 4 5 | - php - 8.4 - laravel/framework (LARAVEL) - v13 - inertiajs/inertia-laravel (INERTIA_LARAVEL) - v2 - @inertiajs/react (INERTIA_REACT) - v2 ... (以下、実際のバージョンが続く) |
これにより、AIは「学習データの分布」ではなく「このアプリの実際のバージョン」を前提にコードを書きます。
2つ目は、Laravelらしくコードを書くための基本ルール。たとえば——
- メソッドの引数と戻り値には型を付ける
- ファイル生成は
make:コマンドを使う- 他ページへのリンクは名前付きルートと
route()で生成する
といった、Laravelの流儀に沿ってAIが書くための作法です。
3つ目は、MCP Toolsやスキルをどう使うかの指示です。例えば、
- マイグレーションやモデルを書く前に
database-schemaを確認する - コードを変更する前に
search-docsを利用する - 関連するドメインを扱う場合は対応するスキルを起動する
といった指示が書かれています。
つまりAIは、必要なタイミングでMCP Toolsやスキルを自律的に利用するよう促されます。
.claude/skills/
— 技術スタックに合わせて入るスキル
スキルも同じ考え方で、
composer.json
のパッケージ構成から必要なものが自動的に選ばれて 配置されます。今回のリポジトリでは、次の3つが入りました。
-
laravel-best-practices— Laravel本体のベストプラクティス(Eloquent、マイグレーション、バリデーション、パフォーマンスなど) -
inertia-react-development— Inertia(React)でのページ・フォーム・ナビゲーション実装 -
tailwindcss-development— Tailwind CSS でのレイアウトやコンポーネント実装
Laravel本体・Inertia(React)・Tailwindという、このプロジェクトの技術スタックに対応したスキルが自動で導入されました。
Boostが提供するMCP Tools
Boostは、Laravel向けのMCP Toolsを提供しています。
MCP(Model Context Protocol)のToolsは、AIが外部システムへ問い合わせるための仕組みです。
CLAUDE.md
やSkillsが「知識」を与えるのに対し、MCP Toolsは「実際のアプリの状態」を取得します。
| MCP Tool | できること |
|---|---|
application-info
| PHP/Laravelバージョン・DBエンジン・全パッケージのバージョン一覧 |
database-schema
| テーブル定義・カラム・インデックス・外部キー |
database-query
| 読み取り専用SQLの実行 |
database-connections
| 設定済みDB接続の一覧 |
tinker
| アプリのコンテキストで任意PHPを実行 |
search-docs
| バージョン対応ドキュメントの検索 |
get-absolute-url
| 正しいスキーム/ドメイン/ポートでのURL生成 |
read-log-entries
| アプリログの直近エントリ |
browser-logs
| ブラウザ(JS)ログの参照 |
last-error
| 直近のバックエンド例外の詳細 |
実際に動かしてみる
検証用のテーブルを用意し、テーブルのレコードを集計して返すAPIを追加する様に依頼してみました。BoostありのClaude Codeは、セッションログを見ると以下の様に動いていました。
-
database-schemaで、稼働中のMySQLにスキーマを直接問い合わせ -
search-docsでバージョン対応ドキュメントを確認 - enum と既存コントローラの規約をチェック
-
make:controller --testでコントローラとテストを生成 - ルートとコントローラを実装
- テストを生成して実行(2 passed)
- Pint で自動整形
CLAUDE.md
の指示通り
database-schema
で稼働中のDBに直接問い合わせています。さらに、明確に指示していないにもかかわらず、テストの生成・実行や Pint での整形まで行っています。(
CLAUDE.md
にある「変更は必ずテストする」「Pint で整形する」の為)。
その他の特徴的な仕組み
今回の検証では出番がなかったものの、調べていて特徴的だと感じた仕組みを挙げておきます。
- バージョン固定のドキュメント検索(
search-docs) — プロジェクトに実際に入っているパッケージのバージョンに合わせてドキュメントを返します。プロジェクトで実際に利用しているバージョンのドキュメントを参照するため、古いAPIや存在しないAPIを提案するリスクを抑えられます。 - 更新への追従(
boost:update) —boost.jsonをもとにガイドラインやスキルを最新版へ同期できます。
さいごに
Laravel Boostは、AIモデルそのものを強化するものではなく、AIが参照できる情報を増やすことでコード生成の精度を高める仕組みです。特に既存プロジェクトでは、DBスキーマや利用中のパッケージ構成をAIが正確に把握できるメリットは大きいと思うので、積極的に利用してみたいと思いました。