Token导航 LogoToken导航

MCP Server · AI代理

Php MCP Server

基于PHP实现的MCP服务器框架,支持通过注解定义服务,适用于需要快速构建MCP服务的开发场景。

stdio官方级别未说明来源级核验工具 0
PHPDocker服务器开发

快速开始

作者 / 组织
he426100
提供方
he426100
运行时
Docker

工具数量

0

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

21

仓库热度

收录来源

2 个

MCP World

选型结论

Php MCP Server 属于AI代理类 MCP Server,公开资料标注 0 个工具,通过stdio 本地进程接入,客户端适配情况以官方文档为准,有可以直接复制的安装命令;接入前先确认权限范围。

分类

AI代理

传输方式

stdio

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

安装命令

docker run --name=php-mcp-server -p 8000:8000 -itd php-mcp-server mcp:test-server --transport sse

客户端配置示例

{
  "mcpServers": {
    "php-mcp-server": {
      "command": "docker",
      "args": [
        "run",
        "--name=php-mcp-server",
        "-p",
        "8000:8000",
        "-itd",
        "php-mcp-server",
        "mcp:test-server",
        "--transport",
        "sse"
      ]
    }
  }
}

按公开安装命令拼出来的示例,字段名和参数以仓库 README 为准;带 YOUR_API_KEY 这类占位符的位置记得换成自己的值。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Docker,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 0 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

PHP MCP Server

这是一个基于 PHP 实现的 MCP (Model Control Protocol) 服务器框架,支持通过注解优雅地定义 MCP 服务。

项目概述

本项目提供了一个完整的 MCP 服务器实现,特色功能:

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

系统要求

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

快速开始

安装

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

# 2. 安装依赖
composer install

# 3. 可选,安装 Swow 扩展(如果没有)
./vendor/bin/swow-builder --install
关于 Swow 扩展的详细安装说明,请参考 Swow 官方文档

运行示例服务器

php bin/console mcp:test-server
通用命令参数
ParameterDescriptionDefault ValueOptions
--transportTransport typestdiostdio, sse
--portPort to listen on for SSE8000

注解使用指南

本框架提供三种核心注解用于定义 MCP 服务:

1. Tool 注解

用于定义工具类处理器:

use Mcp\Annotation\Tool;

class MyService {
    #[Tool(
        name: 'calculate-sum',
        description: '计算两个数的和',
        parameters: [
            'num1' => [
                'type' => 'number',
                'description' => '第一个数字',
                'required' => true
            ],
            'num2' => [
                'type' => 'number',
                'description' => '第二个数字',
                'required' => true
            ]
        ]
    )]
    public function sum(int $num1, int $num2): int 
    {
        return $num1 + $num2;
    }
}

2. Prompt 注解

用于定义提示模板处理器:

use Mcp\Annotation\Prompt;

class MyService {
    #[Prompt(
        name: 'greeting',
        description: '生成问候语',
        arguments: [
            'name' => [
                'description' => '要问候的人名',
                'required' => true
            ]
        ]
    )]
    public function greeting(string $name): string 
    {
        return "Hello, {$name}!";
    }
}

3. Resource 注解

用于定义资源处理器:

use Mcp\Annotation\Resource;

class MyService {
    #[Resource(
        uri: 'example://greeting',
        name: 'Greeting Text',
        description: '问候语资源',
        mimeType: 'text/plain'
    )]
    public function getGreeting(): string 
    {
        return "Hello from MCP 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 服务器');
    }
}

注解参数说明

Tool 注解参数

参数类型说明必填
namestring工具名称是
descriptionstring工具描述是
parametersarray参数定义否

Prompt 注解参数

参数类型说明必填
namestring提示模板名称是
descriptionstring提示模板描述是
argumentsarray参数定义否

Resource 注解参数

参数类型说明必填
uristring资源URI是
namestring资源名称是
descriptionstring资源描述是
mimeTypestringMIME类型否

注解函数返回类型说明

Tool 注解函数支持的返回类型

