---
title: "Stateless MCP has recaptured my interest (and inspired mcp-explorer and datasette-mcp)"
url: https://daily.dev/posts/stateless-mcp-has-recaptured-my-interest-and-inspired-mcp-explorer-and-datasette-mcp--5hbxzpoaw
source_url: https://simonwillison.net/2026/Jul/31/stateless-mcp
type: article
source: "Simon Willison"
published: 2026-07-31T23:14:13.149Z
updated: 2026-08-05T08:54:33.243Z
tags: ["python", "architecture", "ai-agents", "mcp", "datasette"]
reading_time: 7
upvotes: 0
comments: 0
language: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Stateless MCP has recaptured my interest (and inspired mcp-explorer and datasette-mcp)

**[Simon Willison](https://daily.dev/sources/simonwillison)** · 7 min read · 0 upvotes · 0 comments

## Summary

Simon Willison shares his renewed enthusiasm for MCP (Model Context Protocol) following the release of the stateless MCP 2.0 specification (2026-07-28). The new spec simplifies both client and server implementations by eliminating the session initialization handshake, reducing tool calls to a single HTTP request. He built three projects in response: mcp-explorer (a CLI tool for interactively probing MCP servers), datasette-mcp (a Datasette plugin exposing SQL query tools via MCP), and llm-mcp-client (an alpha plugin for his LLM tool). He also argues that MCP offers a safer alternative to giving agents arbitrary shell and curl access, since MCP tools are easier to audit, control, and reason about from a security perspective.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://simonwillison.net/2026/Jul/31/stateless-mcp>

## Community take

How the wider developer community reacted, aggregated from 2 discussions and 97 comments across hackernews (as of 2026-08-05).

**TL;DR:** The community broadly welcomes the move to stateless MCP as an obvious improvement, but a lively debate persists over whether MCP is meaningfully different from REST/OpenAPI, and whether CLI/shell access is a better alternative to MCP for agents altogether.

**Sentiment:** 45% positive · 35% mixed · 20% skeptical

**The case for**

- Stateless MCP reduces server complexity and lets you reuse existing REST infrastructure like load balancers and API gateways.
- MCP provides standardized auth, granular tool permissions, and auditing that raw CLI access lacks.
- MCP makes sense for non-developer, non-shell contexts (mobile apps, web chat, embedded widgets) where CLI access isn't available.
- The protocol offers harness-level fine-grained authorization that is difficult to replicate cleanly with plain REST.

**The pushback**

- MCP is largely a reinvention of RPC-over-HTTP/JSON, and OpenAPI already covers most of what MCP adds.
- CLI/shell access is more composable — agents can pipe results, write loops, and combine tools in ways MCP tool calls don't support natively.
- Context bloat from loading all MCP tool descriptions remains a practical pain point for many users.
- The stateful design was a clear mistake from the start, and the community questions why it shipped that way.
- Implementing MCP servers from scratch has been unreliable across clients.

**By community**

- hackernews (mixed): Broadly positive about the stateless simplification, but deeply divided on whether MCP is genuinely novel versus a repackaging of REST/OpenAPI, and on whether CLI access is superior for agentic use cases.

**Hottest debate:** Whether MCP offers anything meaningfully beyond a plain REST/OpenAPI endpoint, or whether agents should simply be given shell/CLI access instead.

**Open questions**

- Why was MCP ever designed as stateful in the first place, given well-known distributed-systems lessons about stateless servers?
- Can MCP tool calls ever be as composable as Unix pipes and shell scripting, or is that a fundamental limitation of the protocol?
- Will harness-level progressive tool discovery (tool_search) fully solve context bloat in practice?
- Is there a clean path to auto-generating MCP manifests from existing OpenAPI specs, making a separate MCP layer unnecessary?

**Highlights**

> we invented a stateful protocol, discovered state is hard to scale, stripped it out, and arrived at "just send a POST request." the REST crowd has been smugly waiting for this moment for 20 years.
> — [luciana1u on hackernews](https://news.ycombinator.com/item?id=49179122)

> In retrospect, stateful MCP was clearly wrong. This essentially makes MCP just another REST API endpoint, and lets you use the same infrastructure you already have set up for REST APIs (like load balancers, API gateways, progressive rollouts, etc).
> — [drdexebtjl on hackernews · 3 comments](https://news.ycombinator.com/item?id=49178895)

> - CLI tools don't have standardized auth, nor do they have granular tool permissions. MCP does - CLI tools need to access your secrets in your .env. With MCP the model never sees the secrets and refresh tokens. - CLI tools don't have auditing and telemetry. MCP provides all this for free. - CLI tools imply full bash access, a nightmare in terms of security and very costly if you have to spin up a machine for every request for billions of users. - etc
> — [Eldodi on hackernews](https://news.ycombinator.com/item?id=49179980)

> They’re not the same thing under a different wire protocol! An MCP tool call that returns the top N spenders puts the result in the agent’s context window. A CLI tool call on the other hand… The agent can pipe their results into other completely unrelated CLI tools. It can write a loop that calls multiple tools. These things are not possible with MCP but are trivial with CLIs.
> — [drdexebtjl on hackernews · 1 comments](https://news.ycombinator.com/item?id=49179281)

> Something that anyone doing distributed systems knows after a few scars, stateless servers are always better, and stateful only if there is no way around it. I learnt this with Sun RPC and the whole "The network is the computer". Somehow this keeps having to be relearnt.
> — [pjmlp on hackernews · 1 comments](https://news.ycombinator.com/item?id=49179041)

**Source threads**

- [hackernews](https://news.ycombinator.com/item?id=49131438) · 156 points · 93 comments
- [hackernews](https://news.ycombinator.com/item?id=49139067) · 20 points · 4 comments

---

Tags: [#python](https://daily.dev/tags/python), [#architecture](https://daily.dev/tags/architecture), [#ai-agents](https://daily.dev/tags/ai-agents), [#mcp](https://daily.dev/tags/mcp), [#datasette](https://daily.dev/tags/datasette)

[View this post on daily.dev](https://daily.dev/posts/stateless-mcp-has-recaptured-my-interest-and-inspired-mcp-explorer-and-datasette-mcp--5hbxzpoaw)
