Evolution of MCP Server Design: Progressive Discovery and Workflow Tools

VideoCURTTalk

Modern MCP clients increasingly handle tool discovery and execution chaining. The video explains why MCP servers should expose ergonomic workflow tools rather than one-to-one API mappings, illustrated using Neon's architecture.
Playing loads YouTube (youtube-nocookie.com).

Key points

  1. Early MCP servers mapped each API endpoint to a separate tool, bloating the context window and confusing models when endpoints were similar.
  2. The layered pattern (search, inspect, execute) has shifted from the server to clients (such as Codex and Claude Code) as progressive tool discovery.
  3. Programmatic tool calling ('code mode') allows agents to write and run scripts in a sandbox to chain tools, returning only the final outcome to the model context.
  4. Even with client-side composition, workflow-level tools remain necessary to save tokens and prevent models from misconfiguring multi-step infrastructure tasks.
  5. In Neon, creating a branch requires three separate API calls (create branch, attach compute, fetch connection string), which Neon bundles into a single operation called 'createWithCompute'.
  6. Neon generates an SDK from OpenAPI, layers ergonomic methods on top, and exports them via the 'neon/tools' package with category scoping and adapters for agent frameworks like Mastra and Eve.

Why it matters

As MCP clients take over discovery and execution chaining via sandboxed code mode, MCP server design must evolve: instead of exposing raw API endpoints, servers should focus on defining clean, token-efficient workflow abstractions.

Analysis

The video outlines an architectural shift in the MCP ecosystem. Simply mirroring every REST or OpenAPI endpoint into an MCP tool leads to context bloat and frequent agent errors. By letting clients handle progressive discovery and code execution, server authors can focus on what matters: exposing cohesive, multi-step operations that minimise roundtrips and token consumption. Neon's strategy—separating SDK generation, tool definitions, and framework adapters—offers a practical blueprint for developers building production-grade MCP servers.

Transcript

Show the full transcript (1,066 words)
MCP is blowing up right now. Agent's usage of MCP is increasing exponentially and it's not showing any signs of slowing down. But at the same time, many agents are now changing the way that they handle tools and starting to take over responsibilities that used to belong to the server. So what does all of this mean for the way that we build MCP servers? Well, let's break it all down. When MCP first hit the scene, one of the most common approaches for building MCP servers was to just map each of your API endpoints to its own tool. And by doing this, an agent was able to access the full range of your API surface area. And this implementation worked, but it presented two major issues. First, if your API had hundreds of endpoints, then that meant your MCP server had hundreds of tools. And all of these tools would be loaded into the context window upfront, meaning that before you even started your session, your context window could have been completely bloated by MCP tools. And secondly, if you had lots of endpoints that were similar to each other, an agent might end up getting confused and not pick the right tool for the job. In order to solve some of these problems, a lot of MCP servers adopted a layered tool call approach. So now, instead of listing out hundreds of tool calls, you might just have two or three. You might have a tool to search all of the available endpoints, a tool to inspect the definition of a specific endpoint, and a tool to execute the request. This pattern has seen a lot of adoption, but this is now where the big change happens. Traditionally, this pattern was implemented on the MCP server side. But more recently, many MCP clients, especially many popular coding agents, are implementing this pattern on the client side. The pattern is now called progressive tool discovery and it's a recommended best practice for MCP clients. In addition, a lot of these agents, like Codex or Quad Code, are implementing what's called programmatic tool calling, also known as code mode. And with code mode, instead of calling tools one at a time, the agent will go ahead and write a script that chains those tools together in a sandbox environment. The script then runs in the sandbox and then only the final result is returned back to the model. So between progressive discovery, handling tool call selection, and then code mode handling tool composition, the clients are now starting to take more ownership of the problems that servers originally were trying to solve. So surely this means we can just go back to the original method of doing a one-to-one mapping of API endpoints to tool calls, right? Not quite. While an agent certainly can accomplish everything it needs to just by having access to tools that represent every API endpoint, that isn't necessarily always the most efficient way to interact with an API. For any given API, there are often very common tasks or workflows that require stringing together multiple API calls. And if an agent has to figure out that chain on its own every single time, that's a lot of wasted tokens. And this is the same reason that SDKs exist. They give you the raw endpoints, but also bundle common workflows into single operations. And we can apply that same idea to the tools that we expose through our MCP server. So for example, with Neon, we have this idea of creating a branch. But it turns out that creating a branch is actually three separate API calls under the hood. You have to first create the branch itself, but then make a separate call to attach compute resources to the branch and make a third call to get the connection string. In the SDK, we bundle those three API calls into one method called create with compute. So as this relates to our MCP server, in order to give MCP clients the most token-efficient path possible, it's helpful to expose operations like this that they can take advantage of in some of these common use cases. Of course, if your API is relatively simple and straightforward, a one-to-one mapping might be totally fine. But for something like Neon where there's some complexity in provisioning infrastructure, these ergonomic shortcuts save the agent from making the same mistakes over and over again. So at Neon, we have an SDK which is generated from our open API spec. So that way it covers every API endpoint. But on top of that generated layer, we also have another thinner layer that adds the ergonomic methods that we were just talking about, things like create with compute. From here, in order for this to be usable by agents, we need to convert all of these methods into tool calls. So that's exactly what we did with a package that we call Neon Tools. So that includes both the raw endpoints and the ergonomic workflows, all as tool calls. And by virtue of pulling these tools out into a separate package, we're able to serve a few different use cases. First and foremost, in the Neon MCP server, the server imports this package to surface all of these tools to any MCP client. But on top of that, we can also take this package and build adapters around it for different agent frameworks. So for example, we have adapters for both Mastra and Eve for anyone building custom agents with those frameworks. And one more thing worth noting is that these tools are organized into categories, so that way you can scope down exactly which tools you want the agent to have access to. All in all, the big idea here is that the server is controlling what tools are available, but then the client handles discovering and executing those tools in whatever way it sees fit. All of this is open source, so if you want to dive through the code and see exactly how everything is implemented, I'll have some links down in the description for you to check out. And if you have ways that you're approaching building your own MCP server, let us know down in the comments. Thank you so much for watching and I'll see you in the next one.

Links and tools from this entry

Summary generated by AI (Gemini 3.8 Flash, 27 September 2026). It may contain errors – the original source is authoritative.

Similar in content, found by the AI search.

  • Repository:neondatabase/mcp-server-neon

    Neon MCP Server: Managing Postgres Databases and Branches via Natural Language

    The Neon MCP Server links AI assistants to the Neon Management API and PostgreSQL databases using the Model Context Protocol (MCP). It enables developers and teams to manage projects, branches, schema migrations, and queries using conversational prompts within MCP-compatible clients.

    635starsTypeScript

    AI & LLMs· Tool

  • Article:David Soria Parra, Den Delimarsky

    Model Context Protocol 2026-07-28: Release Candidate Introduces Stateless Core

    The Model Context Protocol (MCP) team has published the 2026-07-28 release candidate, marking its largest protocol overhaul to date. The core moves to a stateless HTTP model, eliminating connection handshakes and session headers. The update also formalises an extensions ecosystem featuring MCP Apps and Tasks, alongside OAuth and OpenID Connect security hardening.

    AI & LLMs· Announcement

Let's talk about your project

Locations

  • Mattersburg
    Johann Nepomuk Bergerstraße 7/2/14
    7210 Mattersburg, Austria
  • Vienna
    Ungargasse 64-66/3/404
    1030 Wien, Austria

Parts of this content were created with the assistance of AI.