Live data from Hacker News

Stateless MCP has recaptured my interest

simonwillison.net

211–220 of 246 posts

Re: Stateless MCP has recaptured my interest

#211

Earlier quoted context omitted.

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?

REST has issues if you limit yourself to think of the “resources” as your domain entities. If you have a long running search, the resource is the search. Create a search. Fetch search results. Delete the search when you’re done. Similarly, if you have a sufficiently complex command, the resource is the command itself. Maybe it requires async work, and you can later fetch the command results. Anecdotally, this seems t…

I think you provide good and accurate information. However, what you described sounds like a workaround to me.

Re: Stateless MCP has recaptured my interest

#212
post #128

Earlier quoted context omitted.

I can turn off auto invocation of a skill. It uses zero tokens when in this mode. I can still invoke it by calling it by name. How can I do that with MCP servers?

you can actually invoke an MCP App by name in both Codex and Claude using the @ handle

> you can actually invoke an MCP App by name in both Codex and Claude using the @ handle

Even when it is disabled? The point is to have the skill or mcp app to not use ANY tokens until I call it by name. I can do that with a skill. Can I do that with an mcp app?

Re: Stateless MCP has recaptured my interest

#213
post #119

Earlier quoted context omitted.

I can turn off auto invocation of a skill. It uses zero tokens when in this mode. I can still invoke it by calling it by name. How can I do that with MCP servers?

You can't do that with tools either. Skills are basically prompts - they're not analogous to tools or MCPs. I'm not sure what your point is

[dead]

Re: Stateless MCP has recaptured my interest

#215
post #138

Earlier quoted context omitted.

> Modern harnesses don't do that, MCP is also progressive disclosure now. Last time I checked, and it may be different now, Claude Code used tool search only if context usage was greater than 10%. Also, even with tool search, MCP uses about 1000 to 3000 tokens. A skill frontmatter on the other hand can be around 50. And an mcp tool call result gets dumped into context in its entirety. A cli too can be filtered with g…

Skills and MCP can be treated by the harness in the exact same way. What do you think is unique to skills that does not apply to how MCP servers are managed?

> What do you think is unique to skills that does not apply to how MCP servers are managed?

I have a skill that describes my database schema with hundreds of tables, stored procedures, triggers at a high level. It tells the LLM to use a specific CLI to connect to the developer database using an account with read-only permissions. This skill has auto invocation turned off and uses zero tokens when not used.

MCP apps do not have a manual invocation option. If you enable them, they are always on, eating away tokens, even if you are not using them at all. And for my simple example above, would be a lot more work to setup. And once setup would eat way more tokens when compared to a small skill file that describes a CLI tool for querying the SQL database.

Output of an MCP tool call goes straight into context. Output of a CLI tool call can be filtered by the LLM using another tool, before it enters context.

These are meaningful differences and show that skills get the work done in an efficient manner, vast majority of the time.

Re: Stateless MCP has recaptured my interest

#216
post #87

Earlier quoted context omitted.

MCP context bloat is a solved problem since at least February. Both OpenAI and Anthropic support Client-side MCP tool search, which makes MCP context loading as efficient as the Skills one (progressive discovery). Code mode is great but not needed anymore in 95% of use-cases.

I can turn off auto invocation of a skill. It uses zero tokens when in this mode. I can still invoke it by calling it by name. How can I do that with MCP servers?

What you're describing is a harness implementation detail not something specific to the MCP protocol or even how skills behave. Both of those are effectively providing the same level of information to the harness. Harnesses have traditionally (and still generally do) exposed enabled MCP servers and their actions ahead-of-time in the system prompt directly instead of doing progressive disclosure.

Re: Stateless MCP has recaptured my interest

#217
post #181

Earlier quoted context omitted.

Interesting, then I wonder if Pi having Skills support but not MCP support by default still makes sense

Pi does support MCP through an excellent pi-mcp-adapter plugin.

Yes, I meant the decision to not support MCP by default without plugins, like Skills, could be revisited if it’s now efficient

Re: Stateless MCP has recaptured my interest

#218
post #137

Earlier quoted context omitted.

Skills don’t need to be preloaded, can be invoked by name on demand; and when you list available skills, a one-line description for each is enough.

And all those "names and one-line descriptions" live in an .md file and of course pollute your context. And then the model will randomly decide to load the .md file that is the "skill" randomly at any point. Again polluting the context. There's no magic.

Is it so unusual to just ... not ... load the file with a description of them all automatically, but have different files listing different ones for different situations, and manually point to them in prompts?

Re: Stateless MCP has recaptured my interest

#219
post #128

Earlier quoted context omitted.

you can actually invoke an MCP App by name in both Codex and Claude using the @ handle

> you can actually invoke an MCP App by name in both Codex and Claude using the @ handle Even when it is disabled? The point is to have the skill or mcp app to not use ANY tokens until I call it by name. I can do that with a skill. Can I do that with an mcp app?

[deleted]
Post reply on HN