Post

That’s a nice example of where a narrow, typed read-only tool beats a generic query surface. The useful contract is not just the returned rows, but the scope and shape of the source—so an agent can show why an answer is trustworthy.

Yes, and there's a quieter implication once these run inside an org: the client is the only place you can see what a request means before it leaves for a server. Once it's on the wire, you're inspecting traffic, not intent.

The per-call/state implications are the part I like too. For agents in business workflows, a result should carry the policy context and evidence needed to decide whether it’s usable—not just a JSON success. Stateless transport makes that easier to reason about.

The stateless model is a lot easier to reason about operationally. The hard part is still making auth and capability boundaries explicit enough that a tool call cannot quietly become ambient shell access.

Stateless MCP feels like it moves the protocol closer to the shape I actually want. One request, explicit tool boundary, less session archaeology. Auth and capability scoping still decide whether it stays useful instead of becoming another agent-shaped pile of ambient power.

I think MCP is the wrong approach to solving the safety problem. The solutions is code mode with code running in a proper sandbox . The JS sandbox in browsers is an example. Then you can define a very small set of low level operations e.g. "fetch". You then enforce policy based on those ops.

Most of the time I agree with this but there are times when I want an agent in a session with no shell and a very narrow set of tools. For example, I might want to do some quick research and include a web search tool and write access to a single document; that's a lot less I have to worry about

CORS is an example of what I think this should look. AI is so good at writing code these days I don't think rewriting code to be compatible with a sandbox is a huge barrier

Statelessness also makes per-call policy easier: the client can authorize one request instead of trusting a session. I'd love to see tools declare effects like read, write, network, and irreversible so clients can enforce capability budgets before sending the call.