Thank you in advance for any replies!
Thank you in advance for any replies!
Almost like an API for LLM driven actions.
everything that didnt have an api i could integrate with, but does have a janky website is now something i can put into a locally-run workflow.
its not a panacea since i cant deploy it anywhere beyond my colleagues dev machines, but it enables a tone of automation that was otherwise a.big commitment, both from my team, and each of those janky website owners.
it was possible to do this website scraping before, but nobody was thinking about it in a plug and play manner
It is presented as a scalable way to provide tools to LLMs but that's only if you assume every use of LLMs is via the popular chatbot interfaces, which isn't the case.
Basically it's Anthropic's idea for extending their chatbot's toolset into desktop apps such as Google drive and others who may wish to make their software capabilities integrated into chatbots as tools.
Of course as with everything in tech, especially AI related, it has been cargo-culted to be the second coming of the messiah while all nuances about its suitability/applicability is ignored.
It's a formalized way of allowing developers to implement tools (using JSON-RPC) in such a way that the model is provided with a menu of tools that it can call on in each generation. The output is then included in the next generation.
MCP is an open protocol, and everyone half-competent has an MCP for their product/service.
RAG is a bespoke effort per implementation to vectorize data for model consumption.
These other capabilities that chat tools provide are actually extras built on top of the output sequence:
- reading and editing files
- searching the web
- executing commands
If your favorite chat tool (ChatGPT, Gemini, Claude, Cursor, whatever) already has all the tools you want, then you don't need to add more via an MCP server.
I've also seen a lot of amateur ones with grandiose claims about how they enable AGI thinking ability by trying slightly harder to plan things.
It's great! crazy eyes all seriousness though, it's a terrible solution for the "vibe" space in terms of how careless people are about it. There are thousands of "who-knows-who-made-this" servers for major integrations out there.
While I’m not “vibe” coding, it is nice to be able to ask human language questions and have the LLM query the database to answer questions. Or while working on a feature, I can ask it to delete all the test records I created, etc. I can do that in a repl myself, but it’s sometimes a nice shortcut.
Note, this only runs in dev, so it’s not querying my production database or anything.
Basically, they can be a way to expose additional data or tools to the LLM.
Ok, but what if you're dealing with thousands of PDFs? I thought that was the whole point (or at least, killer feature) of RAG.
In short, MCP servers won't make RAG obsolete, but the number of use cases is definitely lower than it was without it.
A MCP server is really just a collection of functions the model can call, and a list of those functions and their description/input params. In theory the MCP connector is calling /get-tools on the MCP servers and injecting that into the prompt, so the model knows which tools are available, their description and input params. It's then up to the model to pick a specific tool to use.
I don't know where specifically the MCP tools are injected into the prompt or what the original system prompt is (ie: maybe it's saying "always give the internal tools priority and only use MCPs if nothing else fits").
It could be the MCP server has poor descriptions of the tool. That is what the model uses to decide to use it or not.
It could also be the model just sucks. Claude Opus/Sonnet seem to be some of the best at tool calling, but it's still up to the model to pick which tools to use. Some models are better than other. Some models start to regress in their tool calling abilities as the context window fills up.
My instinct is the MCP tools have bad descriptions. I've done a bit of reverse engineering of Claude Code and most of the tool descriptions are very detailed. "Use this tool to call a bash command" would be a bad tool description. The Claude Code bash tool description is 110 lines long containing detailed usage information, when to use it, when not to use it, example usage and etc. It also has a summary at the bottom of very important things (that were just written above in the same description) for the model not to forget (they use the word IMPORTANT and YOU MUST a lot in the prompts/descriptions)
> Let's create new feature XYZ. Use Postgres MCP to verify the schema of relevant tables instead of making assumptions.
> Use Supabase MCP to see if user@domain.com has the correct permissions to have the Create Project button present in the UI.
NOTE: only run Supabase MCP with the --read-only, doing otherwise will lead to a bad time.
They don't know how to write a simple function to call a REST API, store the results in an database, etc. etc. So they need this tooling.
There's also the fact that humans love to abstract things, even when the thing they're trying to abstract already does the job fairly well (see: Kubernetes, GraphQL)
Sythe_nl•22h ago
iJohnDoe•20h ago