PHP MCP Server

PHP MCP Server

site icon
2025.04.10 11
PHPMCP 服务框架PHP 开发开发效率
PHP MCP Server 是一个基于 PHP 实现的 MCP (Model Control Protocol) 服务器框架,支持通过注解优雅地定义 MCP 服务。它提供了基于注解的服务定义、支持多种处理器类型、完整的日志系统和 Docker 支持。
View on GitHub

Overview

基本能力

产品定位

PHP MCP Server 是一个用于快速开发和部署 MCP 服务的框架,特别适合需要定义和实现复杂业务逻辑的场景。

核心功能

  • 基于注解的 MCP 服务定义
  • 支持 Tool、Prompt、Resource 三种处理器
  • 完整的日志系统
  • Docker 支持

适用场景

  • 需要快速开发和部署 MCP 服务的项目
  • 需要定义复杂业务逻辑的服务
  • 需要支持多种处理器类型的应用

工具列表

  1. Tool 注解:用于定义工具类处理器,支持参数定义和多种返回类型。
  2. Prompt 注解:用于定义提示模板处理器,支持参数定义和多种返回类型。
  3. Resource 注解:用于定义资源处理器,支持资源 URI、名称、描述和 MIME 类型定义。

常见问题解答

  • Swow 扩展安装问题:请参考 Swow 官方文档
  • 日志配置:默认保存在 runtime/server_log.txt,可通过继承 AbstractMcpServerCommand 修改。
  • Docker 支持:构建并运行容器时,使用 docker build -t php-mcp-server .docker run -i --rm php-mcp-server

使用教程

使用依赖

  • PHP >= 8.1
  • Composer
  • Docker (可选)
  • Swow 扩展 >= 1.5

安装教程

# 1. 克隆项目
git clone https://github.com/he426100/php-mcp-server
cd php-mcp-server

# 2. 安装依赖
composer install

# 3. 安装 Swow 扩展(如果没有)
./vendor/bin/swow-builder --install

调试方式

php bin/console mcp:test-server

创建自定义服务

  1. 创建服务类:
namespace Your\Namespace;

use Mcp\Annotation\Tool;
use Mcp\Annotation\Prompt;
use Mcp\Annotation\Resource;

class CustomService 
{
    #[Tool(name: 'custom-tool', description: '自定义工具')]
    public function customTool(): string 
    {
        return "Custom tool result";
    }
}
  1. 创建命令类:
namespace Your\Namespace\Command;

use He426100\McpServer\Command\AbstractMcpServerCommand;
use Your\Namespace\CustomService;

class CustomServerCommand extends AbstractMcpServerCommand 
{
    protected string $serverName = 'custom-server';
    protected string $serviceClass = CustomService::class;

    protected function configure(): void 
    {
        parent::configure();
        $this->setName('custom:server')
            ->setDescription('运行自定义 MCP 服务器');
    }
}

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。