Live data from Hacker News

What if you don't need MCP at all?

mariozechner.at

171–180 of 194 posts

Re: What if you don't need MCP at all?

#171
post #39

So far I have seen two genuinely good arguments for the use of MCPs: * They can encapsulate (API) credentials, keeping those out of reach of the model, * Contrary to APIs, they can change their interface whenever they want and with little consequences.

You're not wrong, but I figured I'd point out the cons / alternatives:

> They can encapsulate (API) credentials, keeping those out of reach of the model

An alternative to MCP, which would still provide this: code (as suggested in https://www.anthropic.com/engineering/code-execution-with-mc... and https://blog.cloudflare.com/code-mode/).

Put the creds in a file, or secret manager of some sort, and let the LLM write code to read and use the creds. The downside is that you'd need to review the code to make sure that it isn't printing (or otherwise moving) the credentials, but then again you should probably be reviewing what the LLM is doing anyway.

* Contrary to APIs, they can change their interface whenever they want and with little consequences.

The upside is as stated, but the downside is that you're always polluting the context window with MCP tool descriptions.

Re: What if you don't need MCP at all?

#172

Earlier quoted context omitted.

Why are they nondeterministic? You can use a fixed seed or temperature=0.

Even with zero temperature (and some of the latest models don’t allow that) you’re still not absolutely guaranteed deterministic output.

What does deterministic mean in this case?

Re: What if you don't need MCP at all?

#173

Earlier quoted context omitted.

>but isn't this solved by publishing good API docs, and then pointing the LLM to those docs as a training resource? Yes. It's not a dumb question. The situation is so dumb you feel like an idiot for asking the obvious question. But it's the right question to ask. Also you don't need to "train" the LLM on those resources. All major models have function / tool calling built in. Either create your own readme.txt with ex…

You keep saying that major models have "tool calling built in". And that by giving them context about available APIs, the LLM can "use the API". But you don't explain, in any of your comments, precisely how an LLM in practice is able to itself invoke an API function. Could you explain how? A model is typically distributed as a set of parameters, interpreted by an inference framework (such as llama.cpp), and not as a…

The LLM output differentiates between text output intended for the user to see, vs tool usage.

You might be thinking "but I've never seen any sort of metadata in textual output from LLMs, so how does the client/agent know?"

To which I will ask: when you loaded this page in your browser, did you see any HTML tags, CSS, etc? No. But that's only because your browser read the HTML rendered the page, hiding the markup from you.

Similarly, what the LLM generates looks quite different compared to what you'll see in typical, interactive usage.

See for example: https://platform.openai.com/docs/guides/function-calling

The LLM might generate something like this for text:

    {
      "content": [
        {
          "type": "text",
          "text": "Hello there!"
        }
      ],
      "role": "assistant",
      "stop_reason": "end_turn"
    }
Or this for a tool call:

    {
      "content": [
        {
          "type": "tool_use",
          "id": "toolu_abc123",
          "name": "get_current_weather",
          "input": {
            "location": "Boston, MA"
          }
        }
      ],
      "role": "assistant",
      "stop_reason": "tool_use"
    }
The schema is enforced much like end-user visible structured outputs work -- if you're not familiar, many services will let you constrain the output to validate against a given schema. See for example:

https://simonwillison.net/2025/Feb/28/llm-schemas/

https://platform.openai.com/docs/guides/structured-outputs

Re: What if you don't need MCP at all?

#174

Earlier quoted context omitted.

Maybe this is a dumb question, but isn't this solved by publishing good API docs, and then pointing the LLM to those docs as a training resource?

It is. Anthropic builds stuff like MCP and skills to try and lock people into their ecosystem. I'm sure they were surprised when MCP totally took off (I know I was).

I don't think there is any attempt at lock in here, it's simply that skills are superior to MCP.

See this previous discussion on "Show HN: Playwright Skill for Claude Code – Less context than playwright-MCP (github.com/lackeyjb)": https://news.ycombinator.com/item?id=45642911

MCP deficiencies are well known:

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

https://blog.cloudflare.com/code-mode/

Re: What if you don't need MCP at all?

#175

If I may make a suggestion, many problems folks face with MCP would be solved if their agents were JIT compiled, not ran in a static while loop. We've been developing this in case folks are interested: https://github.com/stanford-mast/a1

Not sure what you are compiling and what static while loop is.

I just skimmed the README.

I believe the point is to do something akin to "promise pipelining":

https://capnproto.org/rpc.html

http://erights.org/elib/distrib/pipeline.html

When an MCP tool is used, all of the output is piped straight into the LLM's context. If another MCP tool is needed to aggregate/filter/transform/etc the previous output, the LLM has to try ("try" is a keyword -- LLMs are by their nature nondeterministic) and reproduce the needed bits as inputs into the next tool use. This increases latency dramatically and is an inefficient use of tokens.

This "a1" project, if I'm reading it correctly, allows for pipelining multiple consecutive tool uses without the LLM/agent being in the loop, until the very end when the final results are handed off to the LLM.

An alternative approach inspired by the same problems identified in MCP: https://blog.cloudflare.com/code-mode/

Re: What if you don't need MCP at all?

#176

MCP was a really shitty attempt at building a plugin framework that was vague enough to lure people into and then allow other companies to build plugin platforms to take care of the MCP non-sense. "What is MCP, what does it bring to the table? Who knows. What does it do? The LLM stuff! Pay us $10 a month thanks!" LLM's have function / tool calling built into them. No major models have any direct knowledge of MCP. Not…

Perhaps you haven't used many MCP server, but those that I have used (GitHub, Atlassian, Glean, BuildKite, Figma, Google Workspace, etc) work very well. They teach an LLM how to do exactly what you're saying - "use the API standards...your models/agents directly interact with those API endpoints." Most MCP severs don't sit in between the LLM and the API endpoints, they just teach them how to use the tools and then th…

> but those that I have used (GitHub, [...])

> Most MCP severs don't sit in between the LLM and the API endpoints [...]

Your first example certainly isn't an example of that: https://github.com/github/github-mcp-server

I suppose someone could try to abuse MCP by stuffing information about REST API endpoints into a the prompt/descriptions in a small MCP "skeleton" service, but I don't know of any. Can you provide examples?

> they just teach them how to use the tools and then the LLM calls the APIs directly as any HTTP client would.

I suspect you might have some deep misunderstandings about MCP.

Re: What if you don't need MCP at all?

#177

Earlier quoted context omitted.

>They have significant data trained on MCP. No they don't lol.

Wild claim. MCP has been popular for well over a year. To filter it out of the training data would be laughable.

What whoknowsidont is trying to say (IIUC): the models aren't trained on particular MCP use. Yes, the models "know" what MCP is. But the point is that they don't necessarily have MCP details baked in -- if they did, there would be no point in having MCP support serving prompts / tool descriptions.

Well, arguably descriptions could be beneficial for interfaces that let you interactively test MCP tools, but that's certainly not the main reason. The main reason is that the models need to be informed about what the MCP server provides, and how to use it (where "how to use it" in this context means "what is the schema and intent behind the specific inputs/outputs" -- tool calls are baked into the training, and the OpenAI docs give a good example: https://platform.openai.com/docs/guides/function-calling).

Re: What if you don't need MCP at all?

#178

Earlier quoted context omitted.

What do all of the links below have in common? Do you know of another way you can control all of those applications via LLMs? Computer use? https://github.com/ahujasid/ableton-mcp https://github.com/ahujasid/blender-mcp https://github.com/CoplayDev/unity-mcp https://github.com/mikechambers/adb-mcp

Can you do yourself a favor and look at the source code and tell me why you think MCP is necessary here? I mean you just took some examples and went "See MCP!" without any actual understanding of what that code is doing. All of these have underlying API's that have exactly ZERO need for MCP. All of this functionality already exists and can be used with LLM's. * https://help.ableton.com/hc/en-us/articles/209072009-Ins…

Idk what you think you have to gain with your stance lol

No one looks at MCP and sees "magic", they just see "finished integration". Something you can pretty much use straight away. That's the point.

Re: What if you don't need MCP at all?

#179

Earlier quoted context omitted.

Is that just bad implementation? Where are the wasted tokens? I noticed your second issue, but to me it's just from bad implementation. For some reason people keep exposing generic overlapping tools from multiple MCP servers. I don't know that MCP causes this issue, any vendor offering a "tools API" if they shove to many APIs it would bloat things up.

> Is that just bad implementation? Where are the wasted tokens? How wouldn't it be wasteful? I'll try to summarize a couple sources: https://www.anthropic.com/engineering/code-execution-with-mc... https://blog.cloudflare.com/code-mode/ Here's what Anthropic has to say about it: As MCP usage scales, there are two common patterns that can increase agent cost and latency: Tool definitions overload the context window; In…

But none of the criticisms here is specific to MCP, just to tool calls in general, it wouldn't matter if the agent used a custom tool protocol, plain OpenAPIs, etc. These issues would still exist.

Re: What if you don't need MCP at all?

#180

Earlier quoted context omitted.

Is that just bad implementation? Where are the wasted tokens? I noticed your second issue, but to me it's just from bad implementation. For some reason people keep exposing generic overlapping tools from multiple MCP servers. I don't know that MCP causes this issue, any vendor offering a "tools API" if they shove to many APIs it would bloat things up.

> Is that just bad implementation? Where are the wasted tokens? How wouldn't it be wasteful? I'll try to summarize a couple sources: https://www.anthropic.com/engineering/code-execution-with-mc... https://blog.cloudflare.com/code-mode/ Here's what Anthropic has to say about it: As MCP usage scales, there are two common patterns that can increase agent cost and latency: Tool definitions overload the context window; In…

Sounds like what we need is for the MCP client to expose the tools as libraries for the agent's code interpreter. Then it can write code to wire them together without flowing through context.

We still get the benefits of standardization, higher level RPC endpoints, and vendor-supplied instructions.

Post reply on HN