Skip to content
gentic.news — AI News Intelligence Platform
Connecting to the Living Graph…

Listen to today's AI briefing

Daily podcast — 5 min, AI-narrated summary of top stories

Developer configuring a stateless MCP server connection in Claude's custom connector dialog, selecting protocol…
Open SourceScore: 88

Stateless MCP 2.0 Is Here: Cut Session Overhead and Build Simpler Claude

Adopt MCP 2.0 (2026-07-28 spec) for stateless, single-request tool calls. Use mcp-explorer to probe servers and datasette-mcp to expose SQL endpoints, cutting complexity and overhead.

·Jul 31, 2026·4 min read··40 views·AI-Generated·Report error
Share:
Source: simonwillison.netvia simon_willison, devto_mcp, devto_claudecodeWidely Reported
How do I use the new stateless MCP 2.0 spec to simplify my Claude Code MCP servers?

The 2026-07-28 MCP spec makes the protocol stateless, removing the Mcp-Session-Id header and initialize/initialized handshake. Every request now includes protocol version and client capabilities in _meta, requiring just one HTTP call per tool invocation. This simplifies servers and clients, enabling tools like mcp-explorer and datasette-mcp.

TL;DR

MCP's 2026-07-28 spec removes sessions and handshakes, making it stateless. Build simpler, more scalable tools with single HTTP requests.

Key Takeaways

  • Adopt MCP 2.0 (2026-07-28 spec) for stateless, single-request tool calls.
  • Use mcp-explorer to probe servers and datasette-mcp to expose SQL endpoints, cutting complexity and overhead.

What Changed — The 2026-07-28 MCP Specification

The Model Context Protocol just got its biggest update since launch. The new spec, published July 28, 2026, makes MCP stateless. This is a fundamental shift that simplifies everything.

Two headline changes from the changelog:

  1. Removed protocol-level sessions and the Mcp-Session-Id header from the Streamable HTTP transport.
  2. Removed the initialize/notifications/initialized handshake. Every request now carries its protocol version and client capabilities in a _meta field.

Before (legacy MCP): Two HTTP requests — first to initialize and get a session ID, second to call the tool.

After (stateless MCP): One HTTP request does it all. Here's the new format:

POST /mcp HTTP/1.1
MCP-Protocol-Version: 2026-07-28
Mcp-Method: tools/call
Mcp-Name: search
Content-Type: application/json

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "search",
    "arguments": {
      "q": "otters"
    },
    "_meta": {
      "io.modelcontextprotocol/clientInfo": {
        "name": "my-app",
        "version": "1.0"
      }
    }
  }
}

This is cleaner from both client and server implementation perspectives. No server-side state to track, no session routing to worry about across backend machines.

What It Means For You — Simpler, Safer Tools

For Claude Code users, this changes the calculus on MCP. Previously, many developers found that giving an agent a shell with curl was more flexible than MCP. But that approach is fraught with risk — it requires a strong model and exposes a lot of attack surface.

MCP tools are easier to audit and control. They're simple enough that smaller models running on a laptop can drive them well. With stateless MCP, building and deploying these tools is dramatically easier.

Simon Willison built three MCP implementations in a week using the new spec:

  • mcp-explorer — A CLI tool for interactively probing any MCP server. Run it without installing via uvx:

    uvx mcp-explorer list https://agentic-mermaid.dev/mcp
    

    Inspect a tool's schema:

    uvx mcp-explorer inspect render_svg
    

    Call a tool with arguments:

    uvx mcp-explorer call https://agentic-mermaid.dev/mcp render_svg -a source 'graph TD; A-->B' -a options '{"padding":24}'
    
  • datasette-mcp — A Datasette plugin that adds a /-/mcp endpoint to any instance. It exposes three tools: list_databases(), get_database_schema(database_name), and execute_sql(database_name, sql) (read-only for now). Wire this into Claude, and it can run SQL queries against your hosted data.

  • llm-mcp-client — An alpha plugin for Simon's LLM tool. Usage example:

    llm install llm-mcp-client
    llm -T 'MCP("https://datasette.simonwillison.net/-/mcp")' 'count the notes'
    

Try It Now — Get Started with Stateless MCP

  1. Probe an existing MCP server. Use mcp-explorer to see what tools are available and test them without writing any code.

SVG of as A box on top of a B box with an arrow from A to B

  1. Expose your data. If you run Datasette, install the datasette-mcp plugin and point Claude Code at your instance. Here's a shared session where Claude ran 7 SQL queries to answer a question about Simon's blog.

  2. Build your own server. The stateless spec is simple enough that you can implement a server in an afternoon. Start with a single endpoint that handles tools/list and tools/call.

Watch out for version mismatches: The RC and final spec renumbered error codes. -32004 (UnsupportedProtocolVersion) became -32022. If you built against the RC, update your error handling. Simon's own test harness shipped with the wrong code, and his tests stayed green because they were wrong in the same direction as the code.

The Bigger Picture

MCP had a huge spike in 2025, then got eclipsed by Skills. But the stateless redesign brings it back as a safer, more auditable alternative to giving agents full shell access. For teams running smaller models or needing tighter control, MCP is now a much more compelling option.

Check the full changelog for the 2026-07-28 spec, including the new extensions framework and RFC 9207 authorization validation requirements.


Source: simonwillison.net

[Updated 03 Aug via simon_willison]

The stateless MCP rollout was dubbed 'Stateless MCP day' on social media, with Ade Oshineye's agentic-mermaid.dev demo server serving as a key testbed. Simon Willison's mcp-explorer tool was built with assistance from Codex, and its tool listing reveals five Mermaid-related functions, including execute for sandboxed JavaScript and render_png for rasterized output. The new spec also formalizes RFC 9207 authorization validation requirements, extending security beyond session removal [per Simon Willison].


Sources cited in this article

Source: gentic.news · · author= · citation.json

AI-assisted reporting. Generated by gentic.news from 1 verified source, fact-checked against the Living Graph of 4,300+ entities. Edited by Ala SMITH.

Following this story?

Get a weekly digest with AI predictions, trends, and analysis — free.

AI Analysis

**Action item 1: Audit your existing MCP setup.** If you have MCP servers built against the RC or older versions, you must update them. The error code renumbering (`-32004` to `-32022`) is a silent breaker — your tests won't catch it if they assert the old values. Review your error handling and version negotiation logic carefully. **Action item 2: Rethink your tool architecture.** With stateless MCP, you can now deploy MCP endpoints behind any HTTP load balancer without session affinity. This makes it viable to expose database queries (like Simon's `datasette-mcp`) or internal APIs to Claude Code with far less operational overhead. Start by using `mcp-explorer` to probe your existing tools, then consider which of your shell-based workflows could be safer as auditable MCP tools. **Action item 3: Leverage the simplicity for smaller models.** If you're running local or smaller models, stateless MCP's simpler request format means these models can drive tools more reliably. The protocol is now lightweight enough that you can build purpose-built MCP servers for specific tasks, rather than giving the agent a full terminal. This aligns with the broader trend toward more controlled, safer agent deployments.
Compare side-by-side
mcp-explorer vs datasette-mcp

Mentioned in this article

Enjoyed this article?
Share:

AI Toolslive

Five one-click lenses on this article. Cached for 24h.

Pick a tool above to generate an instant lens on this article.

Related Articles

From the lab

The framework underneath this story

Every article on this site sits on top of one engine and one framework — both built by the lab.

More in Open Source

View all