mcp-apps-workers-starter
Runs the MCP server as a stateless Streamable HTTP Worker with one Durable Object per session, giving each ?session=<id> its own persistent, revision-checked checklist state that is written only on change and auto-deleted by an alarm after a day of inactivity.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-apps-workers-startershow the checklist and mark 'write tests' as done"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-apps-workers-starter
A small, tested starting point for an MCP server with an MCP Apps view on Cloudflare Workers, with one Durable Object per session. It also includes a plain web page that acts as an MCP Apps host, so you can see the view working in a browser without a chat client.
When I built Open Tomorrow for Alexa+, I could not find one example that put these pieces together. This repo is that missing example, in about 230 lines of source:
Piece | File | What it shows |
Stateless MCP over Streamable HTTP |
|
|
MCP Apps tools and view |
|
|
Per-session state |
|
|
Safe concurrent writes |
| Every write sends |
Browser host |
| SDK |
Small bundles |
| esbuild inlines the view and host into ES modules. A small plugin keeps only zod's English locale, which roughly halves the view. |
Run it
Needs Node 22+.
npm install
npm test # 10 tests: the state rules, MCP over real Requests with the SDK client, and a check that generated files are current
npm run dev # wrangler dev on http://localhost:8787, then open it in a browser
npm run smoke # with dev running: persistence, session isolation, and 405/400/403 guardsDeploy with npx wrangler deploy. Durable Objects with SQLite storage are available on the Workers free plan.
To connect an MCP client, use https://<your-worker>/mcp?session=<8-64 letters, digits or dashes>.
Related MCP server: Durable Thinking
Make it yours
Replace Checklist with your own state. Keep read() and apply() pure and revision-checked. Then change the two
tool definitions in src/mcp.mjs and the rendering in src/view.mjs, and run npm run build. The generated files are
committed so Node tests can import them without a build step; npm test fails if they are stale.
Notes and limits
The server sends JSON only, so the SDK client's optional
GET /mcp(for an SSE stream) gets405, which the spec allows. The browser host answers that probe itself (fetchNoProbeinsrc/host.mjs) so the console stays clean.Cross-origin
POST /mcpwith anOriginheader is rejected. Clients that send noOrigin(server-side agents) are allowed. The session id is a capability, so anyone who knows it can use that session. Add authentication before you store anything private.Pinned versions:
@modelcontextprotocol/sdk1.30.0 and@modelcontextprotocol/ext-apps1.7.5. ext-apps 2.x expects SDK v2.
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Local-first task manager: create, edit, and complete tasks, projects, and checklists via MCP.
Read, AI-create, and edit your Gisti checklists in plain language from any MCP client.
Read and write Mission Control state via MCP — projects, tasks, subtasks, templates, status updates.
Read and write shared BitsWeave context, projects, tasks, and work sessions through MCP.
Related MCP Servers
- FlicenseNot gradedqualityFmaintenanceImplements an MCP server using Cloudflare Durable Objects with SSE transport, enabling remote MCP client connections.1-
- AlicenseNot gradedqualityAmaintenancePersistent sequential thinking for MCP clients, stored durably on Cloudflare Workers with support for branching, revision, and history retrieval.2MIT
- AlicenseNot gradedqualityBmaintenanceA remote MCP server for structured sequential thinking, enabling users to create, revise, and manage sequences of steps with persistent state via Cloudflare Workers and Durable Objects.Apache 2.0
- FlicenseNot gradedqualityCmaintenanceEnables deploying a stateless remote MCP server on Cloudflare Workers without authentication, supporting the MCP 2026-07-28 spec and legacy client tool calls.-