Skip to content(if available)orjump to list(if available)

MCP: An (Accidentally) Universal Plugin System

CobrastanJorji

This is Web 2.0. You're in the process of rediscovering mashups. Before it was SOAP and REST/HTTP and now it's...well, it's still kind of REST/HTTP because MCP is JSON-RPC. There was this brief, beautiful period where every "learn to code" book ended with a couple of chapters of how to make your app do google searches and throw the results into a word graph or something before all the big tech companies locked that sort of access down.

Weirdly, I'm a little optimistic that it might work this time. AI is hot, which means that suddenly we don't care about IP anymore, and if AIs are the ones that are mostly using this protocol, providers will perhaps be in less of a rush to block everybody from doing cool things.

madrox

You’re totally right, and that’s why I think this era will fail.

Web 2.0 failed because eventually people realized to make money they needed to serve ads, and to do that they needed to own the UI. Making it easy to exfiltrate data meant switching cost was low, too. Can’t have that when you’re trying to squeeze value out of users. Look at the evolution of the twitter API over the 2.0 era. That was entirely motivated by Twitter’s desperate need to make money through ads.

Only way we avoid that future is if we figure out new business models, but I doubt that will happen. Ads are too lucrative and people too resistant to pay for things.

jes5199

ads really aren’t all that lucrative, though, they’re just simple. I worked for a company that was trying to figure out an alternative to ad revenue (we failed) and our people did some research and the average internet user ends up being shown (if I remember correctly) like $60/month of ads, total.

xp84

