Laravel Artisan MCP Server について
Laravel Artisan MCP Serverは、ClaudeなどのMCPクライアントからローカルのLaravelプロジェクトでArtisanコマンドを実行できるようにします。指定ディレクトリにアクセスを限定し、許可リストと入力検証で実行を制御します。
主な機能
- 01指定したLaravelプロジェクトディレクトリへのアクセス
- 02PHPの自動検出
- 03許可リスト内のArtisanコマンドのみ実行
- 04利用可能なコマンドの一覧表示
- 05入力検証とディレクトリ分離
活用シーン
- 01Laravelプロジェクトの利用可能なコマンドを確認
- 02許可されたルートやキャッシュ関連コマンドの実行
- 03開発・テスト時のLaravelプロジェクト管理
MCP 対応
MCPサーバーは、互換クライアント向けにArtisanコマンド一覧と許可されたコマンドの実行ツールを公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Laravel Artisan MCP サーバー
Claude などの MCP クライアントを通じて、Laravel Artisan コマンドを安全に実行できる Model Context Protocol(MCP)サーバーです。このサーバーは、AI アシスタントとローカルの Laravel アプリケーションをつなぎ、自然言語での会話を通じて Laravel プロジェクトを制御しながら管理できるようにします。
機能
- Laravel プロジェクトを含む単一のディレクトリにアクセスします
- システム上の PHP を自動的に検出します
- 許可リストに登録された Artisan コマンドのみを実行します
- 利用可能な Artisan コマンドをすべて表示します
- 強固な入力検証を備えた、安全性を重視した設計です
使用例

