PhpStorm で Laravel Boost を使ってみる

いまや開発に AI は欠かせない存在になりつつありますが、Laravel に特化した MCP サーバとして、Laravel Boost があります。Laravel Boost を利用することで、AI アシスタントが Laravel プロジェクトの情報を取得しやすくなり、より適切な回答をしてくれるようになることが期待されます。

インストール

私の場合、Junie は使わず、AI Assistant のみなので、公式の手順を省略しています。

composer require laravel/boost --dev

のみで OK。

PHPStorm の設定

PHPStorm の [ファイル] → [設定] から、[ツール] → [AI Assistant] → [Model Context Protocol (MCP)] に移動し、+ を押して、新規サーバを追加する画面を出します。

私の場合、Docker を使って開発しているので、JSON 構成のところは、以下のようになります(compose.yaml をプロジェクトルートに置いてある前提)。

{
    "mcpServers": {
        "laravel-boost": {
            "command": "docker",
            "args": [
                "compose",
                "exec",
                "-T",
                "app",
                "php",
                "artisan",
                "boost:mcp"
            ]
        }
    }
}

args の中の app はサービス名なので、環境に合わせて適宜修正してください。要するに

docker compose exec -T app php artisan boost:mcp

を実行したいわけです。

次に、作業ディレクトリに、現在のプロジェクトのルートディレクトリを指定します。私の場合、プロジェクトファイルを WSL 上に置いているので、/home/foo/projects/project-a などと設定します。作業ディレクトリを設定することで、JSON 構成部分を使いまわせるようになります。

サーバーレベルは、プロジェクトを選択します。

これで設定は完了です。

AI Assistant でも Laravel Boost をより活用する

上記の設定だけでも、必要に応じて MCP サーバに問い合わせて回答してくれるのですが、Junie や Claude のようにガイドラインやスキルを使うことができません。PhpStorm の場合、php artisan boost:install を実行すると、Junie の設定が有効になるので、そこで作成されたガイドラインやスキルを .aiassistant/rules 以下にコピーすることで使うこともできるのですが、php artisan boost:update に対応できないので、AI Assistant 用の設定を追加します。

app/Boost/Agents/JetBrainsAiAssistant.php を作成し、以下のように記述します。

<?php

namespace App\Boost\Agents;

use Laravel\Boost\Contracts\SupportsGuidelines;
use Laravel\Boost\Contracts\SupportsMcp;
use Laravel\Boost\Contracts\SupportsSkills;
use Laravel\Boost\Install\Agents\Agent;
use Laravel\Boost\Install\Enums\Platform;

class JetBrainsAiAssistant extends Agent implements SupportsGuidelines, SupportsMcp, SupportsSkills
{

    public function name(): string
    {
        return 'jetbrains_ai_assistant';
    }

    public function displayName(): string
    {
        return 'JetBrains AI Assistant';
    }

    public function systemDetectionConfig(Platform $platform): array
    {
        return match ($platform) {
            Platform::Darwin => [
                'paths' => ['/Applications/PhpStorm.app'],
            ],
            Platform::Linux => [
                'paths' => [
                    '/opt/phpstorm',
                    '/opt/PhpStorm*',
                    '/usr/local/bin/phpstorm',
                    '~/.local/share/JetBrains/Toolbox/apps/PhpStorm/ch-*',
                ],
            ],
            Platform::Windows => [
                'paths' => [
                    '%ProgramFiles%\\JetBrains\\PhpStorm*',
                    '%LOCALAPPDATA%\\JetBrains\\Toolbox\\apps\\PhpStorm\\ch-*',
                    '%LOCALAPPDATA%\\Programs\\PhpStorm',
                ],
            ],
        };
    }

    public function projectDetectionConfig(): array
    {
        return [
            'paths' => ['.idea', '.ai', '.aiassistant'],
        ];
    }

    public function mcpConfigPath(): string
    {
        return config('boost.agents.jetbrains_ai_assistant.mcp_path', '.ai/mcp/mcp.json');
    }

    public function guidelinesPath(): string
    {
        return config('boost.agents.jetbrains_ai_assistant.guidelines_path', '.aiassistant/rules/boost.md');
    }

    public function skillsPath(): string
    {
        return config('boost.agents.jetbrains_ai_assistant.skills_path', '.aiassistant/rules/skills');
    }
}

さらに、app/Providers/AppServiceProvider.php に以下を追記することで、php artisan boost:install 実行時に jetbrains_ai_assistant を選択できるようになります。

use App\Boost\Agents\JetBrainsAiAssistant;
use Laravel\Boost\Boost;

public function boot(): void
{
    Boost::registerAgent('jetbrains_ai_assistant', JetBrainsAiAssistant::class);
}