Live data from Hacker News

MCP doesn't need tools, it needs code

lucumr.pocoo.org

131–140 of 146 posts

Re: MCP doesn't need tools, it needs code

#131
post #34

Earlier quoted context omitted.

If you're running one of the popular coding agents, they can run commands in bash which is more or less access to the infinite space of tooling I myself use to do my job. I even use it to troubleshoot issues with my linux laptop that in the past I would totally have done myself, but can't be bothered. Which led to the most relatable AI moment I have encountered: "This is frustrating" - Claude Code thought, after 6 tr…

I've never seen an LLM do anything but absolutely destroy linux. So much of their data is outdated solutions.

same, this is 100x worse than just copy pasting commands from stack overflow.

Re: MCP doesn't need tools, it needs code

#132
post #8

Is this just code injection? It’s talking about passing Python code in that would have a Python interpreter tool. Even if you had guardrails setup that seems a little chancery, but hey this is the time of development evolution where we’re letting AI write code anyway, so why not give other people remote code execution access, because fuck it all.

yes, modern development practice is to introduce rce’s as a feature and then fund raise around it.

Re: MCP doesn't need tools, it needs code

#133

Agree on that it should be composable. Even better if MCP tooling wouldn't yield huge amounts of output that pollutes the context and the output of one can be input to the next, so indeed that may as well be code. Would be nice if there was a way for agents to work with MCPs as code, preview or debug the data flowing through them. At the moment it all seems not a mature enough solution and Id rather mount a Python sa…

MCP defeats the entire point of LLMs.

Re: MCP doesn't need tools, it needs code

#135

I tried doing the MCP approach with about 100 tools, but the agent picks the wrong tool a lot of the time and it seems to have gotten significantly worse the more tools I added. Any ideas how to deal with this? Is it one of those unsolvable XOR-like problems maybe?

congrats, you have encountered one of the fundamental flaws of using an ad-lib generator as an orchestration / rules engine.

Re: MCP doesn't need tools, it needs code

#137
post #34

Earlier quoted context omitted.

If you're running one of the popular coding agents, they can run commands in bash which is more or less access to the infinite space of tooling I myself use to do my job. I even use it to troubleshoot issues with my linux laptop that in the past I would totally have done myself, but can't be bothered. Which led to the most relatable AI moment I have encountered: "This is frustrating" - Claude Code thought, after 6 tr…

I've never seen an LLM do anything but absolutely destroy linux. So much of their data is outdated solutions.

That the best thing about Linux(et al), it's a fairly stable target and programs and tools are pretty much the same as they were year on year. I wouldn't get it to help me with Nix, or let it loose on an EC2 instance, but doe general troubleshooting of Arch or something it's fine.

Edge cases are everywhere, obviously, but I don't let it run wild. I approve every command it runs.

Re: MCP doesn't need tools, it needs code

#138

I agree MCP has these flaws, idk why we need MCP servers when LLMs can just connect to the existing API endpoint Started on working on an alternative protocol, which lets agents call native endpoints directly (HTTP/CLI/WebSocket) via “manuals” and “providers,” instead of spinning up a bespoke wrapper server: https://github.com/universal-tool-calling-protocol/python-ut... even connects to MCP servers if you take a loo…

On my first couple days of writing MCP servers, I made ones that bind APIs (DataBento, Buttplug.io). I thought that was the point. These were my immediate takeaways:

1) I need an auto-binder (eg OpenAPI) or a better binding system like this UTCP is trying to be

2) I need a secure sandbox, for the system and even for the APIs (like a UAT env)

I’ve continued to make MCP servers and tools and realized (1) was a fallacy. Most APIs were not made for computers; they were made for humans to allow other humans to connect to their code.

It’s hard to explain, but it’s an ergonomic thing. An API to a database might have things like paging and filtering. The design might have to fit into a URL and you want to simplify or hide things. LLMs don’t care.

My insight was similar to this article wrt code. An LLM doesn’t need a cute API to a dataset. They can code so you don’t need to give them an API, you give them a SQL endpoint (my focus), or a Python venv, or a bash prompt.

Then akin to UTCP manuals, the user and LLM can develop tool descriptions and code helpers (in SQL, Views and stored procedures) to make them better at doing whatever they need to do. Maybe there’s a main tool description and then a supplementary user-specific one too.

So I’m taking a DuckDB, loading data and locking it down, and give a single SQL endpoint that returns a DB table in CSV. Then work with the LLMs to make tool descriptions and helpers in agentic loops.

So I think what y’all are working on is cool, but the power isn’t in the API connection itself, but how the LLM effectively uses it. But you can build that agentic-assist part into the product; or somebody wraps something around it.

Re: MCP doesn't need tools, it needs code

#139
While I generally agree with the author on code over tools, the article could have benefitted from some concrete ways that this could have potentially been done somewhat securely by sandboxing, enforcing zero trust, network segmentation, and all the other known controls we've developed over the last decade.

I love the optimism of this space, but fear that the "security is a sham" attitude will bite us all in the ass down the line.

Re: MCP doesn't need tools, it needs code

#140
post #99

Earlier quoted context omitted.

Strings are a universal interface with no dependencies. You can do anything in any language across any number of files. Any other abstraction heavily restricts what you can accomplish. Also, LLMs aren't trained on ASTs, they're trained on strings -- just like programmers.

Exactly. LLMs are trained on huge amounts of bash scripts. They “know” how to use grep/awk/whatever. ASTs are, I assume, not really part of that training data. How would they know how to work well with on? LLMs are trained on what humans do to code. Yes, I assume down the road someone will train more efficient versions that can work more closely with the machine. But LLMs work as well as they do because they have a l…

They also know how to use modern options like fd and rg, which allow more complex operations with a single call.
Post reply on HN