MCP SDK for PHP 使用说明
项目简介
MCP SDK for PHP 是一个用于构建 Model Context Protocol (MCP) 应用的PHP SDK。它基于官方Python SDK,旨在帮助开发者快速搭建符合MCP协议的客户端和服务器。该SDK提供了一套完整的工具,用于资源管理、Prompt模板渲染和工具注册,从而为LLM应用提供标准化的上下文服务。
主要功能点
- MCP 协议完整实现: SDK 完整实现了 Model Context Protocol 规范,支持构建 MCP 客户端和服务器。
- 资源管理: 支持 MCP 服务器托管和管理资源,为 LLM 提供数据访问能力。
- Prompt 模板: 支持定义和渲染 Prompt 模板,实现可定制的 LLM 交互模式。
- 工具注册与执行: 允许 MCP 服务器注册和执行工具,供 LLM 客户端调用外部功能。
- 多种传输协议: 支持 Stdio 和 SSE 等标准传输协议,方便集成到不同应用环境。
- 详细日志: 客户端和服务器均可启用详细日志,方便调试和问题排查。
- Web Client: 提供一个基于 Web 的 MCP 客户端示例,方便开发者测试 MCP 服务器功能。
安装步骤
-
环境要求: 确保您的 PHP 环境满足以下要求:
- PHP 8.1 或更高版本
- 已安装 'ext-curl' 扩展
- 推荐安装 'ext-pcntl' 扩展 (CLI 环境)
-
通过 Composer 安装: 在您的项目根目录下运行以下命令安装 SDK:
composer require logiscape/mcp-sdk-php
服务器配置
对于 MCP 客户端,您需要配置连接 MCP 服务器的命令及其参数。以下是一个基于 Stdio 传输的服务器配置示例(JSON 格式):
{ "serverName": "example-server", "command": "php", "args": ["example_server.php"], "description": "示例 MCP 服务器配置,通过 PHP 命令启动 example_server.php 文件", "notes": "请确保 example_server.php 文件路径正确,并已安装 PHP 环境" }
配置参数说明:
- serverName: 服务器名称,客户端用于标识服务器配置。
- command: 启动 MCP 服务器的命令,例如 'php' 或服务器可执行文件的路径。
- args: 传递给服务器命令的参数列表,例如服务器脚本的文件路径 '["example_server.php"]'。
- description: (可选)服务器配置的描述信息,方便用户理解配置用途。
- notes: (可选)配置的备注信息,例如环境要求或注意事项。
重要提示:
- 'command' 和 'args' 配置是 MCP 客户端连接服务器的关键信息,请根据您的 MCP 服务器实际启动方式进行配置。
- 上述配置示例假设您的 MCP 服务器是通过 PHP 脚本 'example_server.php' 实现的,并使用 'php' 命令启动。您需要根据实际情况修改 'command' 和 'args'。
- MCP 客户端通常还支持其他传输协议,例如 WebSocket 和 SSE。如果您的 MCP 服务器使用这些协议,您需要查阅 MCP 客户端的文档,配置相应的连接参数。
基本使用方法
-
创建 MCP 服务器: 参考仓库 'README.md' 中的 "Creating an MCP Server" 章节,创建并运行一个简单的 MCP 服务器,例如 'example_server.php'。
-
创建 MCP 客户端: 参考 'README.md' 中的 "Creating an MCP Client" 章节,创建并运行一个客户端,例如 'example_client.php',连接到您创建的 MCP 服务器。
-
测试 Web Client: 将 'webclient' 目录下的文件上传到 Web 服务器,并确保 MCP SDK for PHP 已安装在同一目录下。通过浏览器访问 'webclient/index.php',使用 Web 界面测试 MCP 服务器的 Prompts、Tools 和 Resources 功能。
-
调试日志: 如果需要更详细的调试信息,可以参考 'README.md' 中的 "Advanced Logging For Debugging" 章节,启用客户端和服务器端的日志功能。
通过以上步骤,您可以快速上手使用 MCP SDK for PHP 构建和测试 MCP 应用。更详细的功能和用法,请参考 SDK 源代码和官方 MCP 文档。
信息
分类
开发者工具