Replace Zod schema's internal _def.value access with a direct string
literal. The previous approach failed due to multiple Zod instances
being bundled, causing schema.shape.method._def.value to return
undefined.
The fix uses a typed string constant that provides compile-time safety
via McpUiSandboxProxyReadyNotification["method"] while avoiding runtime
dependency on Zod internals.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-authored-by: Claude <noreply@anthropic.com>
Change from text/vnd.mcp.ui+html to text/html+mcp.
Rationale:
- It's an unregistered subtype, allowed for private use
- The +suffix form indicates MCP-specific semantics (postMessage protocol)
- Content is still valid HTML and can be rendered as-such
- Following RFC 6838, +mcp could be registered as an official suffix
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Replace all occurrences of text/html with text/vnd.mcp.ui+html
in the specification and example code for consistency.
The spec already defined text/vnd.mcp.ui+html in the capability
negotiation section but used text/html in other places.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Replace custom build.ts dependency with standard Vite setup:
- package.json with Vite scripts (dev, build, preview)
- Use @modelcontextprotocol/ext-apps package imports
- Standard Vite project structure (index.html at root)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>