AI Engineer Europe 2026
The Future of MCP
Read the talk
The Future of MCP Is a Full Connectivity Stack for Production Agents
David Soria Parra explains why production agents need complementary connectivity methods, progressive tool discovery, programmatic composition, richer MCP applications, and a more scalable protocol.
From a talk by David Soria Parra
At a glance
Ideas worth remembering
MCP applications can deliver a portable interface and model-accessible tools from the same server, provided clients and servers share the necessary semantics. 0:15
Production-oriented agents need a connectivity stack that combines Skills, MCP, CLIs, and Computer Use according to the environment and task. 5:06
Progressive Discovery reduces unnecessary context load by searching for and loading tools only when the model needs them. 7:12
Programmatic tool calling moves multi-step orchestration into executable code, while Structured Output supplies type information that supports composition. 9:36
Agent-friendly MCP servers should expose meaningful workflows and rich protocol semantics rather than mechanically reproducing REST APIs endpoint by endpoint. 11:45
The outlined roadmap addresses scalability, asynchronous tasks, improved SDKs, enterprise authentication, automatic server discovery, and Skills over MCP, while acknowledging uneven client support. 13:49
Production agents require multiple kinds of connectivity
Coding agents benefit from unusually favorable operating conditions: they often work locally, can verify results with a compiler, and have a developer nearby to intervene when something breaks. Soria Parra argues that broader knowledge-work agents face a different problem. A financial analyst or marketing professional may need an agent that can connect several SaaS applications and a shared drive, making connectivity central to the product rather than incidental to it. 3:59
His proposed connectivity stack has three broad categories: Skills for reusable domain knowledge, MCP for protocol-level interoperability and richer semantics, and CLIs or Computer Use when those approaches fit the environment. No single method should be treated as a universal answer; the appropriate choice depends on the agent, available execution environment, and task. 5:06
CLIs are especially useful for local agents because they compose naturally in bash, expose capabilities a model can discover, and align with familiar tools such as GitHub and Git. Their strengths depend on assumptions that do not always hold, including access to a sandbox and code execution. MCP becomes more compelling when an application needs platform independence, interfaces for long-running work, resources, authorization, governance, policies, or richer features such as MCP applications and Skills over MCP. 6:02
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Make the client responsible for progressive discovery
Soria Parra argues that excessive context usage should not automatically be blamed on MCP itself. A protocol transfers information between systems; the client or agent harness decides how that information enters the model's context. Early implementations often loaded every available tool immediately, creating unnecessarily large context windows as the number of integrations grew. 7:12
The proposed alternative is Progressive Discovery. Rather than placing every tool definition in context at startup, the client gives the model a mechanism such as Tool Search and loads individual tools only when they become relevant. This effectively replaces an always-present catalog with an on-demand discovery process driven by the model's current needs. 8:20
Soria Parra says this pattern is available in Anthropic's product and API, can also be used through competing APIs, and can be implemented directly by application builders. He describes an example showing a substantial reduction in tool-context usage after the pattern was introduced, but the transcript does not provide a numerical measurement. The broader lesson is that scalable connectivity depends on deliberate client design, not merely on attaching more servers. 7:12
A task creates a capability requirement.
The client loads tool definitions only after the model identifies a need.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Compose tools through code and design servers for agents
A second client-side pattern is Programmatic tool calling, also described as Code Mode. When a model calls one tool, reads its response, calls another, and repeats the cycle, inference becomes part of every orchestration step. Soria Parra argues that this adds latency and can be less effective than having the model write a script that coordinates the necessary operations directly. 9:36
One implementation provides an execution environment such as a V8 Isolate, Monty, or a Lua interpreter, allowing generated code to compose tools, filter results, and continue processing without repeatedly routing every intermediate decision through the model. MCP's Structured Output can describe return values and provide type information that makes composition easier. When that information is unavailable, Soria Parra suggests using a cheaper model to extract output into an expected structure. 10:33
These ideas also change how servers should be built. Soria Parra discourages mechanically converting REST endpoints one-for-one into MCP tools; instead, server authors should design capabilities around how an agent or person would actually accomplish a task. Programmatic execution can exist on the client or the server, with the Cloudflare MCP server offered as an example of providing an execution environment rather than only isolated tools. He associates this approach with lower token usage, reduced latency, and stronger composition, while also encouraging server authors to use applications, Skills, Task, and Elicitations where those semantics genuinely help. 11:45
The model writes orchestration logic.
Generated code executes and composes tools using structured return information.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Strengthen transport, identity, discovery, and extensions
Soria Parra identifies several protocol-level limitations that still need work. He says the current HTTP streaming approach is difficult to scale for large hyperscalers and describes a Google-backed proposal for a Stateless Transport Protocol that would make MCP servers behave more like familiar stateless REST services deployable on Cloud Runs or Kubernetes. He also describes asynchronous tasks as an experimental foundation for agent-to-agent communication, noting that few clients currently support the capability and that broader client adoption remains necessary. 13:49
The SDK and enterprise roadmap includes TypeScript SDK version 2 and Python SDK version 2, incorporating lessons from the previous year. Soria Parra specifically credits FastMCP as a stronger Python SDK experience than the one his team shipped. He also outlines Cross App Access, intended to let users authenticate through a company identity provider such as Google or Okta and then access MCP servers without repeatedly logging in. 14:52
A proposed Server Discovery mechanism would define how agents, browsers, and crawlers find MCP servers through well-known URLs instead of relying solely on ordinary website parsing. Extensions introduce an explicit compatibility tradeoff: not every client can support every capability, and web-rendered MCP applications are poorly suited to CLI interfaces. Another planned extension, Skills over MCP, would let server authors distribute and continuously update the domain knowledge needed to use complex servers. Soria Parra notes that rudimentary versions can already be approximated with a tool that loads Skills, even before shared protocol semantics are finalized. 14:52
The overall direction is therefore not to replace CLIs, Computer Use, or Skills with MCP, but to make these methods interoperable within a more capable agent stack. Soria Parra presents the protocol's evolution as an open-community effort that depends on continued feedback, while acknowledging that current agents, harnesses, client support, and protocol details still require substantial improvement. 7:12
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Read the complete timestamped transcript
- 0:00
[upbeat music] Well, welcome.
- 0:18
Let's get started. This is an MCP application. That's an agent shipping its own interface, not through like a plugin, not through an SDK, not rendered on the fly by the model on the client side, or hard-coded into the product.
- 0:37
That is something that is served over an MCP server, and you can take the server, put it into Claude, you can put it into ChatGPT, you can put it into VS Code, Cursor, and it will just fucking work.
- 0:50
And that, I think, is kinda cool because for doing that, you need something that a lot of things that we're-- want in the ecosystem do not offer. You need semantics.
- 1:00
You need to have both sides, the client and the server, to understand what each side is talking, to understand how you render this, understand that there's a UI coming.
- 1:10
And for that, you need a protocol. And the best part about this, an MCP server doesn't just ship an app or can ship an app, it can also ship tools with it, and so you can interact with it, with the application as a human, and you can have the model interact with it through tools, which is, I
- 1:28
think, a very unique thing that I think we have not explored much just yet. Okay. But let's quickly rewind a little bit from this, what I think is a really cool glimpse into the future of MCP into over a year ago, eighteen months, an eternity in AI life cycle, um, all of this did not exist.
- 1:50
There was just a little spec document, a few SDKs, uh, mostly written by Claude, local only, with little more than just tools. And in that last eighteen or twelve months, you guys have been absolutely crazy building stuff, um, building servers, building, um, and crazy ecosystem around this.
- 2:08
And we on our side have been busy, busy taking this local only thing, added remote capabilities, added centralized authorization, added new primitives like elicitation and tasks, and last but not least, added new experimental features to the protocol like the MCP applications that you've just seen.
- 2:30
And in the meantime, we have reached, I think, a really cool milestone because, again, you-- all of you have been absolutely crazy building, building, and building, of course, luckily with the help of, uh, a bunch of agents.
- 2:41
Um, we're now like at a hundred ten million monthly downloads, and that's just, of course, not us using it in our clients and servers. That's like OpenAI's Agents SDK, it's Google's ADK, it's LangChain, thousands of frameworks and tools that you might have never even heard of it, pulling it as a de- as a dependency, which means there's
- 3:02
one common standard that all of us have at our disposal to speak to each other. Um, just a bit for context, uh, React, one of the most successful, um, uh, open source projects probably of the last decades, took roughly double the amount of time to reach that download volume.
- 3:20
And in the meantime, of course, you all have been building really, really cool servers from like little toy projects of WhatsApp servers and Blender servers, uh, to building SaaS integrations like Linear, Slack, and Notion that are really powering what everyone does every day when they use MCPs.
- 3:34
But most importantly, the vast majority of MCP server most of all of us have built are behind closed doors, uh, connecting company systems to agents, uh, and AI applications.
- 3:46
But I still think this is just the absolute beginning of where we are
- 3:51
because I think twenty twenty-five was all about exploring, and twenty twenty-six is all about putting these agents into production. Because if you really think about, in my mind, twenty twenty-four, we just built a bunch of like demos and showed cool stuff to people, and there was a little bit of a buzz there.
- 4:08
Twenty twenty-five was really all about coding agents. But coding agent, if you really think about, are the most ideal scenario for an agent. It's local, it's verifiable. You can call a compiler.
- 4:19
Like you have a developer who can fix shit if it goes wrong in front of the, in front of the computer. Uh, and you can display a GUI interface, and the user is quite happy.
- 4:31
But I think now with the capabilities of the model increasing, we are going into a new era, which I think this year will be-- we will see the start, where we're not just doing coding agents, we're gonna have general agents that will do real knowledge worker stuff, like things a financial analysis-- uh, analyst wanna do, uh, a
- 4:49
marketing person wanna do, and they need one thing in particular. They don't need a local agent that calls a compiler. What they need is something that could connect to like five SaaS applications and a, and a shared drive because the most important part for them for an agent is connectivity.
- 5:06
And in my mind, connectivity is not one thing. If one-- if someone tells you there's one solution to all your connectivity problem, be it computer use, be it CLIs, be it MCP, they are probably pretty wrong.
- 5:18
Because the right, because the right thing, of course, is that it always means it depends, and there is a real, a big connectivity stack, and there's a right tool for the right job.
- 5:28
And in my mind, there are three major things that you wanna consider building an agent in twenty twenty-six. It's skills, MCP, and of course like CLI or computer use, depending on your use case.
- 5:38
And they have three very distinct things that they can do and three different things you wanna consider when you build your agent. Number one, skills, of course, is just like domain knowledge.
- 5:49
It's just like capture specific capabilities, put into a very simple file, and it's mostly reusable. There are some minor differences between the different platform.
- 5:59
Of course, CLI is very popular when local coding agents. It's an amazing tool-
- 6:04
To get simply started, to have something that you can compose in a bash that you-- that automatically discover, where the model can automatically discover what the CLI is capable of.
- 6:13
And most importantly, if you have things that are like CLIs, like GitHub, Git, and other things that are in pre-training, CLI is an amazing solution for your connectivity part, and they're particularly good when you have a local agent where you can assume a sandbox, where you can assume a code execution environment.
- 6:31
But if you don't have this, if you need rich semantics, when you need a UI that can display long-running tasks, when you can have-- when you need things like resources, when you need to build something that is fully decoupled and needs platform independence, or you don't have a sandbox, when you need things like authorization, governance, policies, or
- 6:51
short to say boring enter- boring but important enterprise stuff, or if you wanna have experiments like MCP applications or what comes soon, skills over MCP, then I think MCP is this, like, additional connective tissue that is just yet another tool in the toolbox for you to build an amazing agent.
- 7:12
And so this is all to say that I think in 2026, we're gonna start building agents that use all of it. They don't use one thing, they use all of it, and they use them quite seamlessly together.
- 7:24
But I don't think we're quite there just yet because we need to build a lot of stuff, partially, um, because our agents kinda still suck, um, and partially because I think we just haven't talked enough about, like, some of the techniques you can do, uh, to really put this connective tissue together.
- 7:47
The number one thing that we need to go and start building is on the client side, on the s- on the agent harness side, on the things that powers the connective parts, that be it a Claude Code, uh, be it a Pi, be it whatever application you're gonna build.
- 8:04
And the number one thing we're gonna do there and what we all have to do and something I wanna really get across today, is that we need to go and start s- building something called progressive discovery.
- 8:14
Most people, when they think about like, oh, uh, MCP, they can think about, like, context load. But if you really consider what a protocol does, a protocol just puts information across a wire, but the client is responsible for dealing with that information.
- 8:29
And what everybody so far has done, because we're in this very early experimentation phase, is to simply put all the tools into the context window and then be quite surprised that maybe the context window gets large.
- 8:40
Um, but what you can do instead, and what you should do instead, you should start using this progressive discovery pattern, which is to say, use something like tool search to defer the loading of the tools and start loading the tools when the model needs it.
- 8:58
And we have this in the Anthropic product, in the API, um, people can use this, uh, on, on competitors' APIs as well. But also you can just build this in yourself, where you just don't load the tool directly, and the moment you give the, you give the model a tool loading tool, basically, and the model goes like,
- 9:15
"Ah, maybe I need a tool now. Let me look up what tools I need." And then you load them on demand.
- 9:21
And here in this example, what you're seeing is on the left side is, uh, Claude Code before we'd added this to Claude Code and then after it, uh, uh, to Claude Code.
- 9:30
So you see a massive reduction in tool, uh, use-- uh, tool context usage. The second part to that is, is something called programmatic tool calling or what other people usually refer to, um, to code mode.
- 9:47
Um, this is the idea that one thing that you really wanna do is you wanna compose things together. You don't want the model to go call a tool, take the result, then go and talk, call another tool, take the result, call another tool.
- 10:03
Because what you're effectively doing is you're letting the model orchestrate things together, and in that orchestration, you're using inference, you're u-- it's, it's latency sensitive, and all of its stuff could be done way more effective if you would instead write
- 10:19
a script. Um, and in fact, that's actually what you constantly do and what you constantly see things like Claude Code do when it writes the bash command. But you can of course do this with everything, and you can do this with MCP, and you should do this with MCP.
- 10:33
So what does this mean? So what you want, instead of having one tool after another, you want to give the model a REPL tool, provide like a com-- like a execution environment like a V8 isolate or a Monty or something like that, or a Lua interpreter, and just have the model write the code for you, and the
- 10:52
model just executes that code and then composes them together. And there's a neat little feat- feature in MCP called structured output that tells you what the return value of the output will be.
- 11:05
And the model can use this information to, uh, to figure out type information, which then mean it can really nicely compose these things together. And in this example here, instead of doing two different calls, you do one call, and you can filter.
- 11:19
The, the model will automatically ex-- uh, remove things from a JSON and just continue.
- 11:26
Of course, if you don't have a structured output, you can always just ask the model to give you a structured output, um, uh, by just extracting it and saying, "Hey, call a cheap model," and say, "I want this expected type.
- 11:39
Give it back to me." And bam, you have a type. The model can compose things together. And I think this is something we're just not doing enough yet, and this is, I think, something where we can improve our agent harnesses.
- 11:50
And then last but not least, of course, you can just compile-- compose these things together with executables, like with CLIs, with other components, with APIs as well.
- 11:59
Um, next, what we need to do, besides the client work, which is progressive discovery and Um, programmatic tool calling, we need to go and start building properly for agents.
- 12:10
And that means we all need to stop taking REST APIs and put them one-to-one into, uh, an MCP server. Every time I see someone building another REST to MCP server, a conversion tool, I'm-- it's a bit cringe because I think it just, it just results in horrible things.
- 12:28
Um, and what you should do instead, you should design for an agent. Or basically, you can start designing for you as a human, how you would wanna interact with this, because that's actually a very, very good start for an agent.
- 12:40
If you wanna orchestrate things together, you should reach, of course, for programmatic tool calling, and you can do this on the client side, as I said before, but you can also do this on the server side.
- 12:50
The Cloudflare MCP server and others like that are great examples how you can have, instead of providing tools, provide an execution environment to the model and then just have them orchestrate things together, which again, cuts on token usages, uh, cuts on latency, uh, and is way more powerful in its composition.
- 13:09
And then last but not least, you should start, and we should start as server authors, to use this rich semantics that MCP offers over alternatives. This means shipping MCP applications.
- 13:20
It means shipping, um, skills over MCP. It means, um, using, uh, things like task and other aspects that the protocol offers that were currently slightly underused, or things like elicitations, things that only MCP can do for you.
- 13:36
And of course, that's all the work you all need to do, and maybe some of our product people need to do. We also need to do a lot of work on MCP itself.
- 13:44
And there's a few things down the line that we're gonna go and have to go and solve. The number one thing is we need to improve the core. There's a few things that as we have developed the protocol over the last year, that are just not in a good shape.
- 13:58
Number one is that the current Streamable HTTP, it's very hard to scale if you're a large hyperscaler. And so we have a proposal from, uh, our friends at Google, um, who are working with something called a stateless transport protocol, which make it significantly easier to just treat MCP servers like, uh, you know, another stateless, uh, REST
- 14:20
server or something like that that we used to know how to deploy to like Cloud Run or Kubernetes and so on. So that's coming down in June and hopefully landing in the SDKs very soon.
- 14:31
In addition, we need to improve our asynchronous task primitive, which basically is a very fancy way to say we just wanna have agent-to-agent communication. We have a very experimental version of the protocol that very few clients support, so we're gonna start building more clients out like that, and most importantly, we are improving some of the little semantics
- 14:51
that we need to do. We're gonna ship a TypeScript version, uh, SDK version two and Python SDK version two based on, um, a lot of the lessons learned, uh, over the last year.
- 15:01
There's a, there's a, um, a, a, a SDK called FastMCP. Uh, who's using FastMCP? Yeah. It's just way fucking better than Python SDK that we're shipping, right? And that's on me because I wrote the Python SDK.
- 15:14
Um, and, and so I have a bunch of people who are way better Python developers than me help me, uh, write it better. Um, the second part is we need to start integrating everywhere.
- 15:24
We're gonna ship for, particularly for enterprises, something called cross-app access. It's a new thing that we're working closely together with identity providers, which just allows you-- It's a very fancy way to say, uh, once you log in once with your local company identity provider, be it a Google, be it an Okta, you will be able to just
- 15:40
use MCP servers without having to re-log in. So it's a bit more smoothness. Um, in addition, we're gonna add something called a server discovery by, um, so by, uh, specifying, uh, how you can discover servers on well-known URLs automatically.
- 15:55
So crawlers, browsers, um, agents can just go to a website and say, "Oh, um, instead of just parsing the website, is there also an MCP server I can use?"
- 16:05
And we will be able to automatically discover this. This is a really cool thing that will come down, uh, also in June when we launch the next specification, uh, and will be supported there.
- 16:14
And then last but not least, we are starting to use our extension mechanisms in, in MCP, which means that some clients will support this, like for example, MCP applications will only be supported by web-based interfaces because if you're a CLI, you just have a hard time rendering HTML, right?
- 16:31
Um, and we'll do more of these extensions. One of the most exciting extensions that I think is, is cool, we're just gonna ship skills over MCP because it's very obvious that if you have a large MCP server with tons and tons of tools, you just wanna ship domain knowledge with it and say, "Oh, this is how
- 16:46
you're supposed to use this. This is how you're supposed to use this." And it allows you as a server author to continuously ship updated skills without having to rely on plugin mechanisms and registries and other stuff.
- 16:57
So that's coming down. Um, there's a lot, a lot of experimentation from people already in that space. You can already do some of that today if you just give the model a load skills tool.
- 17:07
Like you can, you can build primitives of versions of this today without having to rely on the semantics, but of course we're gonna define the semantics. Okay. So that's for me, a long-winded way to think, to say that I think MCP is actually in a really good shape, and I think in this year we're gonna push, uh,
- 17:25
agents to full connectivity. Um, MCP will continue to play a major, major, major role. And we want, of course, your feedback. We are a very open community. We just have created a foundation.
- 17:37
We're mostly running as an open source community with a Discord, with issues. Um, just come to us and tell us where the fuck are we wrong? What are we getting right?
- 17:46
Um, so that we can improve this on a continuous basis. So twenty twenty-six I think is all about connectivity, and the best agents use every available method. They will use computer use, they will use CLIs, they will use MCPs, and they will use, will use skills because they wanna have a wide variety of things they can do,
- 18:04
and then they can ship cool stuff like this, um, which is, um,
- 18:11
one of the product features we shipped recently. Uh, under the hood, it's nothing but an MCP application, um, that renders stuff, right? Cool.
- 18:24
So we can now look at, uh, the model writing graphs.
- 18:27
Anyway, thank you. [upbeat music]