Laravel MCP Server 使用说明
项目简介
Laravel MCP Server 是一个基于 Laravel 框架构建的 Model Context Protocol (MCP) 服务器,旨在为大型语言模型(LLM)客户端提供标准化的上下文信息和功能访问能力。它允许开发者轻松地将 Laravel 应用程序的数据和功能暴露给支持 MCP 协议的 LLM 应用,例如 Claude Desktop。
主要功能点
- 资源管理 (Resources):
- 支持通过 Eloquent 模型轻松暴露数据库数据作为资源。
- 允许使用内存资源提供器暴露自定义数据结构。
- 提供资源列表、读取、订阅和取消订阅等标准 MCP 资源操作。
- 工具注册和执行 (Tools):
- 支持注册自定义工具,扩展 LLM 的能力,使其可以调用 Laravel 应用的特定功能。
- 内置示例工具,方便快速上手和测试。
- 工具可以通过 Artisan 命令或其他 Laravel 功能实现。
- MCP 协议支持:
- 完全实现了 MCP 协议,确保与 MCP 客户端的兼容性。
- 使用 JSON-RPC 协议进行通信。
- 支持 STDIO 传输协议,方便本地开发和部署。
- 能力声明 (Server Capabilities):
- 服务器可以声明其支持的功能(资源、工具等),客户端可以根据声明进行适配。
- 易于集成:
- 作为 Laravel 包提供,可以方便地集成到现有的 Laravel 应用中。
安装步骤
-
安装 Laravel MCP 包
在 Laravel 项目的根目录下,运行 Composer 命令安装 Laravel MCP 包:
composer require innoge/laravel-mcp -
创建 MCP 服务器启动命令
使用 Artisan 命令 'php artisan make:command McpServerCommand' 创建一个新的 Artisan 命令,例如 'McpServerCommand'。然后,将以下代码复制到 'app/Console/Commands/McpServerCommand.php' 文件中:
<?php namespace App\Console\Commands; use Illuminate\Console\Command; use InnoGE\LaravelMcp\Commands\ServesMcpServer; use App\MCP\Tools\YourCustomTool; // 引入自定义工具 use App\Models\User; // 引入 Eloquent 模型 use InnoGE\LaravelMcp\Resources\EloquentResourceProvider; // 引入 Eloquent 资源提供器 class McpServerCommand extends Command { use ServesMcpServer; protected $signature = 'mcp:serve'; protected $description = 'Start an MCP server'; public function handle(): int { return $this->serveMcp('your-app-name', '1.0.0'); // 启动 MCP 服务器,server name 可以自定义 } private function getTools(): array { return [ // 注册自定义工具,例如: // YourCustomTool::class, ]; } private function getResources(): array { return [ // 注册 Eloquent 资源提供器,例如: // new EloquentResourceProvider(User::query(), 'users', '应用的用户') ]; } }注意:你需要根据你的实际需求修改 'getTools()' 和 'getResources()' 方法,注册你的自定义工具和资源提供器。示例代码中注释部分提供了如何注册工具和资源的示例。
服务器配置
MCP 客户端(例如 Claude Desktop)需要配置 MCP 服务器的连接信息才能与之通信。配置信息通常为 JSON 格式,你需要将以下 JSON 代码添加到 MCP 客户端的配置文件中,并根据注释进行必要的修改:
{ "your-server-name": { // 服务名称,需要与 McpServerCommand 中 serveMcp() 方法的第一个参数保持一致 "command": "php", // 启动服务器的命令,通常为 php "args": [ // 启动命令的参数 "/path/to/your/app/artisan", // Laravel 应用的 artisan 脚本路径,请替换为你的实际路径 "mcp:serve" // 启动 MCP 服务器的 Artisan 命令 ] } }
请根据你的 Laravel 项目的实际 'artisan' 脚本路径替换 '/path/to/your/app/artisan'。 'your-server-name' 需要与你在 'McpServerCommand' 中 'serveMcp()' 方法里定义的 server name 一致。
基本使用方法
-
启动 MCP 服务器
在 Laravel 项目根目录下,运行以下 Artisan 命令启动 MCP 服务器:
php artisan mcp:serve服务器启动后,将监听 STDIO 输入输出流,等待 MCP 客户端的连接和请求。
-
在 MCP 客户端中配置并连接服务器
打开你的 MCP 客户端(例如 Claude Desktop),编辑其配置文件,将上面提供的 JSON 配置信息添加到 'mcpServers' 字段中。配置完成后,客户端应该能够检测到并连接到你的 Laravel MCP 服务器。
-
使用工具和资源
一旦客户端成功连接到服务器,你就可以在客户端中使用服务器提供的工具和资源了。具体使用方法取决于 MCP 客户端的功能和界面。通常,你可以通过自然语言指令或图形界面来调用工具和访问资源。
注意:目前 'laravel-mcp' 包仍处于开发阶段,可能不适用于生产环境。HTTP 传输协议的支持将在未来版本中添加。
信息
分类
AI与计算