Live data from Hacker News

Stateless MCP has recaptured my interest

simonwillison.net

171–180 of 246 posts

Re: Stateless MCP has recaptured my interest

#171
post #88

Earlier quoted context omitted.

Isn’t that the case? Aren’t REST people still debating about what makes a true beautiful REST API?

When I say REST, I basically mean HTTP/JSON. I know. Shame on me. But there's a pretty large body of RFCs that define what makes a good REST API. For instance POST should create things, PUT should re-define them, PATCH should incrementally update them, GET must be side-effect-free, etc. And there's a ton of standard HTTP headers. Pair it with OpenAPI and the whole thing is self-documenting. You can achieve the same e…

REST has issues tough.

How do you send a big read only query? A POST? A GET hoping nothings logs it or swallows half of it?

How do you deal with delayed answers? Things that most HTTP middleware will timeout long before the result is achieved?

Re: Stateless MCP has recaptured my interest

#173
post #129

Earlier quoted context omitted.

None of this is true. The point of "just CLI" is that LLMs are infinitely more trained on working CLI tools. There doesn't need to be real CLI tools behind the harness, as long as the interface is CLI-like.

Show me then how to convert my MCP, including auth, behind a CLI like interface. I don’t think that’s even possible.

"claude -p"

All of the main agent CLI's provides a demonstration that it is possible because they're all callable as a CLI. Several of them, like Codex, Kimi CLI, Pi, OpenCode are open source and so you could obviously strip out the MCP host and client from them and turn them into a CLI. Doing so in a way that keeps auth outside the agents sandbox is trickier and you might end up with a proxy which partly defeats the point but at least still keeps the composability of a CLI.

Re: Stateless MCP has recaptured my interest

#174
post #82

Earlier quoted context omitted.

What is an example of something that is unsafe to consume via API or CLI? Isn't MCP _an API_?

Yes, MCP is an API. Previously, it was an API with a weird stateful standard; now it is essentially a bog-standard stateless JSON-RPC API with conventions for tool discovery, long-running tasks and multi-round-trip requests If you wrote your own JSON-RPC API for an LLM, you would probably eventually end up with something that looks very much like the standard they're describing.

Ahh so it's the 2025 name for CORBA? just kidding, I meant SOA /s

But your answer is the first one that seems to be relevant, so thank you.

Re: Stateless MCP has recaptured my interest

#175
What MCP really needs is standardized auth. There's maybe 10 different common ways to authenticate against MCP servers, and the average non-engineer can't read the docs to figure out how to configure it.

Companies can implement Individual Oauth with DCR (which makes it as easy as "log in with Google"), but many don't

Re: Stateless MCP has recaptured my interest

#176
post #100

MCPs are very exciting. They now support IFrames (MCP Apps) as well. Now that the models are getting better, you can trust them to book barber appointments, order groceries, manage your calendar, etc etc. It's significantly lazier to ask an agent to do something than manually doing it. Especially with voice to text. I'm predicting that chat bots will auto-discover MCPs from trusted websites and make life much easier.

I agree. The natural next step is to have an MCP for a global directory of MCPs that an agent can search to complete jobs.

The web_search tool and MCP discovery is essentially a global directory.

Now when I ask ChatGPT for a product, it does a web_search tool call and then gives me a link to a webshop product page. But next step would be automatically using the MCP of that webshop to embed checkout inside chat.

Re: Stateless MCP has recaptured my interest

#177
post #86

Earlier quoted context omitted.

I don’t think the “just use a CLI” crowd really are assuming you’re a developer in a coding harness. All of those use cases you mentioned benefit from the agent having access to a temporary virtual machine with a set of standard CLI tools and the ability to write and execute arbitrary code. Most already do. ChatGPT has been running Python in the cloud to answer questions before we even had functional coding harnesses…

- 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 re…

> CLI tools don’t have standardized auth

EPERM, POSIX ACLs and execute bits.

> CLI tools need to access your secrets in your .env

They can access whichever secret store you want. There are dozens of projects offering valid solutions nowadays for the local tool call space, and they’re equally useful in this scenario.

> CLI tools don’t have auditing and telemetry

They’ve had it for much longer than MCP.

> A nightmare in terms of security

We know how to secure shells. Git over SSH is a hardened, public shell that works all the way up to GitHub scale. You just offer a limited toolset. No escape, unless there’s a vulnerability, which is just as likely with MCP.

> Very costly

It’s a rounding error in comparison to token costs.

Re: Stateless MCP has recaptured my interest

#179
I'm curious if LLM could easily be manipulated to actually process data in context and remove it from its context and replace it with the result or a hint.

Might break the caching, perhaps this can be solved with snapshot ids or cache ids like "Replacing context line 434-500 with hint; checking last request before that context even was added and running that cache before"

Re: Stateless MCP has recaptured my interest

#180

Next he’ll discover that it’s useful for MCP abilities to be organized by resource and a limited set of actions you could perform on those resources, like getting the resource, posting a new resource, patching an existing resource, or deleting the resource. We’ll call it: Resource Oriented Stateless Transformation MCP or ROST-MCP for short.

Boom. ROST’d.
Post reply on HN