Over the last few days I have had the opportunity to take a deeper look at Anthropic's new [Model Context Protocol](https://www.anthropic.com/news/model-context-protocol). This is the latest development in what I like to refer to as the *LLM extensibility* space. This space focuses, enabling third parties to enhance and improve LLMs by creating their own agents / apps which are more specialized in domain specific knowledge.
For an example, take tiny payment processing company called [Stripe](https://docs.stripe.com/). They want to make it ridiculously easy for developers to install their product so they decide to build an AI Agent that will:
1. Ingest the context of your Github repository
2. Make files changes
3. Test against the Stripe API logs to see that an install was successful
Now Stripe wants to make this work anywhere that an LLM is being used. This could include, openai.com, claude.ai, VSCode, cursor, girlfriend.ai, github.com, codium, this list goes on. Each of these is a different client that Stripe would need to integrate with. Stripe having a mere 7000 employees certainly doesn't have the bandwidth to handle integrating with all the platforms individually. Even if they could, they are a payment processor and don't want to shift their core focus.
# MCP saves tiny startup Stripe!
Before making the rash decision to repurpose 100% of Stripe's workforce to building out agents for each of these clients, a janitor at Stripe identifies the novel Model Context Protocol. Shortly, Stripe realizes that instead of building for each of these clients, they can build a single agent that works everywhere. Horaah! Stripe is saved!
# The reality
MCP is brand new (at the time of me writing this, it was announced two weeks ago). Therefore it has limited adoption. Here are the current clients who support MCP (as of 12/10/24):
![[supported_clients.png]]
Its a good start, but its got a little while to go before Stripe is saved.
# Ecosystemization
At the end of the day, Anthropic released this protocol because they want Claude to be able to benefit from specialized agents. That said, there have been several attempts before Claude to introduce this idea of LLM extensions, so lets take a look at some of them.
## GPTs
On November 6th 2023, OpenAI introduced GPTs. Touted as OpenAI's "App Store", this was one of the first providers to support LLM extensibility. GPTs were cool, and present a slightly more useful version of ChatGPT in some cases. For example, the [logo maker GPT](https://chatgpt.com/g/g-gFt1ghYJl-logo-creator) provides nice utility over base ChatGPT. There are thousands of other GPTs as well, but *I speculate* that this isn't the money making market that they were looking for. They promised a revenue sharing model, but from what I can tell, this seems not to have [panned out well](https://community.openai.com/t/is-revenue-sharing-dead-q1-2024-long-over-no-revenue-sharing-news/804196).
Regardless, lets take a look at the pros and cons at this LLM Extensibility attempts.
| **Pros** | **Cons** |
| ------------------------------------------------------------- | ------------------------------------------- |
| So easy to make, literally takes 5 minutes | Huge lack of customizability |
| Basic tool calling (OpenAPI Spec) | Limited discoverability / visibility |
| Built in default capabilities (code interpreter, Dalle, etc.) | Only supported in chatgpt.com (1 client) |
| Free to use (not to create) | Not all that different from regular ChatGPT |
So OpenAI's extensibility platform made some solid attempts particularly around ease of use, but hasn't provided enough flexibility around their ecosystem to make it worth building cool things.
## Github Copilot / VSCode
Perhaps the absolute best positioned company in the world right now to build a strong ecosystem is Github Copilot / VSCode. Their user base is a bunch of developers (so very willing to try new things), and they literally own the whole stack from the models that run inference, to the IDE people code in. Unfortunately, they still operate as separate entities under Microsoft which means they work on features separately. Still, they have presented a strong contender in LLM extensibility game!
*Note: [Github Copilot](https://github.com/marketplace?type=apps&copilot_app=true) extension and [VSCode Chat](https://code.visualstudio.com/api/extension-guides/chat) extensions are two separate LLM Extensibility path, but for the sake of simplicity, I take the union of their features.*
| **Pros** | **Cons** |
| ------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------- |
| VSCode & Github marketplace gets solid natural installs | Challenging to create |
| Highly customizable | Unintuitive install UX |
| Extensions will work everywhere copilot does (ie. VSCode, Jetbrains, VIM, Github.com, etc.) | Limited discoverability / visibility |
| Strong community support | Lack of fluidity between Github extensions and VSCode chat extensions |
| Github / VSCode / Azure ecosystem is super powerful. Commands like `"create me a PR with this fix"` are easier to build | Requires copilot subscription to use |
| Model Agnostic (supports most models that Azure does) | |
| Free to create (not to use) | |
| Strong client support | |
Github / VSCode have made a really interesting and powerful submission in the LLM Extensibility space. These extensions seems to be gaining some solid momentum, but still several improvements to make before they are well adopted.
## MCP
It is a bit unfair to present this protocol as a "extension" to anthropic. But I wanted to make a pros and cons table about MCP so here it is:
| **Pros** | **Cons** |
| ------------------------------------------------------------------------------------------------------------ | ----------------------------------------- |
| In theory, could be adopted by ANYBODY (eg. [Replit](https://x.com/alexalbert__/status/1861464496885375054)) | Challenging to create |
| Highly customizable and generalizable | Very unintuitive install UX |
| Works on few different clients listed above ^^ | Very limited discoverability / visibility |
| Strong community support (but very new community) | Moderate client support |
| Free to create & use (with limits) | |
| Model agnostic | |
Now this doesn't go into the pros and cons of the protocol itself, instead it looks at the benefits of building an MCP server. As you can tell, it is a very strong offering. Over the next few months to years, we will see how much this protocol can deliver on its promises, but its exciting to see a well thought out attempt to unify and generalize LLM extensibility.
# Afterword
If you can't tell, I am very bullish on the LLM extensibility space. I would love to see it become a new sort of "App Store" where companies like Stripe, Sentry, Twillio, and more are all incentivized to build agents into these LLM clients. I believe apps will change a lot in the future because of these attempts. I don't know what they will become, but I am pretty sure LLMs will play an important role.
Also, if I missed any extensibility ecosystems please let me know and I will add them to this post!