• Sources: Simon Willison, discussion
  • Summary: Willison describes implementing against the 2026-07-28 Model Context Protocol specification and gives the concrete before and after. Legacy MCP required two HTTP requests, one to initialize and obtain an Mcp-Session-Id and a second to call the tool, where the new form is a single POST carrying MCP-Protocol-Version, Mcp-Method, and Mcp-Name headers with client information moved into _meta. He released three implementations in a week: mcp-explorer, a stateless Python CLI for listing, inspecting, and calling tools on a server, runnable through uvx, then datasette-mcp, a Datasette plugin exposing a /-/mcp endpoint with list_databases, get_database_schema, and a read-only execute_sql, and an alpha llm-mcp-client plugin for his LLM tool.
  • Why it matters: Removing server-side session state is the part that changes deployment, because a stateless MCP server needs no session-affinity routing, which is what made the previous protocol awkward to run behind a load balancer.

send feedback on this story