基本能力
产品定位
PHP MCP Server 是一个用于快速开发和部署 MCP 服务的框架,特别适合需要定义和实现复杂业务逻辑的场景。
核心功能
- 基于注解的 MCP 服务定义
- 支持 Tool、Prompt、Resource 三种处理器
- 完整的日志系统
- Docker 支持
适用场景
- 需要快速开发和部署 MCP 服务的项目
- 需要定义复杂业务逻辑的服务
- 需要支持多种处理器类型的应用
工具列表
- Tool 注解:用于定义工具类处理器,支持参数定义和多种返回类型。
- Prompt 注解:用于定义提示模板处理器,支持参数定义和多种返回类型。
- 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
安装教程
```bash
1. 克隆项目
git clone https://github.com/he426100/php-mcp-server
cd php-mcp-server
2. 安装依赖
composer install
3. 安装 Swow 扩展(如果没有)
./vendor/bin/swow-builder --install
```
调试方式
bash
php bin/console mcp:test-server
创建自定义服务
- 创建服务类:
```php
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";
}
}
```
- 创建命令类:
```php
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 服务器');
}
}
```