unstale

npm / @modelcontextprotocol/ext-apps

@modelcontextprotocol/ext-apps

What changed in @modelcontextprotocol/ext-apps 1 to 2, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-19.

13 breaking5 security6 deprecations16 new APIs and options6 behavior and defaults28 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.2.0 on npm

@modelcontextprotocol/ext-apps 222 changes

Breaking changes 9

  • The guard now also rejects registrations for notifications/progress and notifications/cancelled with an already registered error.

    2.0.0release notes

  • The 21 published example packages now declare a Node.js engine requirement of >=20, matching the root package and README.

    2.0.0release notesrelease notes

  • Custom handlers now receive the request signal at extra.mcpReq.signal instead of extra.signal.

    2.0.0release notes

  • Host-side wire deltas change handler-thrown -32002 to -32602 for Views, use -32602 for invalid params on ui/* methods instead of -32603, and remove the MCP error N: message prefix.

    2.0.0release notes

  • Replace the @modelcontextprotocol/sdk@^1 peer dependency with @modelcontextprotocol/client@^2.0.0, required because App and AppBridge extend its Protocol.

    2.0.0release notes

  • Remote JSON-RPC errors are represented as ProtocolError with a numeric code.

    2.0.0release notes

  • ProtocolWithEvents is removed.

    2.0.0release notes

  • Local failures are represented as SdkError with a string code.

    2.0.0release notes

  • Requires zod 4.2 or later; zod 3 and the 1.x fallback for zod 3.25 are no longer supported.

    2.0.0release notes

Security 3

  • @modelcontextprotocol/server-pdf now pins @cantoo/pdf-lib to exactly 2.6.5, avoiding the untested 2.11.x resolution and dependencies flagged by supply-chain scanners.

    2.0.3release notes

  • The root overrides that pinned seroval are removed; the updated dependency tree passes vulnerability and supply-chain scans.

    2.0.3release notes

  • @modelcontextprotocol/server-basic-solid now depends on solid-js 1.9.15 instead of exact 1.9.10, avoiding the vulnerable seroval 1.3 dependency.

    2.0.3release notes

Deprecations 6

  • AppNotification remains available as a deprecated type alias.

    2.0.0release notes

  • AppRequest remains available as a deprecated type alias.

    2.0.0release notes

  • AppResult remains available as a deprecated type alias.

    2.0.0release notes

  • Raw zod shapes remain accepted as a deprecated overload; wrap them in z.object({...}) to move off it.

    2.0.0release notes

  • The 2.x form keys registration by method name; the 1.x schema-and-handler form remains as a deprecated overload with a one-time warning and is removed in 3.0.

    2.0.0release notes

  • The 2.x form keys registration by method name and takes params before the handler; the 1.x schema-and-handler form remains as a deprecated overload with a one-time warning and is removed in 3.0.

    2.0.0release notes

New APIs and options 1

  • The server package is an optional peer dependency for projects using the ./server helpers.

    2.0.0release notes

Behavior and default changes 1

  • The schema follows 2.0 core schemas: structuredContent accepts any JSON value, result _meta documents io.modelcontextprotocol/serverInfo, toolInfo.tool.outputSchema is a loose object, and a recursive JSON-value definition is added.

    2.0.0release notes

Fixes and other changes 2

  • Example servers and the quickstart now derive the dist path from import.meta.url, preventing startup crashes on Node 18 and Node 20.0 to 20.10.

    2.0.1release notes

  • Relative imports now use explicit .js extensions so published declarations resolve under NodeNext and Node16.

    2.0.0release notes

@modelcontextprotocol/ext-apps 152 changes

Breaking changes 4

  • Types csp as ?: never so misplaced declarations fail at compile time.

    1.7.0release notes

  • Types permissions as ?: never so misplaced declarations fail at compile time.

    1.7.0release notes

  • Schemas now import from zod/v4 to match the SDK's zod API.

    1.2.2release notes

  • The pdf-server removes its domain allowlist and requires HTTPS only.

    1.1.1release notes

Security 2

  • Adds allowUnsafeEval, defaulting to false, so Views run under strict CSP without unsafe-eval; opting out enables the faster JIT path.

    1.7.0release notes

  • Adds robust path validation and support for folder or file roots.

    1.1.2release notes

New APIs and options 15

  • Adds sampling support via stock SDK types.

    1.7.0release notes

  • Views can expose tools for the Host to call.

    1.7.0release notes

  • Supports notifying the Host about changes to the tool list exposed by a View.

    1.7.0release notes

  • callServerTool can now opt into resetting its timeout based on progress.

    1.6.0release notes

  • A get_viewer_state interact action is available to retrieve viewer state.

    1.5.0release notes

  • Adds addEventListener with DOM-model on* semantics, allowing event listeners to be registered.

    1.4.0release notes

  • Adds pinch-to-zoom.

    1.4.0release notes

  • Adds removeEventListener with DOM-model on* semantics, allowing event listeners to be removed.

    1.4.0release notes

  • Adds the save_as interact action.

    1.4.0release notes

  • Adds a notification for the UI to initiate termination.

    1.3.0release notes

  • Adds listServerResources() to the App API for listing server resources.

    1.2.0release notes

  • Adds readServerResource() to the App API for reading server resources.

    1.2.0release notes

  • Adds a host-mediated file download method for apps.

    1.1.2release notes

  • A Claude Code plugin is now available for pdf-server.

    1.1.1release notes

  • The pdf-server now has MCPB packaging, providing a bundle developers can use.

    1.1.1release notes

Behavior and default changes 5

  • Host-bound methods warn when called before connect() completes; they throw instead when AppOptions.strict is enabled.

    1.7.0release notes

  • Warns when it receives requests before ui/notifications/initialized.

    1.7.0release notes

  • One-shot event handlers warn when first registered after connect() completes.

    1.7.0release notes

  • Imported annotations are rasterized.

    1.5.0release notes

  • Adds fit-to-page behavior in fullscreen.

    1.4.0release notes

Fixes and other changes 26

  • Missing HostCapabilities fields were added to the specification.

    1.7.5release notes

  • The experimental capability setting is typed as Record<string, object> and its contents are preserved during initialization instead of being stripped by the generated schema.

    1.7.5release notes

  • The experimental capability setting is typed as Record<string, object> and its contents are preserved during initialization instead of being stripped by the generated schema.

    1.7.5release notes

  • object-src is synchronized with default-src in the specification.

    1.7.5release notes

  • Forwards autoResize and strict to the underlying App.

    1.7.0release notes

  • Effect cleanup now closes the App, preventing React StrictMode's development double-invoke from leaving a zombie PostMessageTransport listener.

    1.7.0release notes

  • Highlight, underline, and strike annotations from existing PDFs are imported.

    1.5.0release notes

  • Form-field saving is made more robust, with save consistency follow-ups.

    1.5.0release notes

  • The PDF viewer toolbar layout is fixed.

    1.5.0release notes

  • The zoom-out button can zoom below fit-to-page.

    1.5.0release notes

  • Pinch interactions to and from fullscreen are fixed.

    1.5.0release notes

  • PDF highlights render with translucency.

    1.5.0release notes

  • Fixes batch results to be 1:1.

    1.4.0release notes

  • Renders the page before O(numPages) annotation scans.

    1.4.0release notes

  • Fixes an npx DOMMatrix crash.

    1.4.0release notes

  • Fixes fullscreen jitter.

    1.4.0release notes

  • Fixes a broken MCPB bundle.

    1.4.0release notes

  • Fixes radio and dropdown handling in fill_form/save.

    1.4.0release notes

  • Fixes viewer liveness.

    1.4.0release notes

  • Fixes auto-resize destroying horizontal scroll positions.

    1.3.2release notes

  • Reverts the fullscreen size-changed skip.

    1.3.2release notes

  • Fixes detached-buffer handling when a PDF range is re-requested.

    1.3.1release notes

  • The react-with-deps package now bundles the SDK and zod, unlike before.

    1.2.1release notes

  • Fixes autoResize reporting viewport height when content is taller.

    1.2.0release notes

  • basic-host now supports audio and video, allowing developers to use it with apps that need those media capabilities.

    1.1.1release notes

  • The pdf-server no longer displays the page-loading overlay.

    1.1.1release notes