modelcontextprotocol/php-sdk
The official PHP SDK for Model Context Protocol servers and clients. Maintained in collaboration with The PHP Foundation.
MCP PHP SDK – 快速概览
是什么 – 一个第一方的PHP库,让你能够编写**模型上下文协议(MCP)**服务器和客户端。MCP是一种将工具、资源、提示和其他AI相关能力暴露给LLM的协议(可以想象成“函数调用”,但不依赖框架)。SDK适用于任何PHP代码库——不需要使用Symfony、Laravel等。
关键组件
- 服务器构建器 – 将具有
#[McpTool]和#[McpResource]属性的普通PHP类转换为符合MCP的服务器。 - 传输 – 通过STDIO(用于本地进程)或HTTP进行通信。传输层是可插拔的。
- 客户端API – 发现工具、调用工具、处理服务器发起的请求以及管理会话/授权。
- 协议时代 – 支持历史性的
initialize握手和较新的无状态修订版2026-07-28。 - 一致性测试 – 每周针对官方MCP一致性测试框架运行CI;徽章显示当前通过率。
安装
composer require mcp/sdk
如果你想要自动发现功能,还需要symfony/finder。
入门
- 服务器 – 编写一个类,用
#[McpTool](函数)或#[McpResource](数据)注解方法,然后运行构建器:exit(Server::builder() ->setServerInfo('Calculator', '1.0.0') ->setDiscovery(__DIR__, ['.'], excludeDirs: ['vendor']) ->build() ->run(new StdioTransport())); - 客户端 – 构建客户端,通过STDIO或HTTP连接,列出工具,调用工具,然后断开连接:
$client = Client::builder() ->setClientInfo('My App', '1.0.0') ->build(); $client->connect(new StdioTransport(command: 'php', args: ['/path/to/server.php'])); $result = $client->callTool('add', ['a'=>5,'b'=>3]); $client->disconnect();
文档和示例 – 完整文档位于https://php.sdk.modelcontextprotocol.io,包括入门、服务器内部、传输、协议版本、高级扩展和API参考等章节。示例项目列在仓库的*Examples*页面上。
生态系统 – 已有多个PHP框架提供了基于此SDK的MCP集成:
- API Platform(
api-platform/mcp) - Kirby CMS(
bnomei/kirby-mcp) - Drupal(
drupal/mcp_server) - CakePHP(
josbeir/cakephp-synapse) - Symfony(
symfony/mcp-bundle、symfony/ai-mate)
贡献 – 遵循常规的GitHub工作流程:打开issue、提交PR并运行CI检查。该项目遵循Symfony的编码标准和向后兼容承诺。
许可证 – 新贡献为Apache-2.0;遗留代码仍为MIT。详情请参阅LICENSE文件。
底线 – 如果你需要通过模型上下文协议将基于PHP的功能(工具、配置、提示等)暴露给LLM,MCP PHP SDK为你提供了一种现成的、符合标准的方式,包括服务器和客户端两侧、多种传输以及积极的一致性测试。
相关
- 项目
- 项目
- 项目
- 项目
- 项目