Hacker News new | ask | show | jobs
by UltraSane 207 days ago
Hasn't even Anthropic admitted that MCP is very wasteful of context? Having the LLM write code to call and API can use 98% less tokens.

https://www.anthropic.com/engineering/code-execution-with-mc...

The agent discovers tools by exploring the filesystem: listing the ./servers/ directory to find available servers (like google-drive and salesforce), then reading the specific tool files it needs (like getDocument.ts and updateRecord.ts) to understand each tool's interface. This lets the agent load only the definitions it needs for the current task. This reduces the token usage from 150,000 tokens to 2,000 tokens—a time and cost saving of 98.7%.

1 comments

The article you link (and general movements in that area, like e.g. discussed here[0]) don't advocate for abandoning MCP, just that masquerading MCP usage as code usage makes it more efficient. In that system MCP still provides a valuable role to act as a tool discovery protocol, a role that would have to be filled one way or another unless you are building a system with a set of tools that is known ahead of time.

[0]: https://news.ycombinator.com/item?id=45917182

In that case discovery could be served through `ls` or AGENTS.md, right? So when should you really use MCP?
It sounds like you are viewing MCP servers through a narrow lens of local coding agents.

I'm mostly working with MCP servers in the context of enterprise/organizational usage for connecting internal data sources and workflows/internal APIs through a standardized interface. There is no equivalent of a "ls or AGENTS.md" there, as there is no file system and no shell in those contexts.

If there is no file system where do the MCP definitions live and how are the agents aware of them? How are your end users aware of these definitions? There has to be a file somewhere.
> where do the MCP definitions

What concretely do you mean be definitions?

If you mean the configuration of the entry points similar to a .mcp.json for Claude Code, they can exist in any form, but ultimately, that only contains the endpoints of MCP servers (the entry points for discovery for each of the MCP servers).

If you mean the definitions of what tools are part of what MCP server (= the meat of what is involved in tool calling), those definitions are part of the MCP server and are only retrieved at runtime.

> how are the agents aware of them

Same as in Claude Code, the agent (= the control loop for the LLM) contacts the list of MCP endpoints, gathers all of the available tools on each MCP server, and then exposes those tools to the LLM (and handles the interactions between LLM and MCP server).

> There has to be a file somewhere.

Not in any way that's meaningful for an `ls` operation.

How is that different then an OpenAPI definition?