php-sdk/tests/Unit/Schema
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Christopher Hertel 60711951d4
[Schema][Server] Add the extensions framework SEP-2133 defines (#443)
* [Schema][Server] Add the extensions framework SEP-2133 defines

enableExtension() took any string and advertised it, with no way for an
extension to add a method: MessageFactory could not decode one, so nothing
downstream ever saw it.

Identifiers are now checked against the _meta key naming rules through
ExtensionIdentifier - a prefix is mandatory, since an unprefixed name has no
owner, and the modelcontextprotocol/mcp second labels the specification
reserves are recognised. An extension implementing
MethodProvidingExtensionInterface contributes both its message classes and
the handlers serving them.

MessageFactory::make() takes an $additional list of message classes, and
RequestHandlerInterface's result template is covariant so a handler
declaring a concrete result satisfies a collection typed by the interface.

* Fix stale @see reference in MethodProvidingExtensionInterface docblock

* [Schema][Server][Client] Make ExtensionIdentifier a value object

ExtensionInterface::getId() now returns ExtensionIdentifier, which
validates the SEP-2133 naming rules at construction instead of the
callers checking it. getMessages()/getRequestHandlers() move into
ExtensionInterface itself; AbstractExtension gives them empty
defaults for extensions that only announce a capability.
2026-08-18 20:47:27 +02:00
..
Content [Schema][Server] Close the 2025-11-25 schema gaps and add the 2026-07-28 surface (#421) 2026-08-17 23:09:39 +02:00
Elicitation [Schema] Stop rejecting elicitation schemas the specification allows (#437) 2026-08-18 19:49:15 +02:00
Enum [Capability] Harden structuredContent extraction (#417) 2026-08-15 04:03:20 +02:00
Extension [Schema][Server] Add the extensions framework SEP-2133 defines (#443) 2026-08-18 20:47:27 +02:00
JsonRpc [Schema][Server] Close the 2025-11-25 schema gaps and add the 2026-07-28 surface (#421) 2026-08-17 23:09:39 +02:00
Request [Schema][Server] Harden sampling tools against the spec (#420) 2026-08-15 04:13:53 +02:00
Result [Schema][Server] Close the 2025-11-25 schema gaps and add the 2026-07-28 surface (#421) 2026-08-17 23:09:39 +02:00
ClientCapabilitiesTest.php [Schema][Server] Close the 2025-11-25 schema gaps and add the 2026-07-28 surface (#421) 2026-08-17 23:09:39 +02:00
ElicitationModeTest.php [Schema][Server] Close the 2025-11-25 schema gaps and add the 2026-07-28 surface (#421) 2026-08-17 23:09:39 +02:00
IconTest.php [Schema][Server] Close the 2025-11-25 schema gaps and add the 2026-07-28 surface (#421) 2026-08-17 23:09:39 +02:00
ImplementationTest.php [Schema][Server] Close the 2025-11-25 schema gaps and add the 2026-07-28 surface (#421) 2026-08-17 23:09:39 +02:00
NonObjectOutputSchemaTest.php [Schema][Server] Close the 2025-11-25 schema gaps and add the 2026-07-28 surface (#421) 2026-08-17 23:09:39 +02:00
ResourceDefinitionTest.php [Schema] Drop SDK-only name pattern on resources and resource templates (#430) 2026-08-18 02:09:07 +02:00
ResourceTemplateTest.php [Schema] Drop SDK-only name pattern on resources and resource templates (#430) 2026-08-18 02:09:07 +02:00
ServerCapabilitiesTest.php Split testsuite for unit and inspector based tests (#82) 2025-09-25 22:27:41 +01:00
ToolChoiceTest.php [Schema][Server] Close the 2025-11-25 schema gaps and add the 2026-07-28 surface (#421) 2026-08-17 23:09:39 +02:00
ToolHeaderAnnotationTest.php [Schema] Refuse an invalid x-mcp-header annotation at definition time (#441) 2026-08-18 20:16:35 +02:00
ToolTest.php [Schema] Always emit {} for empty tool schema properties (#407) 2026-08-14 21:50:08 +02:00