Simon Willison ships llm-mcp-client alpha for stateless MCP 2.0

On 28 July 2026, the Model Context Protocol shipped a new specification that Simon Willison, an independent developer known for his LLM command line tool and the Datasette project, calls the most significant change to MCP since it launched in November 2024. The update, formally the 2026-07-28 spec, replaces the old two-request flow, an initial POST that returns a session ID followed by a second POST that uses it, with a single stateless HTTP request carrying headers such as MCP-Protocol-Version, Mcp-Method and Mcp-Name. Willison says this removes the need for servers to track session state or route repeat requests to the same backend machine, and calls it much simpler to implement on both the client and server side. He credits the change with reigniting his own interest in MCP, which he says had been partly eclipsed through 2025 by Anthropic's separate Skills approach, where an agent with shell and curl access could do much of what MCP tools did. He argues MCP tools remain easier to audit and safer to hand to smaller, less capable models than an open shell environment. Three days later, Willison used the simpler spec to build three tools. The first, mcp-explorer, is a stateless Python command line tool for probing MCP servers, built with help from Codex and runnable without installation via uvx; he demonstrated it listing tools (execute, describe_sdk, render_svg, render_ascii, render_png) on Ade Oshineye's agentic-mermaid.dev demo server, then inspecting and calling one of them to render an SVG diagram. The second, datasette-mcp, is a plugin for his Datasette project that adds a /-/mcp endpoint exposing three read-only tools: list_databases, get_database_schema and execute_sql, with execute_sql itself read-only for now. He says this was roughly his fourth attempt at building such a plugin and the first that felt ready to release. He runs it on the Datasette mirror of his own blog and published a separate how-to for connecting it to ChatGPT and Claude; in a shared Claude session he cites, the assistant ran seven separate SQL queries against it to answer the question of what he had recently said about MCP. The third and newest tool, llm-mcp-client, is an alpha release (version 0.1a0) that gives his LLM tool an official MCP integration, installed with "llm install llm-mcp-client" and invoked as "llm -T 'MCP("")' ''". Running it against his Datasette MCP endpoint with the prompt "count the notes", using LLM version 0.32rc2, returned a reasoning trace followed by the answer: there are 151 notes. Willison says that once llm-mcp-client is fully baked he is considering folding it directly into LLM's core, and that he plans to try MCP inside his other projects, Datasette Agent and llm-coding-agent, as well.

Key facts

  • The 2026-07-28 Model Context Protocol specification introduces stateless MCP, cutting the tool-call flow from two HTTP requests (session init plus call) down to one request using headers like MCP-Protocol-Version and Mcp-Method.
  • Willison built mcp-explorer, a Python CLI runnable via uvx with no install, that lists, inspects and calls tools on any MCP server; he demoed it against Ade Oshineye's agentic-mermaid.dev server.
  • datasette-mcp adds a /-/mcp endpoint to Datasette with three read-only tools (list_databases, get_database_schema, execute_sql); Willison calls it roughly his fourth attempt at the plugin and the first he felt ready to ship.
  • llm-mcp-client 0.1a0 is an alpha plugin giving the LLM CLI an official MCP integration; a demo query against his own blog's Datasette MCP endpoint returned 151 notes after running on LLM 0.32rc2.
  • In a cited Claude session, the assistant ran seven separate SQL queries through datasette-mcp to answer a question about Willison's recent MCP writing.

Why it matters

MCP 2.0's stateless design is, by Willison's account, the biggest change to the protocol since its November 2024 launch: it drops the old requirement for servers to hand out and track a session ID, replacing two round trips with one stateless HTTP call. That simplicity is what pulled him back into building for MCP after Anthropic's Skills approach, which lets an agent reach tools through plain shell and curl access, had partly overshadowed it during 2025.

Who it affects

Directly, users of Willison's own tools: developers who run his LLM command line utility, anyone operating a Datasette instance who wants ChatGPT, Claude or another agent to query it, and MCP server authors who want a quick way to probe their own servers. More broadly, it affects anyone building or evaluating MCP clients and servers now that the stateless spec is live.

How to use it

mcp-explorer needs no install: run it with uvx, using list, inspect and call subcommands against any MCP server URL. datasette-mcp is installed as a Datasette plugin and exposes a /-/mcp endpoint with three read-only SQL tools. llm-mcp-client is installed with "llm install llm-mcp-client" and used as "llm -T 'MCP("")' ''" to let the LLM tool call that server's tools directly; it is still alpha, version 0.1a0.

How solid is it

mcp-explorer and datasette-mcp are demonstrated working end to end in the post, against a third-party MCP server and against Willison's own Datasette instance respectively, including a Claude session that successfully ran seven SQL queries through datasette-mcp. llm-mcp-client is explicitly an alpha (0.1a0), demonstrated on a single example query; Willison says he is still deciding whether to fold it into LLM's core once it is "fully baked."

Risks and caveats

This is independent, personal work by one developer, not a company release; the post names no employer or funding behind it, and gives no pricing or licensing terms for any of the three tools. execute_sql in datasette-mcp is read-only "for the moment," implying that could change. No timeline is given for when, or whether, llm-mcp-client will be merged into LLM core.

“Much easier to reason about agent capabilities and what might go wrong than with arbitrary command execution in an open network environment.”

— Simon Willison