Laravel Artisan命令服务器

一个安全的Laravel Artisan命令执行服务器,通过MCP协议实现AI助手与本地Laravel应用的交互管理。

  • by entanglr
  • Python
  • 本地部署
  • 6 星标
  • 更新于
在 GitHub 查看 entanglr/laravel-artisan-mcp

使用说明

Laravel Artisan MCP服务器

一个模型上下文协议(MCP)服务器,可以通过Claude和其他MCP客户端安全执行Laravel Artisan命令。此服务器充当AI助手和您的 本地 Laravel应用程序,允许通过自然语言对话对Laravel项目进行受控管理。

特性

  • 访问包含Laravel项目的单个目录
  • 在您的系统上自动定位PHP
  • 仅执行列入白名单的Artisan命令
  • 查看所有可用的Artisan命令
  • 设计安全,具有强大的输入验证功能

例子

需求

  • Python 3.10或更高版本
  • 使用Artisan CLI的Laravel项目
  • PHP已安装并可在PATH中访问
  • MCP兼容客户端(如克劳德桌面)

安装

  1. 克隆此存储库:

    git clone https://github.com/diggy/laravel-artisan-mcp.git
    cd laravel-artisan-mcp
    
  2. 创建虚拟环境:

    uv init
    uv venv
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
    
  3. 安装依赖项:

    uv add "mcp[cli]"
    

配置

服务器需要以下环境变量:

  • ARTISAN_DIRECTORY:包含Artisan可执行文件的Laravel项目的绝对路径
  • WHITELISTED_COMMANDS:允许的Artisan命令的逗号分隔列表(例如。, route:list,cache:clear,make:controller 或在Laravel应用程序中注册的任何默认或自定义命令)

您可以通过多种方式提供这些变量:

  1. 直接在命令行中:

    ARTISAN_DIRECTORY="/absolute/path/to/your/laravel/project" WHITELISTED_COMMANDS="route:list,cache:clear,make:controller" uv run artisan_mcp_server.py
    
  2. 使用a .env 文件:

    ARTISAN_DIRECTORY=/absolute/path/to/your/laravel/project
    WHITELISTED_COMMANDS=route:list,cache:clear,make:controller
    
  3. 在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

一旦检查器开始运行:

  1. 打开web界面http://localhost:5173
  2. 浏览“资源”选项卡以查看可用资源
  3. 在“工具”选项卡下测试工具:
    • list_available_artisan_commands:显示Laravel项目中的所有白名单命令
    • run_artisan:执行特定命令(必须列入白名单)

克劳德集成

要将此服务器与Claude Desktop一起使用,请执行以下操作:

  1. 确保已安装Claude Desktop

  2. 编辑Claude Desktop配置文件:

    macOS:

    nano ~/Library/Application\ Support/Claude/claude_desktop_config.json
    

    视窗:

    notepad %APPDATA%\Claude\claude_desktop_config.json
    
  3. 添加以下配置(根据需要调整路径):

    {
      "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"
          }
        }
      }
    }
    
  4. 重新启动克劳德桌面

可用工具

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的帮助下制作的(他坚持添加这个不起眼的信用,同时承诺不会包括笑脸表情符号或过度热情)。