Anthropic and the Model Context Protocol with David Soria Parra

13 May 2025 · 51 min

Ask about this episode

Ask anything about it. ChatGPT or Claude reads this page and answers with the times it was said.

Connect VO and ask about every podcast you hear, including the moments you saved. Add to ChatGPT · Add to Claude

In short

Software Engineering Daily Podcast Summary

Episode Title

Anthropic and the Model Context Protocol with David Soria Parra

Episode Overview In this episode, David Soria Parra, a member of the technical staff at Anthropic, discusses the Model Context Protocol (MCP), an open standard designed to connect AI assistants with various data sources and tools. By standardizing connections, MCP enables AI models to access real-time information, improving the accuracy and context-awareness of their responses.

Key Participants

  • Host: Jordy Mon Companies
  • Guest: David Soria Parra, Software Engineer at Anthropic

---

Key Topics Discussed

  1. Introduction to David Soria Parra
  2. Background in PHP development and contributions to open-source projects like Mercurial.
  3. Experience working at Facebook (Meta) and venture capital at Sutter Hill.
  4. Transition to Anthropic, focusing on developing the Model Context Protocol.
  1. Model Context Protocol (MCP)
  2. Purpose: Connects AI assistants to various data sources (APIs, codebases, content repositories).
  3. Benefits:
  4. Eliminates the need for bespoke integrations.
  5. Creates secure, scalable connections to relevant data.
  6. Enables real-time information access for increased context-aware responses.
  7. Key Elements:
  8. Tools: Provide specific functionalities to the application (e.g., custom logic).
  9. Resources: Files that mimic file behavior allowing context interactions.
  10. Prompts: Templates for predefined queries to the MCP server.
  1. Comparison with Language Server Protocol (LSP)
  2. MCP draws inspiration from LSP for its structure and interaction model.
  3. LSP standardizes language support across different IDEs, reducing the need for individual implementations.
  1. Technical Details of MCP
  2. Utilizes JSON-RPC for communication between clients and servers.
  3. Includes commands like invoke, response, and error handling.
  4. Supports state management through its server applications, enabling complex interactions.
  1. Collaboration and Community Engagement
  2. The rapid adoption of MCP by companies such as OpenAI and Google highlights its relevance.
  3. Encourages contributions and a community-driven approach to development.
  4. Discussion on the need for formal governance structures as the project matures.
  1. Future Directions
  2. Exploration of additional features for better tool discovery and authorization in cloud environments.
  3. Interest in how MCP can evolve to accommodate new technologies and approaches.
  1. Personal Insights and Advice for Developers
  2. Encourages experimentation with MCP through SDKs (Python, TypeScript, Java, etc.).
  3. Urges developers to engage with the community—contributing code, documentation, and sharing ideas.
  4. Stresses the importance of understanding the protocol to fully leverage its capabilities.

---

Conclusion David Soria Parra emphasizes the transformative potential of the Model Context Protocol in enhancing AI interactions with various tools and data sources. As MCP continues to grow within the developer community, he encourages experimentation and collaboration to unlock new possibilities in the AI field.

Further Recommendations

  • Explore MCP: Developers are encouraged to read the MCP protocol documentation, experiment with SDKs, and engage with the community to contribute to its evolution.
  • Stay Updated: Follow developments in the MCP space as it evolves along with advancements in AI and developer tools.

---

