What's Changed
- [Server] Allow overriding the default file name pattern for Discovery by @johnhunt-lc in #292
- [Server] force the proper Content-type for the 202 response in createJsonResponse() by @johnhunt-lc in #295
- [Schema] fix: allow URIs without double slash in Resource and ResourceTemplate (RFC 3986) by @blackwell-systems in #297
- fix: Cannot pass null to nullable enum parameters by @SBNTT in #299
- [Server] Fix case sensitivity for http header by @chr-hertel in #283
- Add PSR-3 compliant
exceptioncontext when logging exceptions by @svenmuennich in #300 - [Server] Add configurable session garbage collection by @chr-hertel in #258
- [CI] Add weekly conformance run against latest upstream release by @soyuka in #304
- [Client][Server][Schema] Bump protocol version to nov 25 by @chr-hertel in #308
- [Server] Untangle origin tracking from Registry by @chr-hertel in #302
- [Schema] Add title field to Resource and ResourceTemplate by @blackwell-systems in #301
- Add title parameter to Builder::addResource() and addResourceTemplate() by @chr-hertel in #310
- Streamline README and add conformance score badges by @chr-hertel in #312
- [Conformance] Fix conformance score calculcation by @chr-hertel in #313
- chore(deps): bump actions/upload-artifact from 4 to 7 by @dependabot[bot] in #331
- chore(deps): bump actions/download-artifact from 4 to 8 by @dependabot[bot] in #330
- [Server] Compose StreamableHttpTransport security middleware via defaultMiddleware() factory by @sveneld in #307
- [Server] Allow runtime-resolved element handlers by @e0ipso in #294
- [Schema][Server] Add MCP Apps extension (io.modelcontextprotocol/ui) support by @chr-hertel in #281
- Document v0.6.0 changes in CHANGELOG and docs by @chr-hertel in #311
Breaking Changes
- Renamed
Mcp\Schema\ResourcetoMcp\Schema\ResourceDefinition. No alias. - Renamed
Mcp\Capability\Registry\Loader\ArrayLoadertoMcp\Capability\Registry\Loader\ReflectedElementLoader. - Bump default protocol version to
2025-11-25 - Removed
ElementReference::$isManualpublic property and thebool $isManualparameter from all*Referenceconstructors. Origin tracking is no longer carried on the element; manual-over-discovered precedence is encoded by loader execution order. RegistryInterface::registerTool(),registerResource(),registerResourceTemplate(),registerPrompt()lost their trailingbool $isManual = falseparameter. Callers using positional arguments must drop the flag.- Removed
RegistryInterface::clear(),getDiscoveryState(),setDiscoveryState(). Rediscovery now goes throughDiscoveryLoader::load()directly. Builder::addResource()signature changed —$titleparameter added between$nameand$description. Callers using positional arguments must switch to named arguments.Builder::addResourceTemplate()signature changed —$titleparameter added between$nameand$description. Callers using positional arguments must switch to named arguments.StreamableHttpTransportconstructor:$corsHeadersparameter removed; CORS is now configured viaCorsMiddleware. The$middlewareparameter is nullable —null(or omitted) installs the default stack;[]disables all defaults. DefaultAccess-Control-Allow-Originis no longer set (was*).ResourceDefinition::__construct()signature changed —$titleparameter added between$nameand$description. Callers using positional arguments must switch to named arguments.ResourceTemplate::__construct()signature changed —$titleparameter added between$nameand$description. Callers using positional arguments must switch to named arguments.McpResourceandMcpResourceTemplateattribute signatures changed —$titleparameter added between$nameand$description. Callers using positional arguments must switch to named arguments.
New Contributors
- @johnhunt-lc made their first contribution in #292
- @blackwell-systems made their first contribution in #297
- @SBNTT made their first contribution in #299
- @svenmuennich made their first contribution in #300
Full Changelog: v0.5.0...v0.6.0