←back to thread

237 points jdkee | 1 comments | | HN request time: 0.203s | source
Show context
whoknowsidont ◴[] No.45948637[source]
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 only do you not need MCP, but you should actively avoid using it.

Stick with tried and proven API standards that are actually observable and secure and let your models/agents directly interact with those API endpoints.

replies(8): >>45948748 #>>45949815 #>>45950303 #>>45950716 #>>45950817 #>>45951274 #>>45951510 #>>45951951 #
cyanydeez ◴[] No.45948748[source]
probably easier to just tell people: You want MCP? Add a "description" field to your rest API that describes how to call it.

That's all it's doing. Just plain ole context pollution. World could be better served by continuing to build out the APIs that exist.

replies(6): >>45949052 #>>45949068 #>>45950107 #>>45950478 #>>45951105 #>>45951859 #
pests ◴[] No.45950478[source]
Sometimes the actions you want to perform does not map cleanly into one or two API calls, or would be too messy to assume correct parsing. Maybe your UI is fine POSTing to /users and PUTing to /groups or whatever but giving the LLM a direct CreateUserAndAddToGroup action simplifies the task and keeps context cleaner.
replies(1): >>45957677 #
1. cstrahan ◴[] No.45957677[source]
This is very true. But why stop there?

Imagine a future where we have an evolved version of MCP -- call it MCP++.

In MCP++, instead of having to implement a finite list of specialized variants like CreateUserAndAddToGroup, imagine MCP++ has a way to to feed the desired logic (create user, then add that user to $GROUP) directly to the endpoint. So there would be something like a POST /exec endpoint. And then the /exec endpoint can run the code (maybe it's WASM for something)...

Wait a minute! We already have this. It's called programming.

You could have the LLM write code, so that any pipelining (like your example), aggregation, filtering, or other transformation happens in that code, and the LLM only needs to spend the output tokens to write the code, and the only input tokens consumed is the final result.

I definitely am not the first person to suggest this:

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

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

... but I can say that, as soon as I read about MCP, my first thought was "why?"

MCP is wasteful.

If you want LLMs to interact with your software/service, write a library, let the scrapers scrape that code so that future LLM revisions have the library "baked into it" (so you no longer need to spam the context with MCP tool descriptions), and let the LLM write code, which it already "knows" how to do.

What if your library is too new, or has a revision, though?

That's already a solved problem -- you do what you'd do in any other case where you want the LLM to write code for you: point it at the docs / codebase.