Agentbrisk

MCP in 2026: How the Model Context Protocol Has Evolved

May 4, 2026 · Editorial Team · 8 min read · mcpprotocolsai-tools

When Anthropic released the Model Context Protocol in late 2024, the initial reaction was mixed. Some developers got excited immediately: a standard way to connect LLMs to tools and data sources was exactly what the ecosystem needed. Others were skeptical, having seen many attempted standards in the AI space that never gained traction.

A year and a half later, MCP has become something real. It's not universal, and there are still rough edges, but the protocol now has genuine momentum and an ecosystem worth understanding.


What MCP is, briefly

The core idea of MCP is that it decouples tools from models. Instead of each AI application implementing its own way to call tools, and each tool vendor writing integrations for Claude, GPT-4, Gemini, and whatever comes next separately, MCP defines a common interface.

An MCP server exposes a set of tools, resources, and prompts. An MCP client (which can be an AI assistant, an IDE, an agent framework, or anything else) connects to the server and can use what's exposed. The server doesn't know or care which model is behind the client.

The protocol runs over stdio (for local servers), HTTP with Server-Sent Events, or WebSockets. The messages are JSON-RPC. The spec defines how servers advertise their capabilities, how clients request tool execution, how resources are listed and read, and how errors are reported.


The spec at launch versus now

The original MCP 1.0 spec from November 2024 was functional but showed its origins as an internal Anthropic project. Some things were underspecified, the error handling guidance was sparse, and the transport layer options were limited.

The spec has gone through several revisions since then. The biggest changes:

Streaming responses became a first-class feature. The original spec had tool results that were returned as complete messages. This meant you couldn't stream a long tool response to the user in real-time. The streaming extension, which landed in early 2025, allows servers to stream tool output progressively. For tools like web search or code execution that take time to complete, this was a significant quality-of-life improvement.

Authentication and authorization got serious. The 1.0 spec had basically no guidance on auth. Servers were responsible for doing whatever they wanted. This created fragmentation: every server had a different auth story. The auth spec additions in mid-2025 defined standard patterns for OAuth flows, API key passing, and session management. Clients that implement the auth spec can now connect to any compliant server without custom per-server integration work.

The "resources" concept got fleshed out. Resources in MCP are pieces of content the server exposes for the model to read: files, database records, API responses. The original resources spec was minimal. The expanded spec added pagination for large resource lists, content types beyond plain text (binary data, structured JSON), and change notifications so clients can stay in sync with resource state.

Sampling got added. This one is interesting and somewhat controversial. The sampling spec allows MCP servers to request that the client (the AI application) generate text using the model. So a server can say "given this context, ask the model to generate a summary" and the client handles the actual LLM call. This enables server-side workflows where the server orchestrates model calls without needing direct API access. Some people love this for multi-model architectures; others find the control flow confusing.


The server registry: making discovery work

One of the early problems with MCP was discovery. How do you find good servers? How do you know if a server is trustworthy? The original launch had no answer to this.

Anthropic launched the official MCP server registry in Q1 2025. The registry is a searchable catalog of MCP servers, similar in concept to npm or PyPI but for MCP servers. Servers in the registry have standardized metadata: what tools they expose, what data they access, what authentication they require, who maintains them.

The registry now has over 800 listed servers as of early 2026. Coverage spans the expected categories: web search (Brave, Exa, Tavily), databases (PostgreSQL, MySQL, SQLite, MongoDB), productivity tools (Google Drive, Notion, Linear, GitHub), code execution environments, and specialized data sources for specific industries.

Quality varies. The official Anthropic-maintained servers (filesystem, GitHub, web search) are polished and well-documented. Community servers vary enormously. The registry doesn't vet security or reliability claims, it just catalogs what's available. You still need to evaluate servers before using them in production.

The registry also tracks install counts, which gives you a rough proxy for real-world validation. A server with 50,000 installs has been tested by a lot of developers. A server with 12 installs might be great or might be abandoned after one weekend project.


Client adoption: who's actually using it

The client landscape has grown significantly from the early days when Claude Desktop was essentially the only major consumer.

Claude Desktop remains the reference implementation and the most polished MCP client. Server configuration is through a JSON file, the connection management is stable, and it handles the full spec.

Cursor and Windsurf both added MCP support in 2025. This was a big deal for the ecosystem because it brought MCP into the developer workflow. You can configure MCP servers in your IDE and have them available to the AI assistant while you code. Practical use cases: connecting to your project's database to query schemas during development, accessing internal documentation, calling your internal tooling APIs without leaving the editor.

