使用说明
项目简介
Laravel MCP Server SDK 是一个基于 Laravel 框架开发的软件包,用于快速构建 Model Context Protocol (MCP) 服务器。它旨在简化 MCP 服务器的开发过程,使开发者能够专注于实现核心业务逻辑,而无需从零开始处理 MCP 协议的底层细节。该 SDK 提供了丰富的功能,包括资源管理、工具注册与执行、Prompt 模板处理等,并支持 HTTP、WebSocket 和 Stdio 等多种传输协议,方便与各种类型的 MCP 客户端进行集成。
主要功能点
- 资源管理:支持注册和管理各种类型的资源,通过 URI 访问资源数据。
- 工具注册与执行:允许注册自定义工具,并通过标准化的方式供 LLM 客户端调用执行。
- Prompt 模板处理:支持定义和管理 Prompt 模板,实现可定制的 LLM 交互模式。
- 多种传输协议支持:内置 HTTP、WebSocket 和 Stdio 传输协议,满足不同应用场景的需求。
- 会话管理:服务器端负责会话管理,跟踪客户端状态。
- 能力声明:服务器可以声明自身支持的功能和特性。
- 进度跟踪与日志记录:提供进度跟踪和日志记录功能,方便监控服务器运行状态。
- 易于扩展:基于 Laravel 框架,易于扩展和集成其他 Laravel 生态系统组件。
安装步骤
-
环境准备:确保已安装 PHP 8.1 或更高版本、Composer 和 Laravel 10.x。
-
安装 SDK:在 Laravel 项目根目录下,运行 Composer 命令安装 SDK:
composer require laravelmcp/mcp -
发布配置:运行 Artisan 命令发布 SDK 配置文件:
php artisan vendor:publish --provider="LaravelMCP\MCP\MCPServiceProvider" --tag="config"
服务器配置
MCP 服务器的配置信息通常由 MCP 客户端使用,以便客户端能够连接和交互。以下是 'config/mcp.php' 文件中可配置的关键信息,以 JSON 格式描述,并附带参数注释:
{ "server_name": "Laravel MCP", // MCP 服务器的名称,用于标识服务器实例 "server_version": "1.0.0", // MCP 服务器的版本号 "base_url": "https://api.mcp.example.com", // MCP 服务器的基础 URL,用于 HTTP 传输 (此项配置通常用于客户端 SDK 示例,服务器端配置传输方式和地址即可) "api_key": null, // MCP 服务器的 API 密钥 (此项配置通常用于客户端 SDK 示例,服务器端配置传输方式和地址即可) "capabilities": { // 服务器声明支持的 MCP 功能 "prompts": { // Prompt 功能配置 "listChanged": true // 是否支持 Prompt 列表变更通知 }, "resources": { // 资源功能配置 "subscribe": true, // 是否支持资源订阅 "listChanged": true // 是否支持资源列表变更通知 }, "tools": { // 工具功能配置 "listChanged": true // 是否支持工具列表变更通知 }, "logging": true, // 是否支持日志记录功能 "completion": true // 是否支持代码补全功能 (可能为示例配置,实际MCP标准功能中未明确提及) }, "defaults": { // 默认设置 "timeout": 30, // 默认请求超时时间 (秒) "retry_attempts": 3, // 默认重试次数 "max_connections": 100 // 最大连接数 }, "transport": { // 传输协议配置 "type": "http", // 传输协议类型,可选值:http, websocket, stdio "host": "127.0.0.1", // 服务器监听地址 "port": 3000 // 服务器监听端口 } }
MCP 客户端配置示例 (以JSON格式描述,简化表示客户端所需配置信息):
{ "server_name": "Laravel MCP Server", // MCP 服务器名称,客户端用于识别 "command": "php artisan mcp:serve", // 启动 MCP 服务器的命令,客户端无需执行此命令,仅作为参考信息 "args": [ // 启动命令的参数,客户端无需解析,仅作为参考信息 "--transport=http", "--host=127.0.0.1", "--port=8080" ], "transport_type": "http", // 客户端连接服务器时使用的传输协议,需要与服务器配置的 type 一致 "host": "127.0.0.1", // MCP 服务器的监听地址,客户端需要连接的地址 "port": 8080 // MCP 服务器的监听端口,客户端需要连接的端口 }
请注意:MCP客户端不需要配置 'base_url' 和 'api_key' 等在 'config/mcp.php' 中出现的字段,这些字段通常是 SDK 示例或特定客户端的配置项,而非 MCP 服务器连接的必要配置。MCP 客户端的核心配置是服务器的传输协议类型、地址和端口,以及可能的认证方式(本仓库示例中未涉及复杂认证)。
基本使用方法
-
启动服务器:运行 Artisan 命令启动 MCP 服务器,可以选择不同的传输协议和端口:
php artisan mcp:serve php artisan mcp:serve --transport=websocket --host=0.0.0.0 --port=8081 php artisan mcp:serve --transport=stdio -
注册工具、资源和 Prompt:在 Laravel 应用中,通过 SDK 提供的 API 注册工具、资源和 Prompt。具体注册方法请参考仓库 README.md 中的 “Basic Usage” 和 “Fun with LLMs: Building a Code Review Assistant” 章节示例代码。
-
客户端连接:使用 MCP 客户端(例如实现了 MCP 协议的 LLM 应用或客户端 SDK)根据上述 “服务器配置” 中的信息连接到 Laravel MCP 服务器,并发送 MCP 请求进行交互。
-
测试功能:通过 MCP 客户端调用已注册的工具、访问资源或请求 Prompt,验证 MCP 服务器的功能是否正常。
信息
分类
开发者工具