返回类型说明转换结果
TextContent/ImageContent/EmbeddedResource直接返回内容对象原样保留
TextContent/ImageContent/EmbeddedResource 数组内容对象数组原样保留
ResourceContents资源内容对象转换为 EmbeddedResource
字符串或标量类型如 string、int、float、bool转换为 TextContent
null空值转换为空字符串的 TextContent
数组或对象复杂数据结构转换为 JSON 格式的 TextContent

Prompt 注解函数支持的返回类型

返回类型说明转换结果
PromptMessage消息对象原样保留
PromptMessage 数组消息对象数组原样保留
Content 对象TextContent/ImageContent 等转换为用户角色的 PromptMessage
字符串或标量类型如 string、int、float、bool转换为带 TextContent 的用户消息
null空值转换为空内容的用户消息
数组或对象复杂数据结构转换为 JSON 格式的用户消息

Resource 注解函数支持的返回类型

返回类型说明转换结果
TextResourceContents/BlobResourceContents资源内容对象原样保留
ResourceContents 数组资源内容对象数组原样保留
字符串或可转字符串对象文本内容根据 MIME 类型转换为对应资源内容
null空值转换为空的 TextResourceContents
数组或对象复杂数据结构转换为 JSON 格式的资源内容

注意事项:

  • 对于超过 2MB 的大文件内容会自动截断
  • 文本类型 (text/*) 的 MIME 类型会使用 TextResourceContents
  • 其他 MIME 类型会使用 BlobResourceContents

日志配置

服务器日志默认保存在 runtime/server_log.txt,可通过继承 AbstractMcpServerCommand 修改:

protected string $logFilePath = '/custom/path/to/log.txt';

Docker 支持

构建并运行容器:

docker build -t php-mcp-server .
docker run --name=php-mcp-server -p 8000:8000 -itd php-mcp-server mcp:test-server --transport sse

sse地址:http://127.0.0.1:8000/sse

通过 CPX 使用

您可以通过 直接运行本项目,无需事先安装:

前提条件

  1. 全局安装 CPX:
composer global require cpx/cpx
  1. 确保 Composer 的全局 bin 目录在您的 PATH 中

使用方式

# 运行测试服务器
cpx he426100/php-mcp-server mcp:test-server

# 使用 SSE 传输模式
cpx he426100/php-mcp-server mcp:test-server --transport=sse

# 查看可用命令
cpx he426100/php-mcp-server list

许可证

MIT License

贡献

欢迎提交 Issue 和 Pull Request。

作者

he426100 logiscape

工具与能力

工具数量

0

资源数量

0

提示词数量

0

能力标签

PHP本地部署PHP框架MCP协议注解驱动服务器开发

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

多步任务编排

把拆解、检索、执行串成一条链,模型按步骤调用工具。

长期上下文

把会话、笔记和知识放到外部存储,换个会话还能接着做。

接自有流程

把内部系统和模型连起来,让助手调用已有的工作流。

选择建议

值得选的地方

  • 只提供 0 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 Docker,换机器要重新装一遍。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在AI代理场景里让模型直接调用外部能力的人。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Php MCP Server

MCP World · 本页

0stdio有2 个2026-05-17
Everything Claude Code

MCP World

0stdio有1 个2026-05-17
Filesystem 560c4363

MCP World

13未说明未标注2 个2026-05-17
Time 7365cb6d

MCP.so

2SSE有2 个2026-05-17
Server Everything (everything)

MCP World

11stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Php MCP Server 怎么安装?

公开资料给出的安装命令是 docker run --name=php-mcp-server -p 8000:8000 -itd php-mcp-server mcp:test-server --transp…,运行环境为 Docker。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Php MCP Server 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Docker;保存后完全退出客户端再打开,配置才会生效。

Php MCP Server 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Php MCP Server 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

Php MCP Server 支持哪些客户端?

公开资料没有标注具体客户端;能配置本地 MCP 命令的客户端都能接,配置方式参照官方文档。

来源信息

继续浏览同类 MCP