The server now speaks the current MCP protocol revision (2026-07-28), tells your client which tools can delete things, and asks self-hosters for one fewer secret. Older MCP clients keep working through the compatibility lane.
Breaking changes
- If you use the manual login flow and your client passed the session as an
Mcp-Session-Idheader, that header is no longer read. Connect with the?session_id=query parameter instead, which is what the login page has always handed out.
What’s new
- The server speaks MCP 2026-07-28 natively. Clients on that revision connect without an initialize handshake; clients on the 2024 and 2025 revisions still connect the way they did before.
- Every tool carries the MCP annotations that tell a client what it does: reads are marked read-only, additive writes are marked non-destructive, and only
remove_from_collection,remove_from_wantlist,delete_folder, andedit_custom_fieldare flagged as destructive. A client that confirms destructive actions can now do so for exactly those four. - The README has a paste-ready prompt for handing the whole self-hosted setup, relay included, to a coding agent.
- Self-hosting needs two secrets instead of three.
JWT_SECRETwas left over from an earlier session design and nothing read it; the Deploy to Cloudflare button no longer asks for it.
Fixes
server_inforeported the protocol as2024-11-05, two revisions behind what the server actually negotiated. It now reports the real one, and the discovery card at/.well-known/mcp.jsonincludes it too.pingandserver_infowarned that “the relay host may be down” for as long as any relay fallback had ever been recorded. The warning now appears only when the last fallback was within the past hour; older ones just show the count and age.
Under the hood
- Moved to the MCP SDK v2 (
@modelcontextprotocol/server2.3) and Agents SDK 0.30, the maintained path for Workers MCP servers. - Compatibility date raised to 2026-04-01.
- Collection cache entries are keyed by page size as well as page number, and background cache cleanup is registered with the request so it can’t be cut short.
npm auditon the production dependencies is clean; the previous 15 findings were all in the old SDK’s transitive dependencies.