Links

  • [Podcast Episode](https://softwareengineeringdaily.com/2025/05/13/anthropic-and-the-model-context-protocol-with-david-soria-parra/)
  • [David Soria Parra on LinkedIn](#) (Placeholder for LinkedIn URL)
  • [Anthropic's Official Site](#) (Placeholder for Anthropic's site URL)

---

This summary encapsulates the main discussions and insights from the episode, providing a useful reference for anyone interested in the advancements of the Model Context Protocol and its implications in software engineering and AI development.

Written by AI. May contain mistakes. Listen to the episode to check what was said.

Hear the part that matters, and keep it.Open this episode in VO. Double tap your headphones to save a moment as you listen.
Get VO free

Transcript

Automatic transcript. May contain errors.

0:00The Model Context Protocol, or MCP, is a new open standard that connects AI assistants to arbitrary data sources and tools, such as codebases, APIs, APIs, and content repositories. Instead of building bespoke integrations for each system, developers can use MCP to establish secure, scalable connections between AI models and the data they need. By standardizing this connection layer, MCP enables models to access relevant information in real time, leading to more accurate and context-aware responses. David Soria Parra is a member of the technical staff at Anthropic, where he co-created the Model Context Protocol.

0:39He joins the podcast to talk about his career and the future of context-aware AI. This episode of Software Engineering Daily is hosted by Jordy Mon Companies. Check the show notes for more information on Jordy's work and where to find him.

1:05David, welcome to Software Engineering Daily. Hi, Jordy. How are you doing? I'm doing well. So why don't you introduce yourself? Yeah, happy to. I'm David. I'm a member of technical staff at Anthropic. And before that, I've worked roughly like 10 years at Facebook and had like a little stinch in a venture capital called Sutter Hill. And yeah, I've been out since a year I'm at Anthropic as a software engineer. So that is the meat of the conversation, your work at Anthropic, which I'm sure goes beyond MCP, which would be the core of the conversation. But I really want to go back, even before your days at Meta?

1:40Because you started your career as a PHP developer, as a Mercurial contributor. Walk us through, what got you engaged, I guess, in computer science, in programming? And what was your first project? What were your first steps in this world? Yeah, well, thank you. That I have been doing software engineering or like programming probably since I'm 14. It started very simple. Like I've like, I got access to the web and wanted to build my own little websites. And at the time, you know, you had guest books and forums and you're like, eventually you're going to be like, how do you build one of those? And that's how you discover things like PHP and others.

2:16And then how I started learning PHP at like the age of like 14, 15 and I'm doing it since then. And then over the years, I was very lucky enough that some people in the local PHP community took a liking to me and like had me work for them. And through that, I actually started engaging not just with PHP as a language that I'm using, but also with the wider community. Just as you know, eventually you ended up on adding your first patches to the actual language. Instead of writing PHP, you're suddenly writing C. That quite early, around the early 2000s, I started contributing to PHP itself and worked in that field.

2:54And I was just very lucky enough that I had a bunch of mentors along the way that helped me getting engaged into the open source community. And then from there on, I think I was just hooked on open source and the ability to just go to a big project and find a bug, fix it myself and, you know, help move this thing a little bit forward. And, you know, that's how I've approached a lot of the projects over the years. And that's how I got from PHP to Mercurial, you know, dabbled a little bit into Git and other things. And so that's a bit of like the early, early days for me. Yes, exactly. So PHP is programmed in C, and so is Git, right?

3:32I didn't know about Mercurial. So is it programmed in C? How did you fall into Mercurial and not Git? Because it feels that even back in the day, I mean, we're talking about ancient, quote unquote, ancient times in terms of the internet, at least. I was there, so I'm dating myself here too. I think it already seemed that Git was inevitable, or was it not? Was it Mercurial that was the hype back in the day? So actually Mercurial is written in Python. There are some key parts to that that are written in C, the most important parts that require performance. All of this actually came out of the work on PHP.

4:05So I was quite interested in source control systems in general. And I was looking into like, what's the next version control system for the PHP product itself? And at the time it was like CVS, it was just old dated version control system that had a lot of issues. and I was looking around and someone was pointing me towards these decentralized version control systems and they were pointing me towards Git. And at the time, and I'm not sure you remember this, but at the time, these version control systems, it was not quite clear which one is the dominating one and there were plenty of those. And there was Bazaar, there was Mercurial, and then there was Git.

4:39And it was a bit like the editor work from the early 90s between Vim and Emacs. There was a bit of the decentralized version control system wars. I love BigQuery for two reasons. I think it was much easier to reason and contribute to it because it was written in Python. And it was very easy to write an extension, for example, an ability that you did not have in Git. You had to contribute to the core Git project. But in BigQuery, you could write an extension and contribute that. And that was a way lower bar and way easier to do. And really took a liking to that. And then the second of all, I think the Linux community was really the founding community for the Git community.

5:19And some of the harshness of that community took over to the Git side and the directness, where I think some of the Mercurial folks were a bit more welcoming and encouraging. I think those two things flew together. And I just liked the system a little bit more. And so that's how I started contributing to Mercurial. Rather than to Git, I had some patches in Git, but eventually I just ended up working for the most part on Mercurial. I didn't know that about Mercurial. So thanks for that piece of information about being built in Python mostly. I think it's true that contributing to the Linux project, the kernel, Git is rougher.

5:53It's got much better throughout the years, but it is true that, well, Junior Humano, the current maintainer of, or one of the maintainers of Git, has done an excellent job in that sense, sort of like keeping everything. But back in the day, I think it was rougher. It seems like your career was destined to end at what was previously known as Facebook, now Meta, because Meta is known for many things, for its products mostly, but from a developer perspective, from the software engineer perspective, it's because they maintain and use a quite peculiar stack. I would have never thought that a company that is listed in the public stock market that is so incredibly fast at developing and delivering software would rely on PHP, a specific flavor of php and mercurial among other things bark and etc so it feels that your career was designed had it all a yeah was designed with joining meta eventually but i'm sure that was not the case but yeah if you can talk about what drove you to meta eventually or facebook back in the day and if you can talk about the stack of meta because it's i find it quite funny to be honest to know about that that they keep their own flavor if you can explain that of php of mercurial etc Yeah, absolutely.

7:07Funny enough, I think nobody has ever looked at this as the whole thing, like, oh, you were destined to join Facebook. But I think it makes sense in retrospective quite a lot. And I certainly feel way more aligned with Facebook than, for example, Google, which has slightly different approaches to this. The interesting bit is like I was coming out of university by the end of like 2012 or something along the lines. And I was not considering joining a big American company because I was like living in Germany. And I just worked in these like little companies. And I would have probably not by myself went and go and apply to Facebook.

7:45But it happens that the Mercurial community itself like got together like once a year. And we were sitting in Stockholm and at the time for one of these events. And at the time, Facebook had quite an interest in McCurril because they were in the midst of choosing what's their version control system that they will have to work with for the next 10 plus years. As it turned out, eventually they will choose McCurril. And one of the people from Facebook was there and he was like, we were going to build a team around this. Why don't you come and join? And that's honestly how this happened. And, you know, I interviewed, I got the job, I relocated from Germany to first Vancouver and then later to the Bay Area because to just continue working on source control.

8:27And so I think that was really, really cool. And that goes like back into this unique stack that Facebook, similar to Google, are building or have been built, have built, is that at the time they had challenges as part of the scale that they had and particularly the growth that they had that just few people had. the world. And they were quite unique in a company in that regard, that they required a set of infrastructure and a set of decisions that they had to make that just nobody else was facing. And one of these decisions was, for example, do we want to have one big repository for everyone, or do we want to have a thousand repositories for each team separately?

9:08And they're very different trade-offs to be made, and there's a lot of in-depth of why you would choose one or the other. But Facebook eventually chose, similar to Google and probably very inspired by Google, a monorepository approach. And with that, you inherently know you will have scaling issues because you can draw these graphs of commit rates and sizes of things that you will require your own source control system. You will require your own build system and all the stack on top of that. And at the same time, back to the PHP part, at the same time, your code grows at such a rapid rate that changing the programming language after you have prototyped basically Facebook and PHP becomes impossible.

9:47So it becomes way more efficient for these companies to go and optimize by building a team. And so like you build a version control system, you tend people and you tend people optimize the hell out of PHP way cheaper than making a thousand people change version control system or change programming language. And so that's a lot of these, how these stacks came to be because there were issues that nobody else had before. Okay, so it seems that your first stay, your first stint, the first part of your tenure at Facebook, I'm going to keep calling it Facebook because technically it was at that time, was on build tools, on the performance, enabling software engineers there to contribute to the minor repo, etc.

10:30And mostly in source code management, as you just explained. But you then turned into what was, I can only presume, very, very novel virtual reality, augmented reality stack of Facebook. Is that correct? Mostly, again, from the development aspect of it, right? So when Oculus got acquired by Facebook in 2015, I was one of the first engineers who helped them incorporate, basically, Oculus into the Facebook development infrastructure. And with that, there's a lot of very different challenges because the Facebook stack was built for web development, for end-to-end, the way the assumptions made in the CI system, the assumptions made in the source control system.

11:07And a lot of them did not hold through when you suddenly add Windows to the mix. and you add large file systems. Exactly. Give us a sense of what you found in the Oculus stack. Yeah, the Oculus stack, right? It was like a very traditional gaming stack. You would have like a very centralized version control system, usually Perforce, that artists know how to deal with, that handles large files very well. You have CI systems that understand how to hold some form of state. So they built the game or the engine once, and then they keep the cache around for it. And all of these things do not happen in the web world where you deal with way smaller repositories, you deal with way smaller artifact sizes, and things are very ephemeral in the CI system.

11:50And so it was just like these massive different aspects. And then, of course, the really big one is Facebook was a Linux shop. Like the servers, this Linux, everything is a Unix-based thing. You develop on a Mac and you deploy in Linux. And suddenly you bring Windows into the mix. and everything falls apart because it's like nothing works anymore because you work against 15 years or 10 years of assumptions made around Linux, right? And so that was a big, big lift for us. Oh my God, that must have been a ton of work and fascinating. Quite fascinating, not necessarily fun at all times. Okay, noted.

12:24So let's dive into model context protocol, which you co-created. So give us a sense of how this came about, like the initial ideation, I guess, that get into the meat of it yet? With whom did you develop this? And yeah, what were the initial stages of this? What sparked it all? Yeah, I think that's a good question. So thank you. I joined Anthropic like April last year. And my original work was, again, on developer tooling. So my work was of like, how do you make people internally use the AI systems you're building more? And one of these first things you do is when you look at like, how you enable people to do this is like, what is there and like what is required still to do this.

13:06And one of the first insights we had at the time was like, I cannot build a specialized system for everyone at Anthropic. What I need to do instead, I just need to enable people to build for themselves, right? So that was one of these insights. The second insight is that we had with Cloud Desktop, really a cool desktop application that had beautiful abilities to draw artifacts. So you had like a very visual interaction, but at the same time it was lacking like file system access or access to you know external system in any kind of form or shape we also obviously worked with like editors you know i at the time was working at zed with a zed editor and so these editors and obviously had file system access but they lacked on the other hand side just like beautiful ability to like create diagrams and all these other things so you had these like different clients that were had strengths but none of them were quite extensible and none of them you know was hard to build for.

14:01And so that's where I was thinking about, like, how do you enable people to build and really enable the workflows you care about in these systems? And then, you know, I also worked on a similarly on something like, yeah, like an LSP related thing, which is the language server protocol. And if you look at the language protocol, server protocol, you very quickly see that MCP is very inspired by that. And so you put these two and two things together and you go like, I wish, and that was like my proposal, like I wish there was a way for us to just extend these clients by like creating little scripts, by creating little things to tell these things what I care about.

14:41And it should probably be like some form of protocol so I can use it both in an IDE and I should use it both in cloud desktop. And I proposed this to a local friend of mine called Justin Spar Summers who really took a liking to it and really confirmed the idea and was like, we should really go and build this. And then he did an amazing job building this into Cloud Desktop, where I was at the same time building it into Zed. And so we took it from there as a two-person project, honestly. That was very bottom-up. That's how MCP came to be, right? It was like the Eurotunnel connecting France and the UK, that each one was digging through from each end and then met at the middle, right?

15:21Yourself from Zed, and he was building it from Cloud Desktop. So how did you become acquainted with LSP? Was it from your day getting acquainted with the Oculus stack or the Microsoft stack? Well, actually, that's just from my work at Anthropic. I was actually working on an LSP-related experiment, trying to build an internal LSP for various reasons. And that project didn't go anywhere, but it exposed me to LSP in more depth, and I've built a little LSP. And of course, from there, I looked into the specification, and I understood how these things are going to work. And then at the same time, when you have decided that you need some form of protocol, you go and shop around and look at pattern match.

16:00Because what you don't want to do, you don't want to invent the wheel. You want to focus on the unique differences that you have because you're in an AI application. And you don't want to also reinvent everything else. And so you just try to pattern match. And I felt LSP was a very good pattern to match it. I was not aware of LSP. Where is it currently being used? I mean, you got wind of it because you were doing some research and so forth. but how is it used in production? In what projects? What is the main use case of LSP? Yeah, so LSP solves this classic end-to-end problem that IDEs have with language integrations.

16:35So before LSP was a thing, so before 2015, every IDE itself would have to implement how do they parse Python, how do they parse Java, and everyone had their different take on it and the different strengths and the different weaknesses. But what it meant is that every IDE company or every IDE builder had to have a little team that only cared about these language bits. And they could not care about how to build a great IDE experience. And so the LSP came around as a Microsoft-driven effort around 2015, 2016. They built a protocol to go and say, like, hey, why don't we just build one Python implementation and just have that implementation tell the IDE certain things so that the IDE can display type hints, that the IDE can do refactoring of the code base.

17:23That way, not everybody has to build a Python implementation, parse Python, and you all can go and focus on your IDE stuff and do a better job at that. And so you see it in all IDEs. It would be in a VS code. It would be in JetBrains. It would be in Zed. Everywhere, IDEs, it would be everywhere we use LSPs for interacting with language syntax, with refactoring, these type of things. And so it's basically always there. You just barely notice it anymore. So for our listeners, can you break down the core concept of MCP? What are the key actors here, the key elements? Model, it seems from the name, of course, that it's models, tools, and protocol itself.

18:02But yeah, how do these things interact? Could you define each one of them, et cetera? Yeah, absolutely. So MCP really is, it's first of all, an open protocol. And I think the protocol bit is that it solves this end-to-end problem of clients to context providers. It is a protocol between AI applications and context provider for these applications. And what this does and what the key actors are is the actor is the application, like, for example, Cloud Desktop or, for example, your IDE, and some form of context provider, which is usually a program that provides some context to that AI client. client.

18:43It could be in the form of tools and could be in the form of resources. And so some of these primitives that we then have inside the protocol are tools, which is obviously the most used one, the ones that everybody knows about. The most obvious thing is like you can provide a tool via the protocol to an application such as Cursor, and then Cursor can use this, but you have implemented in your little application this tool and it can use it and you have your custom logic around this. But the protocol has more than that. The protocol has additional primitives such as resources, which is more like files that look like files, act like files, that the application itself, the cursor could decide how to deal with it and how to use this to ask the model something.

19:25And then lastly, there's something called prompts, which is basically just prompt templates that allow a user to ask an MCP server, hey, give me a predefined prompt that I might want to use because it might contain information about the tools you want to use, or it might have additional information that it pulled from somewhere. And I can put this into my context deliberately. But all of these eventually end up that the application will take something from the server and put it into the context of a model and then ask the model something so that you have a rich interaction with an LLAM. That's really what it boils down to.

20:01Okay, we'll go back into the protocol bit that you described briefly at the beginning later. But going a bit deeper into how this works, it seems like the invoke, response, and error are the main commands. Is that true? Am I missing any other command that is at the core of it? And how do they interact and work? Invoke response and error in the sense that it's a protocol that uses inherently like an RPC mechanism. So like a remote procedure call mechanism. Under the hood, it is JSON RPC. And in that regard, yes, there's some form of invocation from the client to the server, some form of response from the server to the client, and then obviously errors.

20:43The actual primitives and the actual semantics of the protocol are then slightly different. Again, these boils down in these three different server primitives that we call, again, prompts, resources, and tools. These are the more high-level things. But of course, they're getting invoked in a way from the server, and there's a result to it. So those are really the key concepts, so to speak. Okay. So the compute is happening. If I'm using Cloud Desktop, the compute is happening in the cloud because the model is hosted there. The client is Cloud Desktop. I am invoking a resource or a tool that could be a set of PDFs or something more agentic, for example, something that is running in a server somewhere else.

21:28So it goes back to the cloud, right? So the core compute resides in three places, potentially. The cloud where the LLM model is, in this case, Claude, one of the models of Claude, I should be specific. Then locally at the level of the desktop application, cloud desktop, and then again in a server or even in a cloud or somewhere else where the tools are working, right? Is that a correct description of how the setup would look like? I think that it's one instance of a correct description. I think so the client, yes, the client deals with the model and that model can be cloud. It can be, of course, like an open AI model.

22:08It can be anything. So the protocol itself is model independent. The client application, so like in this case, Cloud Desktop, can either go back to the cloud, like to like a remote server, be it, you know, something hosted on Cloudflare or somewhere else. But also, the protocol also allows, and actually the vast majority of servers today are local servers. There are local applications that run on your laptop, on your computer, that then interact with the maybe with external services. But Cloud Desktop Client interacts actually with like a local program, which we call the MCP server. And it's slightly confusing because a lot of people have the assumption that a server is always remote on the Internet.

22:50But in this case, it leans into the English name of serving something. And it's serving can also happen locally, right? It's just a separation between concerns of a client and something that serves the context upwards. Is this setup able to manage a state? And if so, how does it do it? Yeah, it does. In the end of the day, the MCP server is a full application. It's a program, right? Not an application in the sense of a graphical user interface, but in terms of a running program. And so with that, the protocol has an initialization sequence. It tells the client, tells something about itself to the server.

23:32The server tells something about itself to the client. And then from there on, they have invocations and results. And throughout those, the application can very much hold state. And so it's very possible, for example, and very easily to imagine an MCP server that, for example, manages a basket. And then there's a tool that says add to the basket and a tool that says list of the basket. And the application is then responsible. well, this like MCP server application or program is responsible in the end of the day for how to manage that state. So they are inherently, they can be stateful. They don't have to be.

24:06That's really what it is. So you've mentioned the inspiration from LSP. I can think of many other protocols, HTTP, UDP, et cetera. Did you get inspiration from any others or was it mostly from LSP? Did you pick and choose? I think we always looked at different protocols and what are the best fits and like look at what makes the most sense. I think there's, of course, a lot of things in what we call the transportation layer. So this can be HTTP. There can be different ways. It can be WebSockets and other things. And so there's some inspiration there. I would say the vast majority of the inspiration came from the language server protocol.

24:42And it's very closely related. A lot of the mechanisms, how the protocol actually work, are very deeply grounded in how LSPs have done it. For example, the choice of JSON RPC is one that is very one-to-one translated from LSPs. The choice of an initialization sequence and some form of capability exchange is informed both by LSPs, but also by my work at McCurl, because actually McCurl push and pull also have an initialization sequence. So there's some basic things that a lot of protocols inherently have that, for example, HTTP to some degree also has, but HTTP does it in the same message by using headers.

25:25And so there's a bit of inspiration in all of them. Then, of course, now when we talk about authorization and other bits, a lot of it is very directly from the web and how the web works. Okay, so the MCP universe that you co-created has exploded, especially on the tool side. Like, it's ridiculous just how many things have been added to the ecosystem. I call it universe, ecosystem, whatever. So how does MCP have any inherent feature in order to help with tool discovery? Like, you've chosen your LLM of choice. You are going to use our cloud desktop. What about what the rest offers, what the world is offering up there?

26:06Does it help with that at all at this stage? At this stage, there's no automatic mechanism to explore what's out there. You would have to go search the web, download an MCP server and expose it that way. And then within that aspect, the client can dynamically list the tools and explore and discover the tools that the server provides. But finding the server that provides a tool that you care about, that's a very manual process for now. And I think that's something that we're looking into, like, how do we improve? Of course, there are other aspects of that. You don't want your cursor to randomly download tools from the internet and execute them because at the end of the day, there are code execution.

Read the full transcript

26:47There are security aspects to that problem. But there are things like a centralized registry that we're thinking about and working towards that will facilitate. some of that discovery aspect to it. So as I say, the community has exploded. There's contributions of all kinds of servers, of all kinds of tools out there. But also at the enterprise level, at the company level, I assume you can only be surprised because who created something months ago and knows about the CEO of Microsoft, the CEO of Google, literally tweeting about the CEO of OpenAI. So I guess my question is twofold. How did you take that at the personal level that such important people were tweeting about it?

27:35But most importantly, my question is about collaboration, like OpenAI adopted MCP, Google the same. So how is that collaboration working? How did you take that? Yeah, I think on a personal level, I think you can not really prepare mentally for such a success. At least I probably are not the kind of person who would believe that this is where it would have ended. I would have been way more critical and probably more conservative in my estimations here. So it's cool in a way. Also, somewhat stressful because now there's a lot of eyes on the things and you need to move quite quickly and get things right.

28:14But that's how it is. And I, at the moment, just take it one day at a time and try my very, very best. And I also have been around long enough that I know how the internet works and eventually getting high up there and there might be a fall after. You never know. I sure hope it doesn't. But in the collaboration bit, we are very early in our thinking around governance. But for example, there's clearly a need for more formalized governance models. At the moment, we're running this as a very old school open source project, similar to the ones I've experienced clearly, like PHP and McQuarrill, which is basically contribution-based, merit-based contribution.

28:56If you contribute, you get to eventually have commit access. So for example, the PyDentic people, they're a set of really fantastic Python engineers, helped a great deal on the Python SDK. And of course, they have commit access to it now. And so there's a lot of that. But I think it needs a more formal process as we're having larger companies with various interests in it, in the whole mix. And so we're working through ideas around different governance models, be it with official standardization organization, be it with something more nuanced like a Linux foundation or other aspects that we're talking to.

29:29And then, of course, we're having channels and engagements with them and trying to figure this out together. Because, again, MCP only works if it's an open ecosystem and if it's an open protocol that everyone feels safe to use. Even competitors with each other feel safe to use. That's what we're striving to build. Obviously, as you just mentioned, the project has literally exploded. So the governance, the project management tools that the more mature projects have in place, because they've had enough time to develop, enough time to invest in that, does not exist at the minute. And MCP is just a matter of time.

30:05So it's quite difficult to answer this question that I'm going to pose to you now. Just give me, I guess, your best answer. Because if you don't have that in place, you probably don't know with a high degree of accuracy what the community is requesting, right? Because with a proper instance of GitHub, you would be able to see how many issues there are about this and that. If they're repetitive, it's about the same thing and stuff like that. But my question is, what is, in your opinion, what the community is right now requesting the most? What do you think is the next contribution whenever this is already put in place?

30:40Yeah, I think that's a good question. So I think it's always difficult in all large projects to like, what's the right thing to focus on? There's a combination of having trustworthy external people that have strong opinions and usually are right on these opinions that you trust, be it input from the Googles, from the open AIs in the world of where do they feel they should go and consider this very carefully. There's obviously a good set of your own opinions and your own convictions that you need to have and just like every other good open source project you might sometimes disagree and you just move forward but i think from the things that are very obvious that people at the moment ask for is like there's a one big thing is like how do i effectively have these mcp servers super smoothly run in a cloud and like in a cloud environment and i i in cursor and cloud desktop all i need is your url and i suddenly can connect to my github account via the yellow lamp or i can connect to my PayPal account and what it might be.

31:40In there, there's two big parts. One is authorization. We have an early specification around authorization that I think was mostly right, but had some problems around particularly enterprises. I'm working very closely with some of the big enterprise identity providers to figure out what's the right path forward. I'm exceptionally grateful that I have people from Microsoft, from AWS, from Okta, a lot of the UOS specification authors that are really experts and have done this for 20 years to help me figure out what's the right approach and what's the right way to do this. And so that's one of these big features people are asking.

32:20The second big feature is the ability to really scale these servers horizontally when they are in a web environment. And that requires a bit less statefulness than the protocol has at the moment. There's already what is actually, I think, the right approach in the specification, but there's not that many implementations in the SDK. So we need to work towards that. That's a big feature. And then there are people, you know, want to have a bit more streamability of certain things. That is a big one. And so those are the three, like, like more directly like next bits. And then there's, of course, there's an ongoing discussion, which form and shape do agents take?

32:58And then there's a lot of exploration. I don't know, don't have an answer. I don't even have a really formed opinion, just yet. I think MCP fits into the ecosystem very well and it solves some of the problems, but it's unclear if it solves all of these problems. And so there's a lot of work on that. It's like in the six months horizon. What about yourself, like Selfishly or your co-creator or even Anthropic? What would you like as a company yourself to see in the next few iterations of the protocol? Are you bullish about some features? I mean, that you can give away. Obviously, you don't talk about anything that is not revealed yet.

33:31Where would you like it to go, apart from the directions that you already pointed out? I can't really talk for the company here, but more for myself. I think for me, at the moment, it's less about what the specification needs to do. I think the specification is actually quite good and very opinionated and not too broad. What is more the case is what I want to see is more support on clients for the full set of what the protocol can offer. There's a lot of really interesting bits and interesting patterns people can develop if all of these things would be implemented. For example, we have this cut-through of resources so you can expose these whole file-like objects from MCP servers to a client.

34:12And one of the ideas was this can be a way for something like Cursor or something like Cloud Desktop to do RAG, like retrieval, and index these kind of resources first. And nobody really is doing this yet, But I think it's a very interesting way to go like, hey, I can build retrieval on top of this. Similarly, you can, there's a feature called sampling, which is horribly named. Like in MCP world, naming was definitely not our strengths. But what sampling does, it is a way for a server. So for one of these applications that provide context to model, like in order to be independent from the model, it can't have its own Anthropic SDK with itself.

34:52It needs to know what is the client using? Which model do you currently have selected in cursor? And so sampling is a way from the server side to go back to the client and ask it, give me a completion from a model. But the interesting nature of this is if you, and it's hard to do it without visualization, if you really think it through, you can actually chain MCP servers and clients together and chain them indefinitely long and build like these graphs of fairly complex agents. And all of the inference, all of the bits, all of the final say in how this whole thing runs is still by the client. And so there's a recursive pattern in this whole thing that people are yet to explore.

35:36And there's some things like MCP agent that try to do this and they're great. But I think people can do more exploration in that regard. So there's a lot of these features that are a bit more hidden and very not much supported because the vast majority of clients currently only do tools and tools is 10 % of the spec. I mean, again, I think that's a function of the fact that this just literally A, exploded, b and the protocol is just very young and honestly i see this what you're pointing out is very normal under usage of a protocol that is not vast but it's flexible enough it's got hidden features as we see probably you didn't even mention all but also there's a bit of confusion like with all things that explode in the internet and particularly in twitter and master done all these you get just little bits and bytes of information that if you don't go to the actual protocol and read it, which I'm sure that 80 % of the people have not done, you get confused.

36:30And I've seen Solomon Hikes, for example, the founder of Docker, having questions about standard, well, actually considering it as standard, and I think it's a protocol that may aim to become a standard, like you were pointing out before, correct me if I'm wrong. But also he said, and this might actually be true, and this is a question I'll pose to you in turn, is there a clear boundary between tools and agents? I know that engine is now a really loaded word, but yeah, is there a clear difference between those two? This is one of these things I think that requires exploration, which I don't have a good answer.

37:03It does feel to me tools fit into this. They might be good enough. They might not be good enough, right? They might be, there could be a conversational aspect to agents. And the reality is, I think we have not experimented enough with different forms of agents and how they can operate to really have a formed opinion of how this works. And I think the similarity like tool use, for example, is a good example. By the time it landed MCP, it was a thing for a year already in some of the models. The actual research paper was like four years old or three years old. right so these things take a little bit to understand the actual like general structure of how these things go and i think tools will play a massive role in in agents and there's a lot of tool like things they will be necessary in the mathematical sense of like they're necessary but i'm not sure if they're sufficient if that makes sense so that yeah i don't know so the answer is i don't know go let's let's try it out right like that's like a very like my very very practical hat and not just try and see what sticks right mcp doesn't have to be the final answer to everything it just can't be also there could be additional things and additional protocols are built on top of it or extensions to mcp even yesterday i will ask you about it i'll just mention it google released in google next which has been taking place this week i believe it's a2a i can't remember what it stands for it's application to application maybe another protocol and the diagrams and what i read from it seems to be complementary i mean i have actually seen several tweets from relevant people.

38:36So look, this is the discovery of a new continent, and it seems like you are charting it. And I see this, to be honest, and this is my actual comment, a bit like the Kubernetes moment in which the CNCF was created, or even before that, but a whole ecosystem was created that Kubernetes enabled, right? So it does feel like MCP could become the underlying technology protocol in this case of something much bigger. Would you agree? What would you see that evolve in? In what direction? I certainly think that MCPA is the right abstraction for a subset of the promise people will have. I think it is foundational in that regard.

39:13I'm just not sure if it's, does it need to be the only one? Is this additional complementary bits like an A2A on top of it? And I think that's the exploration phase that we're currently in, where we're like, yeah, there will be more to this. And say there are some foundational truths to certain things, like, you know, like for example, the Docker and the Kubernetes ecosystem eventually became clear that like OCI containers are like some of these foundational things, right? But they're not the only thing that is required in this ecosystem. They're just a very important part to the ecosystem, like OCI containers, right?

39:45And so I think it's similar to this type of thing is that this is potentially very foundational and very useful for a lot of people, but it's probably not the only entry. And I think you see this in the web, if you really think about a lot of the additional pieces that go with like additional semantics on top of HTTP and even additional entries that are complementary, like web sockets to some degree, they all can exist on the same thing. It does not take away the importance of HTTP. It just means that HTTP can't be everything at the same time. And so I think the same way for MCP. So we're wrapping up here.

40:18I want to go back to actually to the beginning. So yourself as a software engineer that has software engineers as the clients, the users of your work, throughout your career you've worked 90 % on developer tools and the outcome of a good design, well-built, solid developer tool is that a good developer experience to keep it quite abstract, enabling developers to become faster, to feel comfortable, to have a lot of affordances and learn faster tool commands and all that stuff. You, as a software engineer that has a ton of experience building that infrastructure that enables other software engineers, How do you see the future with AI?

41:01The intersection between software engineering and particularly the building blocks of it, the build mechanisms with AI. Are you quite excited? Are you using it in other ways at Anthropic? I'm super excited about it. I think as one of the software engineers I'm not so formative, but people I certainly feel inspired by, like John Carmack had a great take on this, of like these tools similar to all these other things and abstractions we had over the decades are great enablers to be more productive for the people who understand how to use them and who understand the underlying systems, but don't have to do the boilerplate things anymore.

41:45They don't have to do some of the grunt work that has been taken away. Like we don't write assembly anymore, right? And so we have great compilers And that's like one of these abstraction instances. And I think this is just another one of these. And I'm exceptionally excited for how these things go because I don't think it takes away from the human creativity, I think, but it makes it more easier for people to express themselves. So I'm quite interested to see where this goes. I'm very excited. But I don't know where it goes because I think the space is a lot in flux. And I think if you had made predictions a year ago, you'd probably like to have, if you're lucky a 50 50 chance to be right of how things are today and so it's so exceptionally hard to understand where it goes i'm just excited and being someone who just loves technology and i've always loved technology and have been always curious so for me it's just a big big playground play with and i'm very very happy that the playground has to offer new amazing toys that seem to be way more fun than the old things that we have played with for all the software engineers that are listening to us that want to get engaged to start the first steps with MCP, how would you suggest them an opinionated 101 that you would provide them about how to get their hands dirty for the first time?

43:03Yeah, I think that's a good question. Like for me, the things that have always been important, like just there's two things to that. On one side, play around. And, you know, if you're a very practical person like me, use the SDK, play something, feel that magic that I feel a lot of people see and what I think makes a lot of the virality of like... How many SDKs are there already? You've mentioned the Python one at the beginning. There's Python, there's TypeScript, there's C Sharp. It's actually provided by Microsoft. Very thankful for them to that. There's Java, which is provided by the Spring people, which I'm very thankful for.

43:32There's Kotlin, which is provided by the JetBrains people, which I'm very thankful for. There's a very likelihood that Google is going to work towards a Go SDK. There's a lot of other open source Go SDKs already that are really great. There's no COBOL one? No COBOL one? No. We might not need that. You can go. Maybe Claude can write that. You never know. You have a good feeling that Claude might be able to write you a couple of hours. That's better than I would. I think you should just go and try this thing and play around with it and feel a little bit of that magic of making the LLM do something that you care about.

44:05The other day, I was like, I have a lot of friends I play video games with, and we never can figure out which games you should play. So I built an MCP server through all our Steam libraries into the Claude and had Claude tell me which games you should play next. which actually was a very good fit so this is a little bit of magic of things you can make an llm do and have a little bit of like getting into your life and what you care about and so these are this is the magic you want to feel but then and i think that's for everything i've never stopped there and try to understand it like go read the spec read what's possible be creative and and figure out what you could do and and dream about like what you could do with things and i think that's like how you should treat things like try them but also like deeply understand them and to To be fair, MCP is, if you really look at it, it's actually fairly simple.

44:52So there's not that much magic to it. As everything, at the end of the day, it's a bunch of code. And so, you know, just go deep. By the way, I hope that MCP server that suggests new games suggests Commando's Origins, which literally came out in Steam yesterday. And it was developed by a Spanish company back in the day, the first three versions. But this new one, which looks fantastic, has been developed by a German company. which I didn't know about, a German video game studio. So check it out. It looks grandiose. And the first reviews literally came out yesterday, the 9th of April. It looks just great.

45:28So I hope that MCP server is pointing in the right direction. Yeah, I'm definitely going to check this out because I'm always looking for some good evening fun. Oh, Commandos is just great. But yeah, my next question you already answered partially. That was a good incentive to start getting their hands dirty with MCP, to download the SDK, to fiddle it around, to build something, break it again and do it again and so forth. The maturity of the project from a governance perspective, you probably don't want to encourage wave of contributions because it will only add to your stress and you've got a young kid and stuff like that and personal life to devote to.

46:01But if anyone has already read the protocol, is already sort of familiar and wants to contribute, how would you advise to get at least engaged with the community? Would you have any directions, any pointers? I think there are many, many ways, right? But on one side, there's the SDKs where you can actually actively contribute. And we're always looking for contributors that do patches, bugs, fixes, even go through, read through the issues and try to reproduce them and help people with answers. I think there's a big part there. Add to the documentation where it's missing because the documentation can...

46:35I've never seen a project that doesn't need more or better documentation. That's always true for every project. And then, of course, if you really want to and you feel you have a very good contribution, You know, go pull requests for the specification. But the bar there is, of course, very high, as you can imagine. And then, of course, there's lots of communities that have popped up that, you know, I'm even like not even able to keep track of, you know, be it on Twitter, be it on like there's a Discord, there's a bunch of Discord servers, there's some Reddit communities. Just engage with them and find people that are interested and build something very, very cool.

47:06And yeah, I think that's just a way, find the way that you enjoy the most, be it for some people, documentation writing, for some people writing code, for some people like chatting and exchanging ideas with other people there's tons of meetups in you know the big tech hubs around mcp go to those if you if you love the social aspect of it and and go and have a chat about it and i think that's just like find your your own personal way how you care yeah at this stage of the mcp maturity the maturity of the ecosystem it seems like that you're completely able to do your own thing even regardless of the sort of like the official project because as you as i was saying before this thing had exploded so you clearly you guys have hit the nail on the head and you i'm really happy for you that you've i mean you already had a really successful career but it seems like this is a a major discovery a major piece of technology that you've contributed to the world very quietly so i'm really really really happy that you you guys did it and you did it in such an open and flexible way to be honest yeah thank you yeah The openness is so important to me.

48:09But if you look at the history, I've always loved open source. I truly believe in it. And so it's very obvious that that's the path I would want to take. Did we miss anything that you wanted to touch upon about MCP? Or are you good with that? No, just play around with it. Just do cool stuff. I think that's the end of it. Be creative with it. I love the MCP servers that interact with Ableton, that interact with Blender. all the mcp servers that you know that program your synthesizers and these type of things just be very creative that's for the most part it and yeah thank you jordi so much for the conversation we really appreciate it the pleasure has been mine david thank you so much or david probably thank you so much for being with us and again yeah i encourage everyone to try mcp read the protocol it's very straightforward it's not that long and it will and the tools are there so You just need to start fiddling with an SDK, launch your server in a container locally.

49:06Docker has done a splendid things in that sense. The OCR community, I'm sure, will eventually contribute something if it's not yet there already. Thank you so much, David. Take care. Thank you.

From the publisher

The Model Context Protocol, or MCP, is a new open standard that connects AI assistants to arbitrary data sources and tools, such as codebases, APIs, and content repositories. Instead of building bespoke integrations for each system, developers can use MCP to establish secure, scalable connections between AI models and the data they need. By standardizing

The post Anthropic and the Model Context Protocol with David Soria Parra appeared first on Software Engineering Daily.

More from Software Engineering Daily

All 195 episodes
Anthropic and the Model Context Protocol with David Soria ParraSoftware Engineering Daily · 51 min
Listen in VO