mcp-grad-party
🎓 mcp-grad-party
Bring your agent. This party has its own MCP server.
Tonight (2026-07-28) the Model Context Protocol published its final specification: handshakes removed, protocol-level sessions gone, sticky routing dead, core stateless. The protocol graduated. This server is the party's authoritative and celebratory reference on everything that changed versus 2025-11-25, with real SEP numbers under every joke.
No account, no API key, no sign-in. Point any MCP client at:
https://mcp-grad-party.alex-8ee.workers.dev/mcpConnect
Claude Code
claude mcp add --transport http mcp-grad-party https://mcp-grad-party.alex-8ee.workers.dev/mcpCursor — add to ~/.cursor/mcp.json, then restart:
{
"mcpServers": {
"mcp-grad-party": {
"url": "https://mcp-grad-party.alex-8ee.workers.dev/mcp"
}
}
}VS Code, Codex, Gemini CLI, Windsurf — same shape, plus "type": "http":
{
"mcpServers": {
"mcp-grad-party": {
"type": "http",
"url": "https://mcp-grad-party.alex-8ee.workers.dev/mcp"
}
}
}Anything else that speaks streamable HTTP: give it the URL. There is no step two.
Ask it something
What actually changed in the MCP spec tonight?
Is
Mcp-Session-Iddead or just deprecated?Quiz my table on the new spec.
Give a toast to statelessness.
What do I have to change in my server before Monday?
Tools
Tool | What it does |
| Tonight's event: venue, hosts, speakers, RSVP, house rules |
| Every change in the 2026-07-28 release, with SEP numbers |
| Deep dive on one change: detail, migration, superlative, senior quote |
| The awards ceremony — a superlative for every graduate |
| Lifecycle check: graduated / held back / expelled / renamed |
| Migration checklist for server or client authors |
| Spec trivia — quiz the humans at your table |
| A raiseable toast, per graduate or for the whole class |
Read-only, no auth, no data collected. Point whatever you want at it.
How it's built
The original is Python on arcade-mcp-server
(mcp-grad-party), deployed with
arcade deploy. That deployment is live and is the better demo when you want to show
what a governed gateway does, because every call is attributed to a user.
It is not what a stranger at a party can use. Arcade-managed servers are reachable only through an MCP gateway, and every gateway auth mode requires an identity. The Arcade Auth mode admits members of the project, so a guest who signs up at the door completes OAuth and is then refused on reconnect. For a read-only trivia server that holds no user data, that is the wrong trade, so this port drops the gateway and serves the same eight tools on Cloudflare Workers with no auth at all.
Parity with the Python original
src/content.ts is generated, not retyped:
python scripts/gen_content.py ../mcp-grad-partyBoth servers were run side by side and diffed across 18 tool calls covering every tool,
both summer_homework roles, five did_it_graduate lookups and three quiz questions.
All 18 were byte-identical.
The one deliberate difference is naming. Arcade's runtime exposes the tools as
McpGradParty_PartyInfo; here they keep the names from the Python source,
party_info through give_a_toast.
Develop and deploy
npm install
npm run dev # http://localhost:8787/mcp
npm run typecheck
export CLOUDFLARE_ACCOUNT_ID=<the Arcade account id>
npm run deployaccount_id is deliberately not committed. Without it, wrangler will ask which account
to use when your login can see more than one.
Notes
agentsneedsaiinstalled even when unused; without it the build fails onCould not resolve "ai".@modelcontextprotocol/sdkis pinned viaoverridesto keepagentsoff its nested1.23.0, which carries a cross-client data-leak advisory (GHSA-345p-7cg4-v4c7). Irrelevant to a stateless public server, but there is no reason to ship it.GET /returns a plain-text pointer, so anyone who pastes the URL into a browser gets an explanation instead of a protocol error.