Laravel Artisan MCP服务器
一个模型上下文协议(MCP)服务器,可以通过Claude和其他MCP客户端安全执行Laravel Artisan命令。此服务器充当AI助手和您的 本地 Laravel应用程序,允许通过自然语言对话对Laravel项目进行受控管理。
特性
- 访问包含Laravel项目的单个目录
- 在您的系统上自动定位PHP
- 仅执行列入白名单的Artisan命令
- 查看所有可用的Artisan命令
- 设计安全,具有强大的输入验证功能
例子

需求
- Python 3.10或更高版本
- 使用Artisan CLI的Laravel项目
- PHP已安装并可在PATH中访问
- MCP兼容客户端(如克劳德桌面)
安装
- 克隆此存储库:
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- 使用a
.env文件:
ARTISAN_DIRECTORY=/absolute/path/to/your/laravel/project
WHITELISTED_COMMANDS=route:list,cache:clear,make:controller- 在Claude桌面配置中(参见下面关于Claude集成的部分)
MCP检验员测试
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一旦检查器开始运行:
- 打开web界面http://localhost:5173
- 浏览“资源”选项卡以查看可用资源
- 在“工具”选项卡下测试工具:
- list_available_artisan_commands:显示Laravel项目中的所有白名单命令 - run_artisan:执行特定命令(必须列入白名单)
克劳德集成
要将此服务器与Claude Desktop一起使用,请执行以下操作:
- 确保已安装Claude Desktop
- 编辑Claude Desktop配置文件:
macOS:
nano ~/Library/Application\ Support/Claude/claude_desktop_config.json视窗:
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"
}
}
}
}- 重新启动克劳德桌面
可用工具
run_artisan
执行列入白名单的Artisan命令。
参数:
command:要运行的Artisan命令(例如,“cache:clear”)
Claude中的示例用法: “运行route:list命令显示Laravel应用程序中的所有可用路由。”
list_available_artisan_commands
显示Laravel应用程序中所有可用的白名单Artisan命令。
Claude中的示例用法: “显示所有可用的Artisan命令。”
安全考虑
该服务器实施了多种安全措施(据克劳德介绍):
- 目录隔离:只访问显式配置的Laravel目录
- 命令白名单:只执行特别允许的命令
- 输入验证:执行前验证所有输入
- 错误处理:防止敏感信息泄露
故障排除
“配置中必须提供ARTISAN_DIRECTORY”
服务器找不到Laravel项目的路径。检查:
- 环境变量设置正确
- 目录存在并且可以访问
“在/path/to/artist上找不到工匠”
指定的目录不包含Artisan可执行文件。确认:
- 路径指向一个有效的Laravel项目目录
- Artisan文件存在并且具有可执行权限
“找不到PHP可执行文件”
服务器在您的PATH中找不到PHP。确保:
- PHP已安装在您的系统上
- PHP可执行文件位于您的系统PATH中
免责声明
此Laravel Artisan MCP服务器按原样提供,不提供任何形式的保证或担保。使用此软件,您将承担与其操作相关的所有风险。服务器可以在Laravel环境中执行命令,这可能会影响您的应用程序数据和功能。我们强烈建议仅在开发或测试环境中使用此工具。只有当你完全理解安全问题并实施了适当的保护措施时,才能将此服务器与Laravel生产应用程序一起使用。在允许AI助手通过此接口执行Artisan命令之前,始终对Laravel项目进行适当的备份。本软件的作者和贡献者不对因使用或误用本工具而导致的任何损害、数据丢失或安全漏洞负责。您全权负责配置适当的命令白名单和访问控制。该软件尚未经过正式的安全审计,应被视为实验性软件。使用风险自负。
许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
作者
这个MCP服务器是在Anthropic的人工智能助理Claude的帮助下制作的(他坚持添加这个不起眼的信用,同时承诺不会包括笑脸表情符号或过度热情)。
