chore: bump ext-apps + example servers to 2.0.0 - #54
Merged
Conversation
ext-apps 2.0 and the 15 example server packages are built on the MCP TypeScript SDK 2.0 split packages, so the stateless example mounts in src/modules/example-apps now connect each server to NodeStreamableHTTPServerTransport from @modelcontextprotocol/node; the factory map is typed as the 2.0 McpServer. The rest of this host (OAuth, the root /mcp handlers, Redis transport) stays on @modelcontextprotocol/sdk 1.29, which installs alongside the 2.0 packages. zod moves to 4 for the whole tree: ext-apps 2.0 peers on ^4.2.0, sdk 1.29 accepts ^3.25 || ^4.0, and the host already imports zod/v4. The hello-world View takes CallToolResult from @modelcontextprotocol/client.
felixweinberger
approved these changes
Sep 9, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bumps
@modelcontextprotocol/ext-appsand the 15 example server packages from^1.7.5to^2.0.0(release notes).ext-apps 2.0 is built on the MCP TypeScript SDK 2.0 split packages, so this is a little more than a version tick:
src/modules/example-apps/index.tsconnects each stateless example server toNodeStreamableHTTPServerTransportfrom@modelcontextprotocol/nodeinstead of the SDK 1.xStreamableHTTPServerTransport, and types the factory map as the 2.0McpServer. Same stateless pattern, same request handling; the twoclose()calls now return promises./mcphandlers, the Redis transport) stays on@modelcontextprotocol/sdk1.29. The 1.x and 2.0 packages have different names, so both install side by side; the lockfile has one copy of each.zodmoves to 4 for the whole tree: ext-apps 2.0 peers on^4.2.0, sdk 1.29 accepts^3.25 || ^4.0, and the host already importszod/v4.CallToolResultfrom@modelcontextprotocol/client.User-visible: every example server now advertises JSON Schema 2020-12 on its tools'
outputSchema(fixes tool-call rejection on clients with a strict 2020-12 validator, modelcontextprotocol/ext-apps#765). The MCP Apps wire protocol is unchanged, so hosts on ext-apps 1.x keep rendering these apps.Verification
In a clean
node:22container (mirrors CI):npm ci→npm run build→npm test(91/91) →npm run lint, all green;tsc --noEmitclean. Lockfile resolves only fromregistry.npmjs.org.Runtime, on the built server:
initializesucceeds against/budget-allocator/mcp,/pdf/mcpand/lazy-auth/mcp;tools/liston/budget-allocator/mcpreturns the app tool with itsui://resource and a2020-12outputSchema; the root/mcpstill answers 401 unauthenticated on the untouched SDK 1.x auth stack.