Book a Free Strategy Call
Skip the read — talk to Walid in 30 min.
Free strategy call. We map your AI engineering team, you keep the notes.
Every team trying to build a useful AI agent in 2025 hit the same wall. The model was smart enough. The prompts were good enough. The blocker was always integration. Each new tool — Slack, Notion, a database, an internal API — meant another custom adapter, another schema, another set of error cases the model had never seen. The agent was 80% magic and 20% plumbing, and the plumbing was where projects died.
The Model Context Protocol, or MCP, is the standard that fixed that. Anthropic published it as open spec in late 2024, and by 2026 it is the de-facto USB-C of AI agents: one protocol, one shape of contract, every model and every tool on either side. Claude Code uses it. Cursor uses it. ChatGPT, Cline, Windsurf, Zed, and a long tail of agent frameworks use it. If you are building anything that connects an LLM to the real world, MCP is now the layer you build on.
This guide explains what MCP actually is, the three primitives it defines, the transports it runs over, how it compares to function calling and to OpenAI's plugin model, where it is being adopted, the trade-offs nobody talks about, and why buyers — not just developers — should care. By the end you will know enough to evaluate vendors, scope projects, and avoid the integration trap that killed half of last year's agent pilots.
What MCP is (in plain English)
MCP is an open protocol, published by Anthropic, that standardizes how large language models connect to external data and tools. That is the entire pitch. It does not ship a model, it does not ship a UI, it does not own your data. It is a wire format and a set of rules — JSON-RPC under the hood — that lets any MCP-compatible client (the model or the agent host) talk to any MCP-compatible server (a tool, a database wrapper, a SaaS integration) without either side knowing about the other in advance.
The mental model that works best: MCP is to AI agents what HTTP is to the web. Before HTTP, every browser-server pair had to agree on a custom protocol. After HTTP, a browser from one vendor could fetch a page from any server in the world. MCP plays the same role for agents. Before MCP, every model-tool pair was a bespoke integration. After MCP, the same Slack server works in Claude Code, Cursor, ChatGPT, and any future client that speaks the protocol.
The architecture has three roles. A host is the application the user sees — Claude Desktop, Cursor, an internal agent UI. A client is the piece inside the host that maintains one connection to one server. A server is the program that exposes tools, resources, and prompts. Hosts can run many clients, each connected to a different server, and servers can be local processes or remote services. The model itself never talks to a server directly; the host orchestrates, the model decides, the protocol carries the messages.
The spec is intentionally minimal. It defines how to list capabilities, how to call a tool, how to read a resource, how to subscribe to changes, and how to negotiate version compatibility. It does not define how the model should reason about tools, how to authenticate end users, or what your business logic should look like. That separation is why adoption moved fast: MCP doesn't tell you how to build, only how to talk.
The 3 primitives: Tools, Resources, Prompts
Everything an MCP server exposes falls into one of three categories. Understanding them is the difference between a vendor demo making sense and not making sense.
Tools are functions the model can call. They take typed inputs, return typed outputs, and have side effects. "Send a Slack message," "create a GitHub issue," "run this SQL query," "book a calendar slot." Tools are the action surface. Each tool has a JSON Schema describing its arguments, a name, and a description the model reads to decide when to invoke it. From the model's perspective, calling an MCP tool feels identical to calling a function — the protocol handles dispatching the call to whichever server owns it.
Resources are read-only data the model can pull into context. A file on disk, a row in a database, a page in Notion, a record in a CRM. Resources are addressed by URI and can be either static (the host fetches once) or subscribed (the server pushes updates when the underlying data changes). The split matters: tools mutate, resources inform. A well-designed MCP server uses resources for "give the model the current state of this document" and tools for "change the state of this document." Conflating the two is the most common design mistake.
Prompts are reusable templates the server provides to the host. A code review prompt, a meeting summary prompt, a triage prompt. Prompts are surfaced in the host's UI — usually as slash commands or quick actions — and the host expands them with the right resources and tools before sending them to the model. Prompts are how a server says "here is the right way to use me," which matters when one server exposes thirty tools and the model needs guidance on combining them.
A solid MCP server uses all three. The GitHub server exposes tools (open PR, comment, merge), resources (the contents of an issue, the diff of a PR), and prompts (review this PR, summarize this issue thread). The model gets a complete picture: what it can do, what it can read, and how the server's author thinks it should be used.
Transports: stdio vs SSE vs Streamable HTTP
MCP defines the message format but lets the connection run over different transports. In 2026 there are three that matter, and which one you pick shapes your deployment.
stdio is the simplest. The host launches the server as a child process and talks to it over standard input and output. Every message is a JSON-RPC frame on stdin or stdout. This is how most local MCP servers run today — Claude Desktop spawns the filesystem server, the GitHub server, the Postgres server, each as a separate process on the user's machine. Latency is microseconds, security is "whatever the host process can do," and there is no network exposure. The downside: stdio servers only run where the host runs, which means they are useless for multi-user or hosted scenarios.
SSE (Server-Sent Events) was the original remote transport. The client opens a long-lived HTTP connection, the server streams events back, and the client sends new messages on a separate POST endpoint. It works, and a lot of hosted servers shipped on SSE in 2024 and 2025, but the dual-channel design is awkward, proxies and load balancers handle it badly, and reconnect logic is painful. SSE is being phased out.
Streamable HTTP is the modern remote transport, standardized in 2025 and now the default for new servers. It is a single HTTP endpoint that handles both directions: client sends a POST, server can respond with either a regular JSON response or an event stream when it wants to push multiple messages. It plays well with CDNs, load balancers, and serverless platforms. It supports session resumption, which means a dropped connection does not lose state. Any new remote MCP server in 2026 should be Streamable HTTP. If a vendor is still on SSE, ask why.
The practical guidance: local developer tools and personal automations should use stdio because it is faster, simpler, and more secure. Hosted SaaS integrations, multi-tenant servers, and anything an organization runs centrally should use Streamable HTTP. The same server code can usually expose both — most SDKs make it a one-line switch.
MCP vs function calling — when each wins
Function calling is the older idea. The model provider — OpenAI, Anthropic, Google — defines a way for the model to emit a structured "call this function with these arguments" message, and the developer's application catches it, runs the function, and feeds the result back. Function calling is built into the model API itself.
MCP sits one layer up. The host still uses function calling under the hood to talk to the model — that part does not change. What MCP changes is where the functions come from. With raw function calling, the developer hard-codes the available functions into the app at build time. With MCP, the host discovers functions at runtime by asking each connected server "what tools do you expose?" The model sees the same function-calling API, but the host can plug and unplug capability surfaces without redeploying.
When function calling wins: tightly scoped products where the tool list is small, fixed, and shipped with the app. A customer-support bot with five canned actions does not need MCP. A coding agent that may use any of a hundred different tools, some user-installed, some org-installed, some discovered dynamically, absolutely does.
The other reason MCP wins for serious agent builds: standardization across hosts. If you write a Postgres integration as a function in one app, it is locked to that app. If you write it as an MCP server, it works in Claude Code, Cursor, ChatGPT, and any host your customers want to use. For internal platforms, this means one integration team can serve every agent product in the company. That is the leverage story.
MCP vs OpenAI Plugins / Custom GPTs
OpenAI Plugins, launched in 2023, were the first widely visible attempt at "standard way to give a model tools." They were ChatGPT-only, used an OpenAPI spec for the contract, and ran over HTTPS. They worked, but they died fast — adoption was thin, the developer experience was rough, and the format was tied to one vendor's product.
Custom GPTs replaced Plugins inside ChatGPT. They are friendlier — point and click setup, no code required for simple cases — but the lock-in got tighter, not looser. A Custom GPT only runs inside ChatGPT, only uses OpenAI's models, and the "actions" feature is still an OpenAPI integration scoped to that single GPT.
MCP is the opposite design philosophy on every axis. It is open spec, multi-vendor, multi-model, multi-host. The same server code runs in any compliant client. The protocol is JSON-RPC, not OpenAPI, because the use case is different — OpenAPI describes REST APIs intended for human-supervised use, MCP describes tool surfaces intended for model use, with richer typing for things like resource subscriptions and prompt templates.
In 2025, OpenAI itself shipped MCP support in ChatGPT and the Responses API. That was the moment the format war ended. Anthropic, OpenAI, Google, and the major open-source agent stacks all converged on MCP. Custom GPTs and Plugins still exist, but they are now legacy paths. New integration work goes through MCP.
Where MCP is being adopted in 2026
Adoption split into three layers, and all three are now production-deep.
Coding agents went first. Claude Code shipped with MCP as its native extension model — every connector, every internal tool integration, every IDE bridge is an MCP server. Cursor added MCP support in early 2025 and now has hundreds of community servers in its directory. Cline, Windsurf, Zed, Continue.dev, and most of the long tail of code-focused agent IDEs followed within months. If you are building a Claude Code agency deliverable, MCP is the integration model your client expects.
General chat hosts caught up next. ChatGPT now supports remote MCP servers in its connector framework. Claude Desktop has had MCP since launch. Microsoft Copilot Studio, Google's Agent Builder, and the major open-source frameworks — LangGraph, CrewAI, Pydantic AI — all speak MCP. The result is that a single MCP server you build for a customer can be installed across every host that customer's team uses, without rewrites.
Vertical agent products are the third wave. Customer-support platforms, sales intelligence tools, vertical SaaS — anything where the vendor wants to let customers plug in their own data sources — is shipping MCP support as the connection model. It is cheaper than building a connector framework from scratch, and customers can reuse servers they already trust.
The directory ecosystem matured alongside. The official MCP registry, smithery.ai, mcp.so, and the directories inside individual hosts now list thousands of servers. Some are first-party from vendors like GitHub, Cloudflare, Stripe, Linear, Sentry. Some are community-maintained. For a deeper look at the best ones to install, see our roundup of the best Claude Code MCP servers.
Trade-offs and limits
MCP is good. It is not a silver bullet. The honest list of trade-offs in 2026:
Security is the developer's job. The protocol does not define authentication, authorization, or sandboxing. A local stdio server runs with whatever permissions the host has. A remote Streamable HTTP server has to roll its own OAuth, API keys, or session model. The spec is adding standardized auth flows, but in production today you cannot assume a random MCP server is safe to install. Treat every server as a code dependency — read it, pin it, sandbox it.
Context bloat is real. Every connected server contributes tool definitions, resource lists, and prompt templates to the model's context window. Three or four well-chosen servers are fine. Twenty servers with thirty tools each will eat your context budget before the user types a word. Hosts are starting to ship lazy loading and capability filtering, but right now the burden is on the host designer and the user to keep the toolbox small.
Discovery is still messy. "Which server should I install for X?" is a real question with bad answers. Directories help, but quality varies. A search for "Notion" returns four servers, two abandoned. Vendor-published official servers solve part of this — install Notion's own MCP server, not a stranger's — but coverage is incomplete.
Cross-server orchestration is a gap. MCP defines how a host talks to one server at a time. It does not define how two servers coordinate. If your workflow needs the GitHub server and the Linear server to share state, that orchestration lives in the host or the agent code, not in MCP. This is fine — protocols should be narrow — but newcomers expect more than the spec provides.
Versioning is young. The spec evolved fast through 2024 and 2025. Older servers may not speak the current version, and host-server mismatches still happen. The negotiation step handles graceful degradation in theory; in practice, you will hit edge cases.
Examples of useful MCP servers in production
A short list of what working teams actually run in 2026, by category:
- Source control: GitHub's official server, GitLab's official server. Read PRs, write reviews, manage issues, search code.
- Project management: Linear's official server, Jira via Atlassian's server, Notion's official server. Pull tickets into context, file new ones, update status.
- Databases: Postgres MCP server (Anthropic-maintained reference), the Supabase MCP server for managed Postgres, BigQuery server, MongoDB server. Schema introspection plus parameterized queries.
- Observability: Sentry's official server, Datadog's server, PostHog's server. Pull errors, traces, and events into agent reasoning.
- Filesystem and local shell: The reference filesystem server and a sandboxed shell server. Indispensable for coding agents.
- Payments and ops: Stripe's official server, Vercel's deployment server, Cloudflare's. Trigger real operations from natural language with appropriate guardrails.
- Memory and knowledge: A vector store wrapper (most teams write their own), the OpenMemory server for cross-session memory, custom RAG servers over internal docs.
The shape of a mature stack is four to seven servers — one per major surface area — not twenty. If you want a deeper build guide for writing your own, our MCP server development guide walks through the patterns.
Why MCP matters for buyers, not just devs
If you are a founder or operator evaluating an AI partner, MCP changes what good looks like.
First, it changes vendor lock-in math. A vendor that ships custom integrations only inside their own product is selling you a walled garden. A vendor that ships MCP servers is selling you portable assets — the same integrations work in Claude Code, in Cursor, in ChatGPT, and in whatever your team migrates to next year. Ask vendors whether their integrations are MCP servers or proprietary connectors. The answer tells you how much you are locking in.
Second, it changes integration cost estimates. Custom point-to-point integrations used to be the dominant line item in agent project budgets — a custom Slack adapter, a custom Salesforce adapter, a custom internal-API adapter, each one weeks of work. With MCP, the official servers from most major vendors are already written. Your team configures and extends, instead of building from scratch. Realistic project budgets in 2026 should reflect that shift; if a quote treats every integration like greenfield, the vendor is either behind or padding.
Third, it changes the buy-vs-build question for internal tools. Internal APIs are now worth wrapping as MCP servers even if you only have one agent product today, because the marginal cost of letting every future agent product use them is zero. Treat MCP server coverage of your internal surface area as platform infrastructure, the same way you treat your auth service or your data warehouse.
Fourth, it changes what "AI-ready" means for your data and SaaS choices. A vendor with a maintained, official MCP server is closer to AI-ready than one with only a REST API or a Zapier app. Over the next eighteen months, MCP support will become a standard procurement question.
Closing CTA
MCP is the integration layer for AI agents. It removed the biggest blocker in agent development — the bespoke-integration tax — and made it possible to build serious, durable agent products without rewriting connectors every quarter. If you are scoping a real agent build in 2026, MCP should be at the center of the architecture, and your vendor should treat it that way.
AY Automate builds production AI agent systems on Claude Code, the Claude Agent SDK, and the MCP ecosystem. We design MCP server architectures for internal tooling, integrate official servers into client workflows, and ship custom servers when the vendor catalogue does not cover a use case. If you are evaluating whether MCP fits your stack, or scoping a custom server build, book a consultation and we will walk through your integration map. For teams committing to Claude Code as their agent IDE, our Claude Code agency service covers the full MCP build pipeline end to end.
FAQ
What is MCP protocol in one sentence? MCP, or Model Context Protocol, is Anthropic's open standard for connecting large language models to external tools and data sources using a common JSON-RPC contract, so any compatible client can talk to any compatible server without bespoke integration work.
Is MCP only for Claude? No. MCP started at Anthropic but is now supported by ChatGPT, Cursor, Cline, Windsurf, Zed, Microsoft Copilot Studio, and most major open-source agent frameworks. The same server runs in any compliant host, regardless of which model is underneath.
How is MCP different from function calling? Function calling is the model-level mechanism for emitting structured tool calls. MCP is a layer above that defines how the host application discovers and connects to external tool providers at runtime. Hosts still use function calling under the hood to talk to the model; MCP changes where the available functions come from and standardizes the contract so they are portable across hosts.
Is MCP secure? The protocol itself is just a message format and does not define authentication or sandboxing. Security is the responsibility of the host and the server. Local stdio servers inherit the host's permissions. Remote servers should ship OAuth, API key, or session-based auth, and every server should be treated as a code dependency you review and pin like any other.
Do I need to know how to code to use MCP? No, if you are an end user. Most hosts let you install MCP servers from a directory with a click. Yes, if you are building custom servers for an internal system — server development is real engineering work, though the SDKs (TypeScript, Python, Go, and others) make it dramatically easier than building a custom integration framework from scratch.
What is the difference between stdio and Streamable HTTP transports? Stdio runs the MCP server as a child process of the host and talks over standard input and output — best for local developer tools and personal automations. Streamable HTTP runs the server as a network service over a single HTTP endpoint — best for hosted, multi-tenant, or organization-wide deployments. SSE is an older remote transport being phased out.
Will MCP replace OpenAI Plugins and Custom GPTs? For new development, yes. OpenAI itself adopted MCP in 2025, and Custom GPTs and Plugins are now legacy paths. Existing Custom GPTs still work inside ChatGPT, but the industry has converged on MCP as the cross-vendor standard for tool integration.
How do I pick the right MCP servers for my stack? Start with official vendor servers for your core SaaS — GitHub, Linear, Notion, Stripe, your database. Keep the active set small, four to seven servers, to protect context budget. Audit any community server you install the same way you would audit any other dependency. For a curated short list of the strongest servers in the Claude Code ecosystem, see our best Claude Code MCP servers roundup, and for building your own, the MCP server development guide covers the patterns.
Book a Free Strategy Call
Building this in production?
Walid runs a 30-min call to map your AI engineering team. Free, no slides.

Walid founded AY Automate to help businesses ship AI workflows that actually move revenue. He leads strategy and oversees every client engagement end-to-end.
Full Bio →