NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Packagist · #1883 most downloaded on Packagist
Exact-revision PHP schema runtime for the Model Context Protocol (MCP)
Last release 27 days ago
11 Sep 2026
Ships on a steady schedule
a new release about every 2 months
Nearly every release is documented
notes for 5 of 5 stable releases
Nothing withdrawn
no release was ever pulled
7 months old
5 releases · first in 2026
One column per month.
Breaking release. The generated DTO API is replaced by a dependency-free runtime for the exact MCP schema revisions 2025-11-25 and 2026-07-28 . Read t
Breaking release. The generated DTO API is replaced by a dependency-free runtime for the exact MCP schema revisions 2025-11-25 and 2026-07-28. Read the migration guide before upgrading.
Schemas::create()->forVersion($revision) and uses Schema::fromArray(), fromValue(), or fromJson() to return immutable records. Validation is always on and exact for the selected revision; unknown revision identifiers throw UnsupportedRevisionException.Record, object unions under Contract, and enum-like string constants under Value. The former Client, Common, and Server namespaces, DTO constructors and factories, class-based enums, validation flags, and toArray() variants are removed with no compatibility aliases.SchemaException and every runtime exception extend \InvalidArgumentException.ElicitResult.content values are accepted in both revisions; 2026-07-28 JSONValue accepts fractional numbers and null; 2025-11-25 NumberSchema.default, minimum, and maximum accept fractional numbers.allOf refinements of the canonical Error definition hydrate Record\Error rather than an anonymous stdClass.-32700.0.type list containing array and null accepts null.skill/ type reference and lookup scripts.@since protocol-history annotations.Full Changelog: v0.1.3...v0.2.0
This release is breaking; see the migration guide.
Schemas::create()->forVersion($revision) and uses Schema::fromArray(),
fromValue(), or fromJson() to return immutable records. Validation is
always enabled and exact for 2025-11-25 or 2026-07-28.Record, useful object
unions under Contract, and enum-like scalar constants under Value.
Compatible objects share records while exact-revision catalogs retain wire
shape and availability.ElicitResult.content values are accepted in both revisions;
2026-07-28 JSONValue accepts fractional numbers and null; and
2025-11-25 NumberSchema.default, minimum, and maximum accept fractional
numbers, matching the pinned TypeScript sources.allOf refinements of the canonical Error definition now
hydrate Record\Error rather than an anonymous stdClass.SchemaException and every runtime exception extend
\InvalidArgumentException, matching the removed DTO factories and the
official MCP PHP SDK's invalid params mapping.-32700.0 instead of throwing a PHP return-type error.type list containing array and null accepts null; list rules apply
to list values only.Client, Common, and Server DTO namespaces,
generated DTO constructors and factories, class-based enum objects,
validation flags, and toArray() variants have no compatibility aliases.skill/ type reference and lookup scripts.@since protocol-history annotations.Open MCP schema types now preserve unrecognized fields during fromArray() and toArray() round trips, including additional JSON Schema keywords such as
fromArray() and toArray() round trips, including additional JSON Schema keywords such as $defs in tool input and output schemas.Full Changelog: v0.1.2...v0.1.3
ToolInputSchema::toArray() and ToolOutputSchema::toArray() now always emit the properties key as a JSON object, even for tools that declare no paramet
ToolInputSchema::toArray() and ToolOutputSchema::toArray() now always emit the properties key as a JSON object, even for tools that declare no parameters. Parameter-less tools previously produced {"type":"object"} (key omitted) or [] (JSON array), both of which strict JSON Schema validators such as OpenAI strict function-calling mode reject with object schema missing properties. Tools with parameters are unchanged. The fix is mirrored in the TypeScript generator so a clean regeneration reproduces the patched output.Full Changelog: v0.1.1...v0.1.2
build: exclude skill/ folder from dist archives by @galatanovidiu in #4
Full Changelog: v0.1.0...v0.1.1
skill/ directory from Composer dist archives. It contains dev-only helper scripts and reference docs that have no runtime purpose for package consumers and should not ship in the vendor/ folder.CLAUDE.md from Composer dist archives. It contains dev-only project instructions with no runtime purpose for package consumers.Add TypeScript generator for MCP PHP DTOs by @galatanovidiu in #1
Full Changelog: https://github.com/WordPress/php-mcp-schema/commits/v0.1.0
fromArray() static factory methods for deserializing arrays into typed DTOstoArray() methods for serializing DTOs to arrays suitable for json_encode()WP\McpSchema\ namespaceYour coding agent can read these notes before it upgrades. Set up the MCP server →