---
summary: Static-URI resource registration fix — ResourceRegistry uses SDK string overload for non-template URIs, MCP Apps template cleanup, dependency updates
breaking: false
---

# 0.3.3 — 2026-04-08

Static-URI resource registration fix, MCP Apps template cleanup, and dependency/security updates.

## Fixed

- **Static-URI resources register through the SDK exact-resource path** — `ResourceRegistry` now registers resources without URI template variables via `server.resource(name, uriString, ...)` instead of always wrapping them in `ResourceTemplate`. This prevents static resources from being double-listed by clients that merge `resources/list` and `resources/templates/list`, and restores automatic discoverability for static `ui://` resources without a manual `list()` callback. Closes #30.
- **MCP Apps static UI template no longer teaches the workaround** — Removed the redundant `list()` callback from the scaffolded `echo-app-ui` resource and aligned the integration/smoke tests with the corrected static-resource behavior.

## Tests

- Added regression coverage to ensure static URIs use the SDK string overload while templated URIs still register via `ResourceTemplate`.
- Updated MCP Apps integration and smoke tests to assert that static `ui://` resources do not require a manual `list()` callback.

## Dependencies

- `@hono/node-server` 1.19.12 → 1.19.13
- `hono` 4.12.11 → 4.12.12
- `@cloudflare/workers-types` ^4.20260405.1 → ^4.20260408.1
- `@supabase/supabase-js` ^2.101.1 → ^2.102.1
- `@vitest/coverage-istanbul` 4.1.2 → 4.1.3
- `@vitest/ui` 4.1.2 → 4.1.3
- `msw` ^2.13.0 → ^2.13.2
- `openai` ^6.33.0 → ^6.34.0
- `vite` 8.0.5 → 8.0.7
- `vitest` ^4.1.2 → ^4.1.3
