Token导航 LogoToken导航TokenDH.com
MCP Schema Php logo
运维云端未说明官方级别未说明来源级核验

MCP Schema Php

MCP Server

提供用于Model Context Protocol (MCP)的PHP数据转换对象(DTOs)、构建器和工厂,用于构建MCP服务器或客户端的基础。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
PHP服务器开发ClaudeClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Automattic

提供方

Automattic

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

MCP架构PHP

](https://packagist.org/packages/automattic/mcp-schema) ](https://packagist.org/packages/automattic/mcp-schema) ![License](https://github.com/Automattic/mcp-schema-php/blob/trunk/LICENSE)

PHP数据传输对象(DTO)、构建器和工厂 模型上下文协议 (MCP)。

概述

此套餐提供 类型化PHP类 对于MCP协议模式。将其用作在PHP中构建MCP服务器或客户端的基础。

这是什么:

  • DTO fromArray()/toArray() 用于JSON-RPC消息处理
  • 用于构建复杂对象的Fluent Builder
  • 用于路由多态联合类型的工厂

这不是什么:

  • 不是MCP SDK(没有客户端/服务器实现)
  • 不是传输层(STDIO、HTTP、SSE由您负责)

安装

composer require automattic/mcp-schema

要求: PHP 7.4+

快速开始

use Automattic\MCP\Schema\Server\Tools\Dto\CallToolRequest;
use Automattic\MCP\Schema\Server\Tools\Builder\ToolBuilder;
use Automattic\MCP\Schema\Common\Protocol\Factory\ClientRequestFactory;

// 1. Parse incoming JSON-RPC request
$data = json_decode($jsonRpc, true);
$request = ClientRequestFactory::create($data);

// 2. Handle based on request type
if ($request instanceof CallToolRequest) {
    $toolName = $request->getParams()->getName();
    $arguments = $request->getParams()->getArguments();
    // ... execute tool
}

// 3. Build response using DTOs
$result = (new CallToolResultBuilder())
    ->content([$textContent])
    ->build();

模式结构

类型计数目的
DTO179具有验证功能的不可变数据对象
建设者114复杂DTO的流畅施工
工厂9多态联合型路由
接头15类型安全接头接口
枚举3基于类的枚举(兼容PHP 7.4)

命名空间模式

Automattic\MCP\Schema\{Domain}\{Subdomain}\{Type}\{Class}

Examples:
  Server\Tools\Dto\Tool
  Server\Tools\Builder\ToolBuilder
  Common\Protocol\Factory\ClientRequestFactory

域组织

目的包含
Server/处理客户端请求工具、资源、提示、日志记录
Client/处理服务器请求采样、激励、根
Common/共享类型协议、生命周期、任务、内容

核心模式

1.DTO(从数组/到数组)

所有DTO都支持双向阵列转换:

use Automattic\MCP\Schema\Server\Tools\Dto\Tool;

// Deserialize from JSON-RPC data
$tool = Tool::fromArray($data);

// Access typed properties
$name = $tool->getName();
$description = $tool->getDescription();
$inputSchema = $tool->getInputSchema();

// Serialize back to array
$array = $tool->toArray();

2.建筑商(流畅施工)

构建器提供流畅的API,用于构建具有2+个参数的DTO:

use Automattic\MCP\Schema\Server\Tools\Builder\ToolBuilder;
use Automattic\MCP\Schema\Server\Tools\Builder\ToolInputSchemaBuilder;

$tool = (new ToolBuilder())
    ->name('calculator')
    ->description('Performs arithmetic operations')
    ->inputSchema(
        (new ToolInputSchemaBuilder())
            ->type('object')
            ->properties([
                'operation' => ['type' => 'string', 'enum' => ['add', 'subtract']],
                'a' => ['type' => 'number'],
                'b' => ['type' => 'number'],
            ])
            ->required(['operation', 'a', 'b'])
            ->build()
    )
    ->build();

3.工厂(工会路线)

工厂从多态联合数据中实例化正确的类型:

use Automattic\MCP\Schema\Common\Protocol\Factory\ClientRequestFactory;
use Automattic\MCP\Schema\Server\Tools\Dto\ListToolsRequest;
use Automattic\MCP\Schema\Server\Tools\Dto\CallToolRequest;

$request = ClientRequestFactory::create($jsonRpcData);

// Route by type
match (get_class($request)) {
    ListToolsRequest::class => handleListTools($request),
    CallToolRequest::class => handleCallTool($request),
    default => methodNotFound(),
};

4.响应大楼

use Automattic\MCP\Schema\Common\Protocol\Builder\JSONRPCResultResponseBuilder;
use Automattic\MCP\Schema\Server\Tools\Builder\ListToolsResultBuilder;

$result = (new ListToolsResultBuilder())
    ->tools([$tool1, $tool2])
    ->build();

$response = (new JSONRPCResultResponseBuilder())
    ->id($request->getId())
    ->result($result)
    ->build();

echo json_encode($response->toArray());

按能力划分的关键类别

服务器功能

能力关键类别
工具Tool, CallToolRequest, CallToolResult, ToolBuilder
资源Resource, ResourceTemplate, ReadResourceRequest, ResourceBuilder
提示Prompt, PromptArgument, GetPromptRequest, PromptBuilder

客户能力

能力关键类别
采样CreateMessageRequest, CreateMessageResult, SamplingMessage
引出ElicitRequest, ElicitResult, ElicitRequestParamsFactory
ListRootsRequest, ListRootsResult, Root

常见类型

类别关键类别
协议JSONRPCRequest, JSONRPCResultResponse, JSONRPCErrorResponse
工厂ClientRequestFactory, ServerRequestFactory, ContentBlockFactory
生命周期InitializeRequest, InitializeResult, PingRequest

重要提示:MCP命名约定

MCP命名违反直觉。名称表明 谁发送 消息:

术语含义处理方式
ClientRequest请求 由...发送 客户服务器 代码
ServerRequest请求 由...发送 服务器客户端 代码

思考:“ClientRequest”=“客户端发送的请求”

Claude代码集成

此套餐包括以下技能 克劳德代码 它在PHP中使用MCP时提供上下文文档。

composer run mcp-schema:install-claude-skill

这会将文档复制到项目的 .claude/ 目录,使Claude能够在构建MCP服务器或客户端时提供准确、上下文感知的帮助。

发展

# Run tests
composer test

# Static analysis (PHPStan level 8)
composer analyse

许可证

GPL-2.0或更高版本。看 许可证 了解详情。

链接

-

目录标签

目录标签

PHP服务器开发Claude本地部署PHP开发数据传输对象协议实现客户端开发

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP