Remix.run Logo
Introducing The Model Context Protocol(anthropic.com)
176 points by benocodes 3 hours ago | 53 comments
ianbutler 2 hours ago | parent | next [-]

I’m glad they're pushing for standards here, literally everyone has been writing their own integrations and the level of fragmentation (as they also mention) and repetition going into building the infra around agents is super high.

We’re building an in terminal coding agent and our next step was to connect to external services like sentry and github where we would also be making a bespoke integration or using a closed source provider. We appreciate that they have mcp integrations already for those services. Thanks Anthropic!

bbor 2 hours ago | parent [-]

I've been implementing a lot of this exact stuff over the past month, and couldn't agree more. And they even typed the python SDK -- with pydantic!! An exciting day to be an LLM dev, that's for sure. Will be immediately switching all my stuff to this (assuming it's easy to use without their starlette `server` component...)

somnium_sn 3 hours ago | parent | prev | next [-]

@jspahrsummers and I have been working on this for the last few months at Anthropic. I am happy to answer any questions people might have.

singularity2001 28 minutes ago | parent | next [-]

Is there any way to give a MCP server access for good? Trying out the demo it asked me every single time for permission which will be annoying for longer usage.

slalani304 2 hours ago | parent | prev | next [-]

Super cool and much needed open-standard. Wondering how this will work for websites/platforms that don't have exposed API's (LinkedIn, for example)

spullara 41 minutes ago | parent [-]

you build an MCP that does great calling using your own cookies and browser to get around their scraping protections.

throwup238 2 hours ago | parent | prev | next [-]

Are there any resources for building the LLM side of MCP so we can use the servers with our own integration? Is there a specific schema for exposing MCP information to tool or computer use?

somnium_sn 2 hours ago | parent [-]

Both Python and Typescript SDK can be used to build a client. https://github.com/modelcontextprotocol/typescript-sdk/tree/... and https://github.com/modelcontextprotocol/python-sdk/tree/main.... The TypeScript client is widely used, while the Python side is more experimental.

In addition, I recommend looking at the specification documentation at https://spec.modelcontextprotocol.io. This should give you a good overview of how to implement a client. If you are looking to see an implemented open source client, Zed implements an MCP client: https://github.com/zed-industries/zed/tree/main/crates/conte...

If you have specific questions, please feel free to start a discussion on the respective https://github.com/modelcontextprotocol discussion, and we are happy to help you with integrating MCP.

throwup238 an hour ago | parent [-]

Thanks! Do Anthropic models get extra training/RLHF/fine-tuning for MCP use or is it an extension of tool use?

kseifried 2 hours ago | parent | prev | next [-]

For additional context the PyPi package: https://pypi.org/project/mcp/

And the GitHub repo: https://github.com/modelcontextprotocol

s3tt3mbr1n1 3 hours ago | parent | prev | next [-]

First, thank you for working on this.

Second, a question. Computer Use and JSON mode are great for creating a quasi-API for legacy software which offers no integration possibilities. Can MCP better help with legacy software interactions, and if so, in what ways?

jspahrsummers 3 hours ago | parent [-]

Probably, yes! You could imagine building an MCP server (integration) for a particular piece of legacy software, and inside that server, you could employ Computer Use to actually use and automate it.

The benefit would be that to the application connecting to your MCP server, it just looks like any other integration, and you can encapsulate a lot of the complexity of Computer Use under the hood.

If you explore this, we'd love to see what you come up with!

tcdent 2 hours ago | parent | prev | next [-]

Do you have a roadmap for the future of the protocol?

Is it versioned? ie. does this release constitute an immutable protocol for the time being?

jspahrsummers an hour ago | parent | next [-]

You can read how we're implementing versioning here: https://spec.modelcontextprotocol.io/specification/basic/ver...

It's not exactly immutable, but any backwards incompatible changes would require a version bump.

We don't have a roadmap in one particular place, but we'll be populating GitHub Issues, etc. with all the stuff we want to get to! We want to develop this in the open, with the community.

bbor an hour ago | parent | prev [-]

Followup: is this a protocol yet, or just a set of libraries? This page is empty: https://spec.modelcontextprotocol.io/

jspahrsummers an hour ago | parent [-]

Sorry, I think that's just the nav on those docs being confusing (particularly on mobile). You can see the spec here: https://spec.modelcontextprotocol.io/specification/

bbor 37 minutes ago | parent [-]

Ahh thanks! I was gonna say it's broken, but I now see that you're supposed to notice the sidebar changed and select one of the child pages. Would def recommend changing the sidebar link to that path instead of the index -- I would do it myself but couldn't find the sidebar in your doc repos within 5 minutes of looking.

Thanks for your hard work! "LSP for LLMs" is a fucking awesome idea

startupsfail an hour ago | parent | prev | next [-]

Is it at least somewhat in sync with plans from Microsoft , OpenAI and Meta? And is it compatible with the current tool use API and computer use API that you’ve released?

From what I’ve seen, OpenAI attempted to solve the problem by partnering with an existing company that API-fys everything. This feels looks a more viable approach, if compared to effectively starting from scratch.

instagary 2 hours ago | parent | prev | next [-]

What is a practical use case for this protocol?

anaisbetts 24 minutes ago | parent | next [-]

Here's a useful one that I wrote:

https://github.com/anaisbetts/mcp-youtube

Claude doesn't support YouTube summaries. I thought that was annoying! So I added it myself, instead of having to hope Anthropic would do it

somnium_sn 2 hours ago | parent | prev [-]

A few common use cases that I've been using is connecting a development database in a local docker container to Claude Desktop or any other MCP Client (e.g. an IDE assistant panel). I visualized the database layout in Claude Desktop and then create a Django ORM layer in my editor (which has MCP integration).

Internally we have seen people experiment with a wide variety of different integrations from reading data files to managing their Github repositories through Claude using MCP. Alex's post https://x.com/alexalbert__/status/1861079762506252723 has some good examples. Alternatively please take a look at https://github.com/modelcontextprotocol/servers for a set of servers we found useful.

benocodes 2 hours ago | parent | prev [-]

Seems from the demo videos like Claude desktop app will soon support MCP. Can you share any info on when it will be rolled out?

jspahrsummers 2 hours ago | parent [-]

Already available in the latest at https://claude.ai/download!

synack 43 minutes ago | parent [-]

No Linux version :(

jascha_eng an hour ago | parent | prev | next [-]

Hmm I like the idea of providing a unified interface to all LLMs to interact with outside data. But I don't really understand why this is local only. It would be a lot more interesting if I could connect this to my github in the web app and claude automatically has access to my code repositories.

I guess I can do this for my local file system now?

I also wonder if I build an LLM powered app, and currently simply to RAG and then inject the retrieved data into my prompts, should this replace it? Can I integrate this in a useful way even?

The use case of on your machine with your specific data, seems very narrow to me right now, considering how many different context sources and use cases there are.

jspahrsummers 43 minutes ago | parent | next [-]

We're definitely interested in extending MCP to cover remote connections as well. Both SDKs already support an SSE transport with that in mind: https://modelcontextprotocol.io/docs/concepts/transports#ser...

However, it's not quite a complete story yet. Remote connections introduce a lot more questions and complexity—related to deployment, auth, security, etc. We'll be working through these in the coming weeks, and would love any and all input!

jascha_eng 21 minutes ago | parent [-]

Will you also create some info on how other LLM providers can integrate this? So far it looks like it's mostly a protocol to integrate with anthropic models/desktop client. That's not what I thought of when I read open-source.

It would be a lot more interesting to write a server for this if this allowed any model to interact with my data. Everyone would benefit from having more integration and you (anthropic) still would have the advantage of basically controlling the protocol.

bryant an hour ago | parent | prev | next [-]

> It would be a lot more interesting if I could connect this to my github in the web app and claude automatically has access to my code repositories.

From the link:

> To help developers start exploring, we’re sharing pre-built MCP servers for popular enterprise systems like Google Drive, Slack, GitHub, Git, Postgres, and Puppeteer.

jascha_eng an hour ago | parent [-]

Yes but you need to run those servers locally on your own machine. And use the desktop client. That just seems... weird?

I guess the reason for this local focus is, that it's otherwise hard to provide access to local files. Which is a decently large use-case.

Still it feels a bit complicated to me.

singularity2001 26 minutes ago | parent | prev [-]

For me it's complementary to openai's custom GPTs which are non-local.

orliesaurus an hour ago | parent | prev | next [-]

How is this different from function calling libraries that frameworks like Langchain or Llamaindex have built?

quantadev 42 minutes ago | parent [-]

After a quick look it seemed to me like they're trying to standardize on how clients call servers, which nobody needs, and nobody is going to use. However if they have new Tools that can be plugged into my LangChain stuff, that will be great, and I can use that, but I have no place for any new client/server models.

ado__dev 2 hours ago | parent | prev | next [-]

You can use MCP with Sourcegraph's Cody as well

https://sourcegraph.com/blog/cody-supports-anthropic-model-c...

bentiger88 5 minutes ago | parent | prev | next [-]

One thing I dont understand.. does this rely on vector embeddings? Or how does the AI interact with the data? The example is a sqllite satabase with prices, and it shows claude being asked to give the average price and to suggest pricing optimizations.

So does the entire db get fed into the context? Or is there another layer in between. What if the database is huge, and you want to ask the AI for the most expensive or best selling items? With RAG that was only vaguely possible and didnt work very well.

Sorry I am a bit new but trying to learn more.

orliesaurus a few seconds ago | parent [-]

it doesnt feed the whole DB into the context, it gives Claude the option to QUERY it directly

outlore 2 hours ago | parent | prev | next [-]

i am curious: why this instead of feeding your LLM an OpenAPI spec?

jasonjmcghee an hour ago | parent | next [-]

It's not about the interface to make a request to a server, it's about how the client and server can interact.

For example:

When and how should notifications be sent and how should they be handled?

---

It's a lot more like LSP.

quantadev 40 minutes ago | parent | next [-]

Nobody wants their LLM API layer controlling anything about how their clients and servers interact though.

pizza 14 minutes ago | parent [-]

I do

outlore an hour ago | parent | prev [-]

makes sense, thanks for the explanation!

pizza an hour ago | parent | prev | next [-]

I think OpenAI spec function calls are to this like what raw bytes are to unix file descriptors

quotemstr an hour ago | parent | prev [-]

Same reason in Emacs we use lsp-mode and eglot these days instead of ad-hoc flymake and comint integrations. Plug and play.

orliesaurus an hour ago | parent | prev | next [-]

Are there any other Desktop apps other than Claude's supporting this?

jdorfman an hour ago | parent [-]

Cody (VS Code plugin) is supporting MCP https://sourcegraph.com/blog/cody-supports-anthropic-model-c...

andrewstuart 38 minutes ago | parent | prev | next [-]

Can someone please give examples of uses for this?

recsv-heredoc 2 hours ago | parent | prev | next [-]

Thank you for creating this.

keybits 20 minutes ago | parent | prev | next [-]

The Zed editor team collaborated with Anthropic on this, so you can try features of this in Zed as of today: https://zed.dev/blog/mcp

WhatIsDukkha an hour ago | parent | prev | next [-]

I don't understand the value of this abstraction.

I can see the value of something like DSPy where there is some higher level abstractions in wiring together a system of llms.

But this seems like an abstraction that doesn't really offer much besides "function calling but you use our python code".

I see the value of language server protocol but I don't see the mapping to this piece of code.

That's actually negative value if you are integrating into an existing software system or just you know... exposing functions that you've defined vs remapping functions you've defined into this intermediate abstraction.

ethbr1 16 minutes ago | parent | next [-]

Here's the play:

If integrations are required to unlock value, then the platform with the most prebuilt integrations wins.

The bulk of mass adopters don't have the in-house expertise or interest in building their own. They want turnkey.

No company can build integrations, at scale, more quickly itself than an entire community.

If Anthropic creates an integration standard and gets adoption, then it either at best has a competitive advantage (first mover and ownership of the standard) or at worst prevents OpenAI et al. from doing the same to it.

(Also, the integration piece is the necessary but least interesting component of the entire system. Way better to commodify it via standard and remove it as a blocker to adoption)

resters 43 minutes ago | parent | prev [-]

The secret sauce part is the useful part -- the local vector store. Anthropic is probably not going to release that without competitive pressure. Meanwhile this helps Anthropic build an ecosystem.

When you think about it, function calling needs its own local state (embedded db) to scale efficiently on larger contexts.

I'd like to see all this become open source / standardized.

jerpint 7 minutes ago | parent [-]

im not sure what you mean - the embedding model is independent of the embeddings themselves. Once generated, the embeddings and vector store should exist 100% locally and thus not part of any secret sauce

benocodes 3 hours ago | parent | prev [-]

Good thread showing how this works: https://x.com/alexalbert__/status/1861079762506252723

kseifried 2 hours ago | parent [-]

Twitter doesn't work anymore unless you are logged in.

https://unrollnow.com/status/1861079762506252723