项目简介
mcp-php 是一个使用 Laravel 框架构建的 Model Context Protocol (MCP) 服务器示例。它旨在演示如何搭建一个能够与大型语言模型 (LLM) 客户端通信的后端服务,并支持通过 STDIO 传输协议进行通信。该项目提供资源和工具管理的基本框架,为开发者构建更复杂的 MCP 服务器应用提供起点。
主要功能点
- 资源管理接口 (ResourceInterface): 定义了资源的基本结构和访问方式,允许 MCP 服务器托管和提供数据资源。
- 工具管理接口 (ToolInterface): 定义了工具的接口,允许 MCP 服务器注册和执行外部功能,供 LLM 客户端调用。
- STDIO 传输协议: 实现了基于标准输入输出 (STDIO) 的传输层,使 MCP 服务器可以通过命令行与客户端进行通信。
- 基本服务器框架: 提供了 'Server' 类作为 MCP 服务器的核心,负责处理客户端请求、管理能力声明和与传输层交互。
- 可扩展性: 通过接口和工厂模式,方便扩展新的资源类型、工具和传输协议。
请注意: 该项目目前处于基础示例阶段,可能不包含完整 MCP 协议的所有功能,例如 Prompt 模板管理等。开发者需要根据实际需求进行扩展和完善。
安装步骤
- 环境准备: 确保已安装 PHP (版本 8.1+) 和 Composer。
- 创建 Laravel 项目:
composer create-project laravel/laravel mcp-server cd mcp-server - 复制代码: 将仓库提供的代码('app/Mcp', 'app/Http/Procedures', 'app/Console/Commands' 目录下的文件,以及 'app/Console/Kernel.php' 的修改)复制到你的 Laravel 项目中相应的位置。
- 注册命令: 确认 'app/Console/Kernel.php' 文件中已注册 'App\Console\Commands\McpServer::class' 命令。
- 安装依赖 (可选): 如果代码中有额外的依赖,请使用 'composer install' 安装。
服务器配置
MCP 客户端需要配置以下信息以连接到 mcp-php 服务器。以下是基于 STDIO 传输协议的配置示例 (JSON 格式):
{ "server name": "mcp-php-server", // MCP 服务器的名称,可以自定义 "command": "php", // 启动服务器的命令,这里使用 php "args": ["artisan", "mcp:server"] // 启动命令的参数,这里指定执行 artisan 的 mcp:server 命令 }
配置说明:
- '"server name"': 为 MCP 服务器指定一个名称,用于客户端识别,可以自定义。
- '"command"': 指定启动 MCP 服务器进程的可执行命令。由于该项目是 Laravel 项目,需要使用 'php artisan' 命令来运行。
- '"args"': 一个字符串数组,包含传递给 'command' 的参数。这里 '"artisan"' 指定执行 Laravel 的 Artisan 命令行工具,'"mcp:server"' 是在 Laravel 项目中注册的用于启动 MCP 服务器的 Artisan 命令。
基本使用方法
-
启动服务器: 在 Laravel 项目根目录下,打开终端并执行以下命令启动 MCP 服务器:
php artisan mcp:server服务器将通过 STDIO 监听来自 MCP 客户端的请求。
-
客户端连接: 配置 MCP 客户端,使用上述提供的服务器配置信息连接到 mcp-php 服务器。客户端发送符合 MCP 协议的 JSON-RPC 请求,服务器会处理请求并返回响应。
请注意: 由于这是一个基础示例,你需要根据 MCP 协议规范和你的具体需求,扩展 'McpProcedure' 类中的方法,实现资源和工具的具体逻辑,并注册更多的 MCP 方法处理函数。
信息
分类
开发者工具