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为你提供了一种现成的、符合标准的方式,包括服务器和客户端两侧、多种传输以及积极的一致性测试。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目