VS Code with GitHub Copilot added MCP support in late 2025. The Microsoft/GitHub presence means MCP is now in the hands of a much larger developer audience.

OpenAI's desktop app supports a version of tool integration that's compatible with MCP servers, though there are implementation differences that mean not all MCP servers work perfectly with it.

Agent frameworks (LangChain, LlamaIndex, CrewAI, AutoGen) have all added MCP client support. This is arguably more important than the consumer app adoption, because it means production agent systems can use MCP servers as their tool layer.

The aggregate effect is that if you write an MCP server today, it's genuinely usable by a wide range of AI clients. That wasn't true 18 months ago.


What building an MCP server actually looks like in 2026

The official SDKs have matured significantly. Anthropic maintains TypeScript and Python SDKs that handle the protocol plumbing for you.

A minimal Python MCP server:

from mcp.server import Server
from mcp.server.stdio import stdio_server
from mcp.types import Tool, TextContent

app = Server("my-server")

@app.list_tools()
async def list_tools():
    return [
        Tool(
            name="search_docs",
            description="Search internal documentation",
            inputSchema={
                "type": "object",
                "properties": {
                    "query": {"type": "string", "description": "Search query"},
                },
                "required": ["query"]
            }
        )
    ]

@app.call_tool()
async def call_tool(name: str, arguments: dict):
    if name == "search_docs":
        results = await search_documentation(arguments["query"])
        return [TextContent(type="text", text=results)]

if __name__ == "__main__":
    import asyncio
    asyncio.run(stdio_server(app))

This is significantly less boilerplate than the early 2025 equivalent, which required more manual JSON-RPC handling.

The TypeScript SDK is similar and arguably more mature, since Claude Desktop uses TypeScript internally. Most of the officially maintained servers are TypeScript.


Real deployment patterns

The original MCP vision was largely about local servers running on the developer's machine. The stdio transport model (launching a local process and communicating over standard input/output) reflects this origin.

Production agent deployments look different. You're running agents in the cloud, possibly at scale, and you need MCP servers that are network-accessible and stateless or properly stateful.

The HTTP+SSE transport is the right choice for production deployments. You run your MCP server as a regular web service, agents connect to it over HTTP, and the SSE channel handles streaming responses. You can put standard infrastructure in front of it: load balancers, auth middleware, rate limiting.

A pattern that works well: deploy MCP servers as small, focused microservices. Your database MCP server handles database queries. Your internal docs MCP server handles documentation search. Your ticket system MCP server handles Linear or Jira access. Each server is deployable independently, auditable, and has a clear blast radius if something goes wrong.

The alternative, a single giant MCP server that does everything, is simpler to start with but harder to maintain and creates security risks (if the server is compromised, all your tool access is exposed).


The problems that haven't been solved

MCP has made real progress but several issues remain genuinely hard.

Trust and security. How does a user know that an MCP server is doing what it says it's doing? A server claiming to "search the web" could be doing anything. There's no sandboxing, no code signing, no runtime verification that server behavior matches the advertised specification. For enterprise use, this is a real concern.

Context management. When an agent connects to 10 different MCP servers, that's potentially hundreds of tools being advertised to the model. Including all of them in the context window is expensive and degrades the model's ability to choose the right tool. Better dynamic tool selection, where the agent's context manager decides which tools to make available based on the current task, is still an open problem.

Stateful sessions across reconnects. If an agent is partway through a long task and the MCP connection drops, resuming cleanly is hard. The protocol doesn't have a built-in session resumption mechanism. Server implementers handle this inconsistently.

Version negotiation. As the spec evolves, clients and servers need to agree on which version they're speaking. The current version negotiation mechanism works but can produce confusing errors when there are mismatches.


Where it goes from here

The direction is fairly clear. Enterprise features (auditing, access controls, compliance metadata) are coming as large organizations start deploying MCP in production. The sampling spec is likely to get more adoption as multi-model agent patterns become more common.

The more interesting question is whether MCP becomes the default tool integration standard or whether it ends up as one of several standards that fragment the ecosystem. OpenAI's tool calling format is also widely supported. Google has its own tool definitions in the Gemini API. None of these are fully interoperable.

For now, MCP has the advantage of being model-agnostic by design. OpenAI's tool format is OpenAI-specific. MCP's charter is explicitly about working with any LLM client. That's a genuine differentiation if the ecosystem keeps expanding beyond Anthropic's own products.

If you're building AI tooling today, supporting MCP is a reasonable bet. The ecosystem is real, the clients are shipping, and the developer investment to build an MCP server is modest. Whether it becomes the dominant standard or one of several options, the servers you build now will have a real audience.

Search