必要条件
- Python 3.10 以降
- Artisan CLI を備えた Laravel プロジェクト
- インストール済みで、PATH からアクセス可能な PHP
- MCP 対応クライアント(Claude Desktop など)
インストール
-
このリポジトリをクローンします:
git clone https://github.com/diggy/laravel-artisan-mcp.git cd laravel-artisan-mcp -
仮想環境を作成します:
uv init uv venv source .venv/bin/activate # On Windows: .venv\Scripts\activate -
依存関係をインストールします:
uv add "mcp[cli]"
設定
サーバーには、以下の環境変数が必要です:
ARTISAN_DIRECTORY:Artisan 実行ファイルを含む Laravel プロジェクトの絶対パスWHITELISTED_COMMANDS:許可する Artisan コマンドをカンマ区切りで指定したリスト(例:route:list,cache:clear,make:controller、または Laravel アプリケーションに登録されたデフォルトのコマンドやカスタムコマンド)
これらの変数は、次のいずれかの方法で指定できます:
-
コマンドラインに直接指定する:
ARTISAN_DIRECTORY="/absolute/path/to/your/laravel/project" WHITELISTED_COMMANDS="route:list,cache:clear,make:controller" uv run artisan_mcp_server.py -
.envファイルを使用する:ARTISAN_DIRECTORY=/absolute/path/to/your/laravel/project WHITELISTED_COMMANDS=route:list,cache:clear,make:controller -
Claude Desktop の設定に記述する(下記の「Claude との統合」を参照)
MCP Inspector でのテスト
MCP Inspector を使用すると、Claude に統合する前に、グラフィカルインターフェースでサーバーをテストできます:
# Run with direct environment variables
ARTISAN_DIRECTORY="/absolute/path/to/your/laravel/project" WHITELISTED_COMMANDS="route:list,cache:clear,make:controller" uv run mcp dev artisan_mcp_server.py
# Or using an env file
uv run mcp dev artisan_mcp_server.py --env-file .env
Inspector の起動後:
- http://localhost:5173 でウェブインターフェースを開きます
- 「Resources」タブで利用可能なリソースを確認します
- 「Tools」タブでツールをテストします:
list_available_artisan_commands:Laravel プロジェクト内で許可リストに登録されたコマンドをすべて表示しますrun_artisan:指定したコマンドを実行します(許可リストへの登録が必要です)
Claude との統合
このサーバーを Claude Desktop で使用するには:
-
Claude Desktop がインストールされていることを確認します
-
Claude Desktop の設定ファイルを編集します:
macOS:
nano ~/Library/Application\ Support/Claude/claude_desktop_config.jsonWindows:
notepad %APPDATA%\Claude\claude_desktop_config.json -
以下の設定を追加します(必要に応じてパスを調整してください):
{ "mcpServers": { "laravel-artisan": { "command": "uv", "args": [ "--directory", "/absolute/path/to/laravel-artisan-mcp", "run", "artisan_mcp_server.py" ], "env": { "ARTISAN_DIRECTORY": "/absolute/path/to/your/laravel/project", "WHITELISTED_COMMANDS": "route:list,cache:clear,make:controller" } } } } -
Claude Desktop を再起動します
利用可能なツール
run_artisan
許可リストに登録された Artisan コマンドを実行します。
パラメーター:
command:実行する Artisan コマンド(例:'cache:clear')
Claude での使用例: 「route:list コマンドを実行して、Laravel アプリの利用可能なルートをすべて表示してください。」
list_available_artisan_commands
Laravel アプリケーションで利用可能な、許可リストに登録された Artisan コマンドをすべて表示します。
Claude での使用例: 「利用可能な Artisan コマンドをすべて表示してください。」
セキュリティに関する考慮事項
このサーバーには、いくつかのセキュリティ対策が実装されています(Claude によると):
- ディレクトリの分離:明示的に設定された Laravel ディレクトリにのみアクセスします
- コマンドの許可リスト:明示的に許可されたコマンドのみを実行します
- 入力検証:実行前にすべての入力を検証します
- エラー処理:機密情報の漏えいを防ぎます
トラブルシューティング
「ARTISAN_DIRECTORY must be provided in configuration」
サーバーが Laravel プロジェクトへのパスを見つけられません。次の点を確認してください:
- 環境変数が正しく設定されている
- ディレクトリが存在し、アクセス可能である
「Artisan not found at: /path/to/artisan」
指定されたディレクトリに Artisan 実行ファイルがありません。次の点を確認してください:
- パスが有効な Laravel プロジェクトディレクトリを指している
- Artisan ファイルが存在し、実行権限がある
「PHP executable not found」
サーバーが PATH から PHP を見つけられません。次の点を確認してください:
- PHP がシステムにインストールされている
- PHP 実行ファイルがシステムの PATH に含まれている
免責事項
この Laravel Artisan MCP Server は、いかなる種類の保証も伴わず、現状のまま提供されます。このソフトウェアを使用することで、その動作に伴うすべてのリスクを引き受けるものとします。このサーバーは Laravel 環境内でコマンドを実行する権限を持つため、アプリケーションのデータや機能に影響を及ぼす可能性があります。このツールは、開発環境またはテスト環境でのみ使用することを強く推奨します。本番環境の Laravel アプリケーションでこのサーバーを使用するのは、セキュリティ上の影響を十分に理解し、適切な保護策を講じている場合に限ってください。このインターフェースを通じて AI アシスタントが Artisan コマンドを実行できるようにする前に、Laravel プロジェクトの適切なバックアップを必ず保持してください。このソフトウェアの作者および貢献者は、このツールの使用または誤用によって生じる可能性のある損害、データ損失、セキュリティ侵害について、一切の責任を負いません。適切なコマンドのホワイトリストとアクセス制御を設定する責任は、すべて利用者にあります。このソフトウェアは正式なセキュリティ監査を受けておらず、実験的なものとして扱う必要があります。自己責任でご使用ください。
ライセンス
このプロジェクトは MIT License の下でライセンスされています。詳細については LICENSE ファイルをご覧ください。
作者
この MCP サーバーは Claude(Anthropic の AI アシスタント)の支援を受けて作成されました(Claude は、顔文字や過度な熱意を含めないと約束しつつ、このささやかなクレジットを追加するよう主張しました)。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。