What's Changed
This release ships the second official extension, MCP Apps (SEP-1865). It is metadata and negotiation only: the extension defines no JSON-RPC methods, and the ui/* postMessage family is the browser host's side of the spec, so a PHP server or client is complete without it. The conformance referee carries no apps scenarios at its current pin, so the extension ships without a conformance claim. One breaking change rides along: the tasks extension identifier moved to a vocabulary class (see BREAKING_CHANGES.md).
Added
- The MCP Apps extension (
io.modelcontextprotocol/ui, SEP-1865) underNexus\Mcp\Extension\Apps. The extension defines no JSON-RPC methods:AppsServerExtensionadvertises the capability slot, and the typed_meta.uivalue objects (UiToolMeta,UiResourceMeta,UiResourceCsp,UiResourcePermissions) model the tool-to-view link and the sandbox configuration on both theresources/listdescriptor and theresources/readcontents.UiResourcecomposes aResourcethat enforces theui://scheme and thetext/html;profile=mcp-appmime type at construction. - The client half of MCP Apps:
AppsClientExtensionadvertises the renderablemimeTypesin the per-request_metacapabilities, and theAppClientfacade resolves tool and resource_meta.uimetadata (tolerating the deprecated flatui/resourceUrikey on read, never emitting it), filters a listing to UI-enabled tools paired with their resolved metadata (AppTool), and readsui://resources verified against the facade's accepted mime types (InvalidUiResourceContentsExceptionon drift). Theui/*postMessage family is host-side and deliberately unmodelled.
Changed
- The tasks extension identifier moved from
TasksServerExtension::IDENTIFIERto the new vocabulary classNexus\Mcp\Extension\Tasks\Tasks, mirroring the MCP Apps shape, so the client half no longer imports a server-namespace class.
Full Changelog: v0.7.0...v0.8.0