AI Engineer World's Fair 2025
MCP: Origins and Requests For Startups — Theodora Chu, Model Context Protocol PM, Anthropic
Read the talk
MCP: From Copying Context to Giving Models Agency
MCP began with Slack messages and error logs pasted into a context window. Its design choices and startup opportunities follow from letting models reach beyond that window.
From a talk by Theodora Chu
Before you start: Basic familiarity with language-model context windows, APIs, and tool calling will help; no prior MCP implementation experience is required.
The context was somewhere else
You are working with a model when you remember a Slack message that explains the problem. You copy it into the conversation. Then you find the relevant Sentry error logs and paste those too. In Theodora Chu’s account, this repeated transfer of context was the starting point for MCP: around mid-2024, co-creators David Soria Parra and Justin Spahr-Summers wanted Claude, or any other language model, to reach outside its context window and retrieve what it needed.
The ambition extended beyond retrieval. If a model could reach external systems, it could bring back context and take actions there. Model agency became the organizing problem: how do you give a model the ability to interact with the outside world?
An integration inside a closed ecosystem can require several kinds of work before it becomes usable: securing access through a business-development or partnership relationship, agreeing on an interface, and then implementing it. An open, standardized protocol would let more builders participate without repeating those negotiations for every client. As reasoning and tool calling improved, MCP’s creators wanted the integration ecosystem to let models put those capabilities to work.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
A protocol becomes useful through workflows
A small internal team built the protocol and introduced it at Anthropic’s November Hack Week. Engineers began building servers to automate their own workflows and those of other teams. That internal enthusiasm led to the public Model Context Protocol launch on November 25, 2024.
Public interest did not immediately match the internal response. Builders asked why another protocol was necessary, why it needed to be open source, and whether models could already call tools. The distinction became clearer when people could use MCP to automate something they actually did. Existing tool-calling ability was only part of the problem; builders still needed a practical way to connect those models to their systems.
Chu identifies Cursor’s adoption as the next major source of momentum, with MCP spreading across coding environments including VS Code and Sourcegraph. This is a story about growing usage rather than a strict sequence of first integrations: Sourcegraph was already named in the original launch announcement. By the time of the talk, Chu also reported adoption by Google, Microsoft, and OpenAI.
The criterion for becoming a standard remained usefulness to builders. Chu invited users to report problems and contribute fixes directly, treating community feedback and pull requests as part of how the protocol would improve. The ecosystem had reached this point less than a year after launch.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Agent assumptions become protocol trade-offs
For Chu, an agent depends on the model’s intelligence to choose actions and decide what to do. Delegating to it resembles assigning a task to a person: you have an intended outcome without knowing their exact response in advance. MCP’s design therefore anticipates models becoming more capable over time, rather than assuming every useful action sequence must be fixed beforehand.
That expectation informed the move to Streamable HTTP, a decision Chu describes as controversial but useful for communication involving agents. Her shorthand about greater bidirectionality needs one technical distinction: the older HTTP+SSE transport already carried messages in both directions, using SSE and client HTTP POST requests. Streamable HTTP replaced that transport arrangement with an endpoint supporting POST and GET; it can still use SSE. stdio also remained a standard transport.
A second assumption determined where complexity should live: the team expected many more servers than clients. If that prediction holds, making each server easier to build has broad benefits across the ecosystem. MCP therefore prioritizes server simplicity and server tooling, accepting additional client complexity when the two conflict. Chu explicitly leaves open the possibility that the prediction could be wrong; it is a design bet, not an observed law of the ecosystem.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Making remote servers practical
The preceding six months of work had added remote MCP support and prompted a rethink of authentication. Chu acknowledges that the initial design was wrong and credits community contributors with explaining how it needed to work with identity providers. At the time of the talk, the correction was in the draft specification. The subsequent June 18 revision documented the authorization changes and elicitation discussed here; draft status matters when following the recording.
Alongside Streamable HTTP as the primary remote transport, the team updated SDKs and improved MCP Inspector. Inspector gives server builders a tool for debugging their integrations, and Chu considers it one of the project’s most underused tools. These changes address the practical work surrounding a server: connecting it, handling authorization, and understanding why an interaction is not behaving as expected.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Ask what “best” means before choosing a flight
Elicitation addresses an ordinary obstacle to useful agency: the user has not supplied enough information. Chu’s example is a flight-booking tool receiving a request for the best flight to Atlanta. The destination is clear, but the selection criterion is not. Best could mean cheapest or fastest. The draft feature lets the server request clarification from the end user and receive the answer back through the client.
The interaction has a simple sequence:
- Receive the request to book the best flight to Atlanta.
- Ask whether the user values the cheapest or fastest option.
- Return the user’s preference to the server so it can continue with a defined criterion.
For example, if the user chooses fastest, the application can preserve the destination while filling in the missing preference. A compact application record would then look like this:
json
{
"destination": "Atlanta",
"preference": "fastest",
"bookingStatus": "pending"
}
The clarification supplies a decision criterion; it does not itself book a flight.
Clarification fills in the flight preference
Constructed example: The user’s choice of fastest, the application field names, and the explicit pending booking state are teaching details; the talk supplies the request and clarification alternatives.
Book me the best flight to Atlanta.
Operation: The server asks whether best means cheapest or fastest; the user chooses fastest and the client returns that preference.
destination
Atlanta
Atlanta
preference
Not present
fastest
bookingStatus
pending
pending
The next capability was discovery. Work on a registry API aimed to make it easier for models to find MCP servers that had not been supplied upfront. That goal follows the same assumption about improving model intelligence: a more capable model may be able to identify a missing capability as well as use one already available to it.
Supporting this agent experience also required shared development patterns. Chu described plans for open-source examples from Anthropic and the community, so builders could learn useful conventions together. She paired that with a commitment to keeping MCP open and work on its next phase of governance.
Agent composition fits into the same client and server roles. Chu describes an agent as a server acting as a client, and vice versa: it can expose capabilities to one participant while consuming capabilities from another. That allows communication among agents, servers, and clients without making an agent a wholly separate category of integration.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Build tools for three users
An emerging standard still needs an ecosystem of useful implementations. Asked where founders should build, Chu puts most of her emphasis on servers:
| Startup opportunity | Chu’s suggested emphasis |
|---|---|
| More and higher-quality servers | 80% |
| Simplifying server building | 10% |
| Security-related tooling | 10% |
These percentages express her priorities for builders, not measured market shares or expected returns.
Higher quality does not mean exposing every existing API endpoint as a separate tool. Chu criticizes that one-to-one wrapping because it skips the design question that matters: what capabilities will let a model complete the user’s task? An MCP server has three users: the end user, the client developer, and the model. Forgetting the model as a user makes it easy to produce an interface that mirrors a backend but is awkward for an agent to use.
Work backward from the intended interaction:
- Identify the end user’s use cases.
- Write the prompts the user is likely to give the model.
- Determine which tools the model needs to respond correctly.
The resulting tool boundary should follow the task, rather than automatically inheriting the boundary of each API endpoint. This makes tool design an interface-design problem, not just an adapter-generation problem.
Domain coverage matters alongside interface quality. Much of the early ecosystem served developers, but the opportunity extends to sales, finance, legal work, and education. Builders with knowledge of those domains can identify the context and actions their users need, then expose capabilities that fit those workflows.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Support the servers—and the access they create
If servers become the larger population in the ecosystem, the tools used to build and operate them become valuable infrastructure. Chu identifies two settings with different audiences but a shared need for simpler server development:
- Internal enterprise deployments: MCP servers act as interfaces between teams.
- External products: Indie hackers and other builders expose capabilities to outside users.
Both create opportunities for hosting, testing, evaluations, and deployment tooling.
Automated server generation is the more speculative extension. As models improve at writing code and interacting with external systems, Chu imagines them creating their own MCP servers on the fly. The model would generate an integration when it needed one, instead of depending entirely on integrations prepared in advance. She describes this as a moonshot that may be early for the capabilities available at the time.
The final startup request concerns AI security, observability, and auditing. These needs extend beyond MCP: giving any AI application more access to external systems and real data increases its security and privacy implications. The same agency that makes integrations useful creates a need to understand and protect what those applications can reach and do. Chu closes by urging founders to build that infrastructure now.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Resources
From the talk
Historical specification for stdio and Streamable HTTP, including streaming, sessions, and server-to-client messages.
Interactive developer tool and CLI for connecting to, inspecting, and testing MCP servers.
Further reading
Anthropic's original announcement explains MCP's integration problem, architecture, and initial ecosystem.
Practical guidance on task-oriented tools, clear descriptions, useful responses, and evaluation-driven improvements.
Updates since the talk
- June 2025 specification changesDocumentation
The subsequent protocol revision records authorization changes, elicitation, and structured tool output.
- Elicitation in the June 2025 specificationDocumentation
Defines how servers request additional user information through an MCP client.
- Introducing the MCP RegistryArticle
The registry preview announcement explains public server discovery and downstream public or private catalogs.
Read the complete timestamped transcript
- 0:00
[upbeat music] All right.
- 0:15
Hello, everyone. Who's excited to chat about MCP today? [cheering] [clapping]
- 0:20
Okay, we can, we can work on that. We can get it a little bit better by the end of this talk. Uh, but I'm Theo. I am a product manager at Anthropic, work on MCP.
- 0:30
Uh, prior to this was also a startup founder, uh, working in the AI space. Um, couple fun facts about me because everyone says make yourself a little bit more personable, uh, is, uh, I like playing poker, mostly losing money at poker, not, uh, making money at poker.
- 0:45
Uh, and I also really like coffee. So, uh, if you're, you know, a huge coffee fan, um, and wanna talk about the best coffee in San Francisco, hit me up after the talk.
- 0:57
But you didn't come here to talk about me. You came here to learn about MCP, so let's talk about MCP. I, I was told not to say MCP is the best thing since sliced bread, uh, which I won't say, but mostly because I don't actually think it's the best thing since sliced bread.
- 1:15
Uh, my goal here today is to really walk you through the origin story of MCP, why we launched it, uh, give you a better sense of, you know, where it can actually help you in your workflow, uh, and then ultimately give you a sense of the types of questions that I'm frequently hearing where I think there's a
- 1:35
lot of value to build in the ecosystem. I'll let you decide for yourself whether or not it is actually the best thing since sliced bread.
- 1:44
So scrolling all the way back to, uh, mid last year, the co-creators of MCP, David and Justin, had this idea. Uh, they were seeing that, you know, classic two engineers in a garage style, they were seeing that they were constantly copying and pasting context from outside of the context window into the context window.
- 2:07
So you're doing your workflow and suddenly you're remembering that there was a Slack message that was really important, that had a lot of context that you could just copy in.
- 2:15
Um, so you're constantly kind of copying things back and forth from Slack. Maybe you're copying things in from Sentry, your error logs. Uh, but they were kind of realizing, hey, it would be so great if Claude or l-- any LLM could just kind of climb out of its box, reach out into the real world, and bring that
- 2:35
context and those actions, uh, to the model. And so the genesis of MCP was really around this big question of, uh, not just context, but model agency. How do you actually give the model the ability to interact with the outside world?
- 2:53
And so as they started thinking about this, uh, they came to the conclusion that it had to be an open source standardized protocol in order for this to make sense, uh, at scale.
- 3:06
And the reason is, of course, as you all know, if you wanna build an integration, uh, and the, you know, the, the actor, uh, or the client in this case that has to, uh, leverage that integration is a, is using a closed source ecosystem, then you need maybe a BD or partnerships, uh, angle with that client to
- 3:26
actually get access to the team to integrate with them. You then have to align on the right interface, and then you get to actually build the thing itself. Um, and so the idea here was that model agency was the biggest thing that was stopping, uh, LLMs from actually reaching the next stage of usefulness and intelligence as we
- 3:46
saw that reasoning models were becoming, uh, more and more the future, that tool calling was getting better. We really wanted to make sure that we were making it possible for everyone to get involved in that ecosystem and actually allow, uh, the models to, again, have agency.
- 4:04
Uh, so they form a small tiger team internally, uh, work on this protocol and launch it at our company Hack Week in, uh, November of last year. And this was really the first turning point of MCP.
- 4:18
It went viral, as you can imagine. Engineers from various teams were working on building MCPs to automate their own workflows. They were working on MCPs to, uh, automate other teams' workflows.
- 4:31
Uh, this was really kind of a cool moment to see how it went from, again, like two engineers in a garage, all the way to, uh, this is a major moment and turning point where we think we actually unlocked some, uh, true value for, for other people.
- 4:46
And so we ultimately ended up open sourcing, uh, MCP in November of last year, and that's when, uh, we introduced it to the rest of the world.
- 4:55
But as most builders know, uh, when you build something zero to one, you think the launch moment is going to be really impactful, but it actually usually is not.
- 5:05
Uh, at launch, most people were saying things like, "What's MCP?" Or even worse, or maybe, you know, rightfully so, "What's MPC?" Uh, and more often than not, we got this question of, "I don't really understand why you need a new protocol.
- 5:22
I don't really understand why it has to be open source. Can't models call tools already?" Uh, this was the slew of questions that kind of came, uh, again and again for probably from the era of November all the way even to, uh, early, uh, early this year.
- 5:40
And it really took, uh, making it possible for builders to kind of get their hands dirty, uh, with building MCPs to automate their own workflow for, for, uh, for this to take off.
- 5:54
And so the next turning point, uh, as Henry alluded to, was when Cursor kind of adopted MCP and after that a lot of other coding tools also adopted MCP, um, VS Code, uh, Sourcegraph, uh, et cetera.
- 6:09
We had a lot of coding IDEs, um, start adopting MCP, and that's really where w-- that, uh, next stage of momentum came in where agent, uh, agency was given to builders to actually build, uh, MCPs for themselves.
- 6:24
And more recently, we've seen, uh, kind of another turning point where Google, Microsoft, OpenAI, uh, and many others have, uh, also adopted MCP. So really excited to see this kind of become more and more, uh, the standard.
- 6:38
But ultimately, uh, standards, uh, become standards because they are actually useful to builders. And so, uh, I, uh, kind of want to ask all of you to, to keep us honest, um, contribute when you see, you know, issues with, uh, the way that the, the protocol is built today.
- 6:56
Uh, or, uh, if you, uh, even wanna take that one step further and submit a PR directly to the GitHub repo and, uh, fix the issue, that'd be even better.
- 7:06
Um, but our goal here is really to make it maximally useful for, uh, for you all and for, um, model providers. So, uh, thank you for, for your help in even getting us to the point where I can be speaking on stage, uh, about this, uh, less than one year later.
- 7:23
So just to get a little bit deeper into, uh, what we were solving for at the start of building MCP is again, this kind of idea of, of model agency.
- 7:34
Um, and part of that means, uh, agents is kind of the direction that, that we think is, is going to be the future. That's no surprise to anyone in this room.
- 7:43
You are probably going to hear the word agent said in every talk, if not almost every talk. Uh, but the way that we think about agents is that you are giving the model, or you're rather depending on the model's intelligence to choose actions and decide, uh, what to do.
- 8:03
Uh, in the same way that, you know, maybe when you talk to a human and you ask them, uh, for a response, you don't know exactly what the response is, but based on your understanding of maybe the task that you've given them, your hope is that they are going to give you the right response.
- 8:18
And, uh, we want to kind of enable that world where you're, uh, uh, depending on the model's intelligence scaling over time. So, uh, that leads to principles in how we actually build the protocol itself.
- 8:34
Uh, recently we, uh, launched the support for Streamable HTTP, which, uh, changes the, the transport from SSE. Uh, and as you all might know, Streamable HTTP is, is more the-- uh, enables more bidirectionality.
- 8:49
And so that was, uh, a very controversial decision actually. But, uh, if you're keeping agents in mind as the future, it makes a lot of sense because you wanna make sure that agents can kind of communicate with each other.
- 9:00
The other thing that we believe, uh, is that there will be a lot more servers than there are clients. Uh, this-- we could be totally wrong on this. Uh, I would love to see where the future plays out.
- 9:13
But because we think that there will be a lot more servers than there are clients, uh, we optimized for server simplicity and for the server, uh, server builders to have better tooling.
- 9:25
And that does mean when we have to make a trade-off between client complexity or server complexity, we tend to optimize for pushing the complexity down to the client. So apologize in advance to client builders, uh, but it was an intentional decision.
- 9:39
Again, uh, would, would, uh, be curious to see if, if this plays out, uh, the way that, that we thought it would.
- 9:47
So I'm gonna speed run through, uh, uh, some project updates, mostly because other talks are going to go much more in detail here. Um, but last six months, we launched, uh, ability for, uh, folks to build remote MCPs.
- 10:01
We fixed Auth [chuckles], which we got wrong initially. Thank you. Uh, I know that was a huge, huge thing that, that we got wrong initially, but it is now fixed, uh, in the draft spec.
- 10:12
And so would love folks to, you know, continue helping to push on, on these things that they see don't match their mental model. Uh, this was actually fixed via a series of, of people from the community jumping in to work on saying, "Hey, this is how, you know, uh, Auth works with identity providers, and here's how we
- 10:33
can update the protocol." So very much a community, uh, community effort. Um, again, uh, launched Streamable HTTP as the primary transport. Uh, and lastly, made a couple of updates, uh, to developer experience, um, by updating our SDKs and also, uh, making updates to Inspector, which if you aren't familiar with, is a really good, uh, debugging tool for,
- 10:56
for your server. I think it is probably our most underutilized, uh, tool.
- 11:02
Looking forward, we're going to be focusing a lot more on, uh, that agent experience. So we just added elicitation, uh, to the draft spec. This, uh, allows servers to ask for more information from end users.
- 11:18
So you can imagine you're building a, uh, maybe you're building a flight booking tool and, uh, the end user says, "Hey, book me the best flight to Atlanta." And so as the server, you have a question, which is, what does best mean to you?
- 11:34
Is it cheapest or is it fastest? So you ask the end user, uh, and now you can pass through that elicitation. The end user can respond and have that response ultimately sent back to the server.
- 11:45
Uh, we are also making progress on the registry API, which will make it a lot easier for models to actually find MCPs that weren't already given to them upfront.
- 11:56
So this is again, kind of on that theme of model agency. Uh, we're really betting on the intelligence of models going up over time.
- 12:04
Again, working on, uh, developer experience. We've heard often from you all that there are, uh, that, you know, you'd love to understand what kind of the best patterns are in the ecosystem or what the standards are.
- 12:18
And so we wanna make sure that there are open source examples that, uh, that both we've contributed to and also the community can contribute to, to kind of help build those standards and patterns together.
- 12:28
And lastly, uh, we're making sure that MCP stays open, uh, forever, and we are investing heavily in thinking about the next phase of governance. Uh, so there will be more updates on that soon.
- 12:44
And just to do a quick call-out to, uh, the graphic in, in the bottom. So a lot of people have asked, uh, us what it looks like to actually build an agent with MCP.
- 12:56
Our take is that an agent really is, you know, just a server acting as a client and vice versa, uh, where you can then kind of chat back and forth with other agents, uh, other servers, other clients.
- 13:08
Um, so I won't go into too much detail there. I know a lot of other people are going to be, uh, talking about agents in more detail, but just wanted to make sure that, uh, I call that out here.
- 13:21
So theee, uh, thing that everyone has probably been waiting for and that I've been told, uh, over and over again when, when I talk to founders, uh, what they're asking me about is, uh, what should I build in this space?
- 13:35
You know, if, uh, MCP becomes the standard, what is-- where are the interesting opportunities? So before jumping into this, the first thing I'll say is that we are really early right now, and that means that even if the standard exists, we still need the ecosystem to be filled out.
- 13:53
And I, uh, would urge you to build more and more and more servers. If I had to put a weighting on these three bullet points, I would put eighty percent on the first one, ten percent on the second one, and ten percent on the third one.
- 14:04
Um, so we have a lot of opportunity to build a lot more servers, uh, that are higher quality, uh, and for different verticals. Um, and just to touch quickly on what I mean by higher quality, uh, a lot of people, you know, maybe a hot take, but I think a lot of people are wrapping their API endpoints
- 14:24
one-to-one and just exposing that as tools. I don't think that's the right way to build an MCP server. That in and of itself could probably be a twenty-minute talk.
- 14:34
Uh, but what you really have to remember when you're building a server is that you have three users. You have the end user, the client developer, and the model.
- 14:42
So a lot of people forget that the model is a user here as well. You wanna, uh, just as you would for API design, you wanna think about what are the use cases that your end users are going to have?
- 14:52
What are the prompts that they might actually be, uh, putting into the, the model? And ultimately, what are the tools that you then need to expose to the model to enable the model to respond correctly to those, uh, to those prompts?
- 15:05
So, uh, higher quality servers, uh, and also servers for different verticals. A lot of the servers today, um, have been for dev tools. We would love to see, uh, this expand to be useful beyond engineers into verticals like sales, finance, legal, education.
- 15:23
Pick your poison, uh, whatever you know best, um, that, uh, we, we would just love to see more servers. The next piece is on simplifying server building. So again, as I mentioned, we believe strongly that, uh, servers are going to be the vast majority of the ecosystem.
- 15:41
There will, of course, be a lot of clients as well, but we think the, uh, order of magnitude of, of servers is, is going to, uh, outweigh the order of magnitude of clients.
- 15:50
And so would love to see a lot more tooling to actually make it easier and easier to build servers, um, both for enterprises, uh, that are deploying MCPs internally, uh, as interfaces between teams, and for indie hackers, uh, and everything in between that, uh, are building MCPs for external users.
- 16:09
So anything from hosting tooling, testing tooling, uh, evals, deployment, et cetera. And then, uh, I snuck a bullet in here that's maybe a little bit more of a moonshot and a bet on the future, but the, uh-- There's a bullet for automated MCP server generation.
- 16:27
And, uh, again, if you kind of think back to our bet on model intelligence and model agency for the future, uh, at some point, models will be so good at writing code and interacting with the external world that they will actually be able to write their own MCPs on the fly in real time.
- 16:47
And so, uh, this might be a little early for where we are today, but I do think that there will be an opportunity for automated MCP generation, um, as models get smarter and smarter.
- 17:00
And, uh, last but not least, uh, wanted to do a quick call-out for any tooling around AI security, observability, uh, auditing, et cetera. I don't think this is actually specific to MCP.
- 17:12
This is true for any AI application. But I think the more that you enable those applications to have access to the outside world, to start playing with, uh, real data, uh, of course, the ser-security and privacy, et cetera, implications also go up.
- 17:27
And so I think if you're going to build, uh, a startup in that space, now is, is the time.
- 17:35
So with that, uh, happy MCPing. Thank you. [clapping] [outro music]