项目简介

mcp-php 是一个使用 Laravel 框架构建的 Model Context Protocol (MCP) 服务器示例。它旨在演示如何搭建一个能够与大型语言模型 (LLM) 客户端通信的后端服务,并支持通过 STDIO 传输协议进行通信。该项目提供资源和工具管理的基本框架,为开发者构建更复杂的 MCP 服务器应用提供起点。

主要功能点

  • 资源管理接口 (ResourceInterface): 定义了资源的基本结构和访问方式,允许 MCP 服务器托管和提供数据资源。
  • 工具管理接口 (ToolInterface): 定义了工具的接口,允许 MCP 服务器注册和执行外部功能,供 LLM 客户端调用。
  • STDIO 传输协议: 实现了基于标准输入输出 (STDIO) 的传输层,使 MCP 服务器可以通过命令行与客户端进行通信。
  • 基本服务器框架: 提供了 'Server' 类作为 MCP 服务器的核心,负责处理客户端请求、管理能力声明和与传输层交互。
  • 可扩展性: 通过接口和工厂模式,方便扩展新的资源类型、工具和传输协议。

请注意: 该项目目前处于基础示例阶段,可能不包含完整 MCP 协议的所有功能,例如 Prompt 模板管理等。开发者需要根据实际需求进行扩展和完善。

安装步骤

  1. 环境准备: 确保已安装 PHP (版本 8.1+) 和 Composer。
  2. 创建 Laravel 项目:
    composer create-project laravel/laravel mcp-server
    cd mcp-server
  3. 复制代码: 将仓库提供的代码('app/Mcp', 'app/Http/Procedures', 'app/Console/Commands' 目录下的文件,以及 'app/Console/Kernel.php' 的修改)复制到你的 Laravel 项目中相应的位置。
  4. 注册命令: 确认 'app/Console/Kernel.php' 文件中已注册 'App\Console\Commands\McpServer::class' 命令。
  5. 安装依赖 (可选): 如果代码中有额外的依赖,请使用 '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 命令。

基本使用方法

  1. 启动服务器: 在 Laravel 项目根目录下,打开终端并执行以下命令启动 MCP 服务器:

    php artisan mcp:server

    服务器将通过 STDIO 监听来自 MCP 客户端的请求。

  2. 客户端连接: 配置 MCP 客户端,使用上述提供的服务器配置信息连接到 mcp-php 服务器。客户端发送符合 MCP 协议的 JSON-RPC 请求,服务器会处理请求并返回响应。

请注意: 由于这是一个基础示例,你需要根据 MCP 协议规范和你的具体需求,扩展 'McpProcedure' 类中的方法,实现资源和工具的具体逻辑,并注册更多的 MCP 方法处理函数。

信息

分类

开发者工具