That’s not surprising and is also so depressing. Imagine what the Internet would be like if there were zero ads and zero of the dark patterns that they essentially force every web site operator to engage in. And all for sixty measly bucks a month that we’d spend in microtransactions or subscriptions or whatever. :(

im3w1l

People are willing to pay for AI. Some of this money flow could be diverted to the MCP provider.

jfim

In practice it'll just mean that each MCP provider will have API tokens and it'll be even harder to lock down spending than AWS. Maybe companies will need to have a company wide system prompt to pretty please don't use the expensive APIs too much.

calvinmorrison

why cant i serve ads thru my mcp?

vineyardmike

Obviously it’s possible. And just like the early internet ad networks…

You can’t guarantee they’ll be shown and interpreted correct by the downstream LLM, you can’t guarantee attribution later when a user makes a purchase, you can’t collect (as much) data on users for targeting, etc

The biggest ad networks today (Google, Meta) have strong first party data operations, strong first party attribution techniques, and strong targeting, either through intent (search) or profiles (meta).

MCP originated ads really only threaten Google (via intent based ads), and they’re quickly moving I to owning the UX of LLMs, securing their place in this value chain.

torginus

They don't care about using your IP rights, I doubt it also works the other way around.

1659447091

Did you mean this is Web 3.0? (semantic web)

Where the goal was to have a site's data as machine readable so that could be mashed up into something new? Instead of making it easier to gather the big sites locked the bulk of their data down so it never gained widespread adoption

Web 2.0 is what we mostly have now -- social, user generated content and interaction

xp84

I think 3.0 as a term was taken over by those weird crypto guys with their alternative dns roots and suffixes, that literally no one uses. “Own your domain forever!!*”

* Disclaimer: domain not usable for any purposes except on computers where you have root to install their alternative resolver

wnevets

> I think 3.0 as a term was taken over by those weird crypto guys

that is certainly what I think of when web 3 is mentioned.

baobun

Unfortunately (?) there are no real semantics in MCP so it falls short of Semantic Web.

1659447091

Yes, but not in intent. Semantic Web (which was web 3.0 before it got meshed into web3 apparently) was meant to open up internet data for new/novel applications and uses. The article appears to be alluding to that very thing via MCP.

While it does fall short of the implementation of the Semantic Web, in a way it makes it a possibility to fulfill its intent without the full buy-in of site owners. There still has to be some buy-in or allowance, otherwise it will be locked down in the near future as some comments are expecting.

fmbb

Web 2.0 was also hot.

cowmix

I’m just getting into MCP (building my own server and trying some canned ones), and one thing I’ve noticed — some servers seem to devour your context window before you’ve even typed a single token / question.

My favorite example is the public Atlassian one — https://www.atlassian.com/blog/announcements/remote-mcp-serv...

Even with Claude or Gemini CLI (both with generous limits), I run out of context and resources fast.

With local LLMs via LM Studio? Forget it — almost any model will tap out before I can get even a simple question in.

jameshart

There’s very little actual engineering going in to designing MCP interfaces to actually efficiently work with the way LLM workflows actually operate. Many MCPs offer tools that allow an LLM to retrieve a list of ‘things that exist’ with the expectation the LLM will then pick something out of that list for further action with a different tool. There’s very little evidence that LLMs are actually good at using tools that work like that, and massive lists of ‘things that exist’ eat tokens and context.

Many businesses are rushing to put out something that fits the MCP standard but not taking the time to produce something that lets an LLM achieve things with their tool.

ncallaway

> Many businesses are rushing to put out something that fits the MCP standard but not taking the time to produce something that lets an LLM achieve things with their tool

I think they'll have a while where they can get away with this approach too. For a good while, most people will probably blame the AI or the model if it doesn't use Atlassian tools well. It'll probably be quite some time before people start to notice that Atlassian specifically doesn't work well, but the almost all their other tools do.

(More technical users might notice sooner—obviously, given the context of this thread—but I mean enough of a broader user base noticing to have reputational impact)

whattheheckheck

All new models are probably trained to understand the tool use paradigm

jameshart

They’re trained in using tools that take actions (like sending an email) and tools that retrieve information (like pulling down a Wikipedia article), yes. The specific pattern I see in a lot of SaaS MCPs though is tools for traversing a database which is not really either of those things.

markerz

MCPs are the most basic solution possible. Shoving the tool definitions into a vector store and having a subagent search for relevant tools, then another subagent to run the tools would greatly reduce impact on context. I think it’d work in theory, but it’s so annoying to have to do something like this. We’re still in a world where we have some building blocks rather than full fledged toolboxes.

dragonwriter

> MCPs are the most basic solution possible. Shoving the tool definitions into a vector store and having a subagent search for relevant tools, then another subagent to run the tools would greatly reduce impact on context.

That's a toolchain design approach that is independent of MCPs. A toolchain using MCP could do that and there would be no need for any special support in the protocol.

britannio

I discovered the "Layered Tool Pattern" a few days ago which exposes three tools to discover and execute an arbitrary number of service endpoints. https://engineering.block.xyz/blog/build-mcp-tools-like-ogre...

jjani

Love how the MCPs mimic the company they represent in that sense.

catlifeonmars

Conway’s law in action?

cowmix

Heh.. this comment made my day.

dragonwriter

Most UIs currently are unsophisticated and let you turn on or off the tools on server-by-server basis. For some large servers (especially if they act as aggrgeators) this approach isn't going to be desirable and you are going to want to select individual tools to activate, not servers. But that's a UI issue more than a protocol issue.

jngiam1

We've been thinking that an intermediate (virtual) server layer might be helpful here. Actively working on something to solve that now and looking for feedback, please reach out if interested.

do_anh_tu

I think MCP is awesome, mainly because it forces devs to design the simplest possible tools/APIs/functions so even an average-performance LLM can use them correctly to get things done.

As developers, we often want everything to be rich, verbose, and customizable — but the reality is that for most users (and now for AIs acting on their behalf), simplicity wins every time. It’s like designing a great UI: the fewer ways you can get lost, the more people (or models) can actually use it productively.

If MCP ends up nudging the ecosystem toward small, well-defined, composable capabilities, that’s a win far beyond just “AI integration.”

brookst

I don’t like MCP because it relies on good faith from the plugin provider. It works great in closed, trusted environments but it cannot scale across trust boundaries.

It just begs for spam and fraud, with badly-behaving services advertising lowest-cost, highest-quality, totally amazing services. It feels like the web circa 1995… lots of implicit trust that isn’t sustainable.

nlawalker

Totally agree - the true source of all of the value here is the new incentive to write very simple services with very simple documentation and to make that documentation easily discoverable.

It fills a gap that exists in most service documentation: an easily discoverable page for developers (specifically, those who already know how to use their ecosystem of choice's HTTP APIs) that has a very short list of the service's most fundamental functionality with a simplified specification so they can go and play around with it.

croes

Too bad that the S in MCP stands for security

_pdp_

The way the function is described to the LLM matter. Even when the parameters are the same and the effect is the same the title and description can fundamentally influence how the task is performed.

The other issue is that you cannot think of MCP servers as universal pluggable systems that can fit into every use-case with minimal wrapping. Real world scenarios require pulling a lot of tricks. Caching can be done at higher or lower level depending on the use-case. Communication of different information from the MCP server also is different depending on the use-case (should we replace these long IDs for shorter IDs that are automatically translated to longer ones). Should we automatically tinyurl all the links to reduce hallucination? Which operations can be effectively solved with pure algorithms (compress 2-3 operations into one) because doing this with LLMs is not only error-prone but also not optimal (imagine using LLM to grep for strings in many files one by one using tool calls rather than using grep to search for strings - not the same)

There are so many things to consider. MCP is nice abstraction but it is not a silver bullet.

Speaking from experience with actual customers and real use-case.

pjmlp

Everyone keeps rediscovering OS IPC extensions via RPC.

Not only that, apparently we finally got Jini and Agent Tcl back!

https://www.usenix.org/conference/fourth-annual-usenix-tcltk...

https://www.eetimes.com/jini-basics-interrelating-with-java/

turlockmike

MCP is just JSON rpc with one useful command (list-tools). Turns out that's probably all we ever needed.

derwiki

WSDL has entered the chat

Alex_L_Wood

The more I look into MCP, the less I understand the hype. It's an OK API that describes how to fetch list of tools and resources and retrieve them, somehow this is supposed to be the standard for AI and environment communication, and...that's it? Am I missing something vital there?

baobun

The emperor is indeed naked.

firasd

I've been doing some really fun things with MCP

First of all I think this kind of localhost/stdio MCP is kind of not 'The Way' besides for playing around. I've been working on SSE/remote/cloud-based MCP

Here's a fun example: https://x.com/firasd/status/1945233853414826060

("my landing page is in a text editor with iframe preview. I ask Claude to edit it—the doc gets transcluded into the AI chat, gets surgically edited. I reload. (All on mobile!)")

I'm working on a starter template like a DevTools MCP that people can deploy on Cloudflare and oAuth with their github account and it provides tools like url_fetch for people to use privately in their AI chats/tools. First I have to figure out the oAuth stuff myself but will make it a public repo after that and post on here

PS. I also think tool use is really underrated and stuff like MCP unlocks a kind of agentic behavior 99% of AI users have never seen.

eitland

How long before companies start closing this "loophole"?

And with the cynicism out of the way, what an insightful and refreshing article!

cube00

I wouldn't call it cynicism.

Web services started as the same open utopia. Once everyone was in they jacked up the prices so high it killed the initial consumer apps (eg. Google Maps and Reddit)

Nobody is giving access to their walled garden for the good of open-anything. It's what the VCs and stockholders demand and they're the ones putting up the cash to keep this AI hype funded in spite of it running at a loss.

Given they haven't put security into MCP yet, I guess they'll need to do that first before they move on reinventing API keys so they can charge for access and hailing that as the next reason the line will go up.

dragonwriter

Some remote MCPs will get locked down to know client endpoints, same as any other HTTP service, so if companies are really concerned about them being AI-use-only and don't mind cutting off some AI use to preserve that exclusivity, they’ll lock it down to the big known hosted AI frontends (assuming those end up supporting MCP; the only one I know of that does currently is ChatGPT Deep Research, and only for very limited shapes of servers.)

OTOH, that only effects those services, it won't stop people from leveraging MCP as, say, a generic local plugin model for non-AI apps.

ecocentrik

If MPC develops as an open standard and this "loophole" gains enough popularity, then companies can only really limit access to their services. This seems like a generally good thing that will enhance automation. In some cases it doesn't really matter if the automation comes from agents, hard coded software or a combination of the two.

crazygringo

Previous discussion (43 days ago, 355 comments):

https://news.ycombinator.com/item?id=44404905

827a

> MCP thinks it's for giving context to AI models. But really? It's just a really good protocol for making things talk to other things.

MCP has very little utility outside of LLMs. The article begins by saying "but what if we remove the AI", then goes back on that thesis by saying "but if there was an AI between these things, then it becomes a universal plugin system". Which is true, but its missing the critical bit: The AI itself is the universal plugin system, not MCP. And, beyond that, its not even the AI: Its natural language. Language is the universal plugin system.

Its not unbelievable that there exists an alternate reality where the Anthropic researchers that invented MCP instead simply leveraged a slightly extended form of OpenAPI specs. The only functional difference is that MCP was a stdin/stdout format first, and added HTTPS later, but sister problems in this domain like LSP just skipped stdin/stdout and went straight to locally-hosted HTTPS anyway. What matters isn't MCP, OpenAPI, or anything like that; what matters is the LLM itself, its tool calling capability, and the tool calling harness. The catalogue of available tools can be in any format; and, truly, the LLM does not care what format its in.

moduspol

And even then: the key value of MCP is that it's "simplified." Few servers are implementing anything you couldn't already do for years with their REST APIs.

And why? Because it dumbs it down to the point that the LLM can understand it (often, in part, by removing security concerns). But these are LLMs! They're supposed to be smart! Isn't it a supposedly temporary failure that I can't just point the LLM at an OpenAPI spec (or use HATEOAS) and be good to go?

Will this be doable in the next few months with better models? If so, why bother with MCP? If this won't be doable in the next few months / years, then how smart do we really expect these LLMs to be?

radixdiaboli

> but if there was an AI between these things, then it becomes a universal plugin system

I've reread the article a couple times and I can't see where it says that you need to use an LLM to make it universal. I'm going to go so far as to say that it doesn't say that.

827a

I agree, the article does explicitly say that; the thesis of the article and the information it presents to support that thesis are entirely at odds. That's what I'd argue this is a poor article, just an advertisement for the world's eighty-sixth todo app; yet it keeps getting re-posted here.

dragonwriter

> then goes back on that thesis by saying "but if there was an AI between these things, then it becomes a universal plugin system".

This is neither an accurate quote of the article, nor an accurate paraphrase of something the article says, nor an accurate description of something subtly implied by the article without directly being said.

The article, in fact, gives an example without AI in the middle.

ethan_smith

MCP's key innovation isn't the format but its unidirectional, stateless design pattern that makes it fundamentally easier to implement than bidirectional protocols like OpenAPI, which is why it's gaining traction as a universal connector beyond just LLM contexts.

827a

I really don't know where you're coming from with that statement.

1. No one asserted that MCP's key innovation was its format. In fact, what I strongly, almost explicitly implied with my previous comment is that MCP has made no key innovations beyond its marketing system (which does matter and has forced a lot of companies who would never have operated in this space to make an MCP system, and that is good. I like MCP.).

2. MCP is fundamentally bidirectional, not unidirectional. Its a schematized request-response protocol that defines a ton of the same primitives that OpenAPI defines, like available RPC methods, authorization, request parameters, and response schemas [1]. Of course, OpenAPI goes beyond that into HTTP-specific characteristics like status codes, and MCP goes beyond that into LLM-specific characteristics like a prompt catalogue.

3. I'm not aware of any problem domain outside of LLMs that is adopting MCP. In fact, its adoption even within the world of LLMs has been lackluster at best [2].

[1] https://modelcontextprotocol.io/docs/learn/architecture#data...

[2] https://modelcontextprotocol.io/clients