What Is MCP? The Model Context Protocol Explained

What MCP is, what problem the Model Context Protocol solves, and how tools, resources, prompts, and transports work across ChatGPT, Claude, and other AI clients.

MCP, short for Model Context Protocol, is an open standard that gives AI applications a consistent way to connect to external systems. Its job is straightforward: let an AI host discover tools, load resources, reuse prompts, and call those capabilities without every integration inventing a new contract. The official MCP site describes it as a USB-C port for AI apps, and that is still the fastest accurate mental model.

That is why people care about MCP now. Instead of building one integration for ChatGPT, another for Claude, and another for every editor or agent framework, teams can expose an MCP server and reuse it across hosts that speak the protocol. If you want the practical next step after this explainer, start with How to Add MCP Tools to ChatGPT or see how drio turns a visual setup into an MCP-compatible runtime.

If you only read one section

If someone asks "what is MCP?", the short answer is: MCP is the protocol layer between an AI client and the systems it needs to read from or act on.

If you want the purpose, primary function, and core features in one block:

  • Purpose: give AI applications a standard way to connect to external data, tools, and workflows
  • Primary function: standardize discovery, invocation, and structured responses between hosts and servers
  • Core server primitives: tools, resources, prompts
  • Core participants: host, client, server

What it standardizes:

  • how an AI client discovers available capabilities
  • how those capabilities describe themselves
  • how the client calls them with typed inputs
  • how the server returns structured results
  • how both sides negotiate capabilities before doing work

The architecture guide and the current specification center the same structure: MCP uses JSON-RPC 2.0, keeps a stateful client-server relationship, and supports both local stdio and remote Streamable HTTP transports.

If you only need the decision-making version, here it is:

QuestionShort answer
Is MCP a model?No. It is a protocol.
Does MCP replace APIs?No. It usually sits in front of them.
Is MCP only about tools?No. It also includes resources and prompts.
Does it help with portability?Yes. That is one of the main reasons it exists.

Why MCP matters now

Anthropic introduced MCP on November 25, 2024 as an open standard for connecting AI assistants to the systems where data lives. The goal was straightforward: stop forcing every AI integration to invent its own connector format.

The official MCP clients page now lists ChatGPT, Claude, VS Code, Cursor, and many other hosts. It also shows one useful caveat that a lot of explainers skip: MCP support is not binary. Different clients support different subsets of tools, resources, prompts, roots, sampling, and UI extensions. OpenAI's Apps SDK docs also say ChatGPT supports the MCP Apps open standard for embedded app UIs. That combination is why MCP keeps showing up in product roadmaps now: it is not just a spec people debate. It is a format real hosts are implementing.

For a team building AI-facing tools, that changes the work. Instead of asking "which one-off integration do we ship first?", the better question becomes "what capabilities should we expose once, cleanly, so multiple AI clients can use them?"

What problem MCP actually solves

Without MCP, every AI host and every external system tend to negotiate their own integration shape. One client wants a tool schema in one format. Another expects a different auth flow. A third needs its own transport wrapper. The work multiplies even when the underlying business logic stays the same.

MCP does not eliminate all host-specific differences, but it gives teams a shared contract for the boring but important part: capability discovery, structured calls, structured results, and connection lifecycle. That is the part that makes portability realistic. If you want the longer comparison, MCP vs. REST APIs goes deeper on where MCP fits and where plain APIs are still enough.

What MCP actually standardizes

The architecture overview breaks MCP into three participants:

  • Host: the AI application the user is in, such as ChatGPT, Claude Desktop, or VS Code
  • Client: the connector inside that host that maintains the protocol session
  • Server: the program that exposes context and capabilities

A simplified view looks like this:

Mermaid diagram source:
flowchart LR
  user["User"] --> host["Host<br/>ChatGPT, Claude, VS Code"]
  host --> client["MCP client"]
  client --> transport["Transport<br/>stdio or Streamable HTTP"]
  transport --> server["MCP server"]
  server --> capabilities["Tools, resources, prompts"]
  server --> systems["APIs, databases, files, business logic"]

The same architecture guide splits MCP into two layers:

  • a data layer that handles JSON-RPC messaging, lifecycle management, and primitives
  • a transport layer that handles connection setup, framing, and auth

That split matters because it explains why MCP is portable. The wire format and capability model stay consistent even when the host, the server runtime, or the transport changes.

Here is the transport split in practical terms:

Server shapeTransportUsually runsTypical fit
Local MCP serverstdioOn the same machine as the hostLocal files, developer tools, workstation-only flows
Remote MCP serverStreamable HTTPOn a reachable server or platformHosted apps, team services, multi-user integrations

The official architecture docs also make one useful operational distinction: local stdio servers typically serve one MCP client, while remote Streamable HTTP servers often serve many clients and can use standard HTTP auth patterns.

The specification adds one more helpful framing detail: MCP takes some inspiration from the Language Server Protocol. That is a good mental model if you already know developer tooling. The point is not to replace the underlying system. The point is to standardize how many different hosts talk to it.

The three primitives most people mean when they say "MCP"

A lot of people use "MCP tool" as shorthand for the entire protocol. That is understandable, but incomplete. The server concepts guide says servers expose three building blocks: tools, resources, and prompts.

Tools

Tools are the action surface. They are schema-defined interfaces an LLM can invoke. The official server concepts docs describe them as typed operations with clearly defined inputs and outputs, discovered through tools/list and executed through tools/call.

Examples:

  • search a product catalog
  • create a calendar event
  • update a CRM record
  • look up a shipping status

Tools are usually the part people see first because they make the assistant do something.

Resources

Resources are passive, read-only context sources. The same server concepts page describes them as information the application or model can load for context, like documents, schemas, knowledge bases, or calendar data.

Examples:

  • a product schema
  • a support article
  • a database schema
  • a repo README

Tools do work. Resources provide material the model can reason over.

Prompts

Prompts are reusable instruction templates. In the official server concepts guide, they are presented as pre-built workflows that tell the model how to work with specific tools and resources.

Examples:

  • "plan a vacation"
  • "summarize my meetings"
  • "draft an email from recent notes"

They matter because good AI systems are not only about raw actions. Sometimes the valuable part is packaging a repeatable workflow so the model starts with the right context and structure.

Servers are the main thing most people mean when they say "MCP," but the current specification also lets clients expose capabilities back to servers, including sampling, roots, and elicitation. For a beginner explainer, the important takeaway is still the same: MCP is a two-sided protocol, not just a bag of tool definitions.

What happens during a real MCP interaction

A real MCP flow is more structured than "the model called a tool."

According to the architecture guide and the specification, the typical sequence looks like this:

  1. The host creates a client connection to a server.
  2. Client and server run an initialization exchange.
  3. They negotiate supported capabilities.
  4. The client discovers available tools, resources, or prompts.
  5. The model decides a capability fits the user request.
  6. The client sends a JSON-RPC request.
  7. The server talks to its underlying systems and returns structured results.

That stateful setup is worth paying attention to. MCP is not just a one-off function definition stuffed into a single model request. It is a protocol relationship with lifecycle management, capability negotiation, and consistent discovery.

If you want the deeper technical version, MCP Architecture Explained is the developer-heavy companion to this post.

MCP is not your API replacement

This is the misunderstanding that creates the most noise.

MCP does not replace your backend or your API. In most cases, it sits on top of existing systems and makes them legible to AI clients.

QuestionREST APIMCP
Main consumerApps and developersAI clients and agents
DiscoveryDocs, SDKs, OpenAPIProtocol-level discovery
Message layerHTTP endpoints and app-specific contractsJSON-RPC with capability negotiation
Replaces backend logic?NoNo
Best useGeneral application integrationAI-facing access to tools and context

If you already have clean APIs, databases, and business logic, that is good news. MCP is often the layer that helps AI clients use those systems safely and consistently. It is not a reason to throw them away.

For the longer comparison, read MCP vs. REST APIs. If you are specifically weighing platform-native tool calling against portability, Function Calling vs MCP goes deeper.

A cleaner comparison: APIs, function calling, and MCP

When people compare MCP to everything at once, the category lines get muddy.

The simpler framing is to treat these as different layers:

LayerMain jobBest fitMain limit
Direct API integrationConnect one application directly to one backendTraditional product integrations and internal servicesEvery new host needs custom integration work
Model-native function callingLet one model platform call typed functionsSingle-platform assistants and tightly scoped tool useThe tool contract stays tied to that platform's runtime
MCPStandardize discovery, invocation, and structured results across hosts and serversReusable AI-facing access to tools, context, and UI surfacesHost UX, permissions, and auth still vary

That is why MCP and function calling are not mutually exclusive. A team can use model-native function calling inside one product surface and still expose an MCP server for broader client compatibility. MCP is the portability layer. Function calling is usually the platform-specific invocation layer.

Where MCP shows up in practice

Once you stop thinking about MCP as abstract protocol vocabulary, the use cases get concrete fast.

MCP can power:

  • customer-facing assistants that search products and take actions
  • internal copilots that query dashboards, tickets, and knowledge bases
  • engineering tools that connect editors to files, repos, logs, or deploy systems
  • embedded AI apps that return structured UI instead of only plain text

The official reference servers repository makes that breadth easier to picture. It includes example servers for filesystem access, Git workflows, memory, fetch, and time utilities. That is useful because it shows MCP is not tied to one vertical. It is a general interface pattern for exposing useful context and actions.

That last category matters more than it used to. OpenAI's MCP Apps compatibility guide says ChatGPT supports the MCP Apps standard for embedded app UIs, which run inside an iframe and use a standard ui/* bridge. In other words, MCP is not only about getting text back from a tool call. It can also sit underneath richer app-like experiences inside AI clients.

Want to see MCP outside the spec

If you want a more concrete picture than diagrams and definitions, these are the best next steps:

What most explainers leave fuzzy

"MCP is just tools"

Not quite. Tools are the action surface, but the protocol also includes resources and prompts. If you only think in tool calls, you miss a big part of how context and workflows get structured.

"If I use MCP, I do not need APIs anymore"

Still no. MCP usually wraps or exposes capabilities that already live in APIs, services, databases, or files. It gives AI clients a consistent way to use them.

"Support in one host means the experience is identical everywhere"

Also no. The core protocol can be shared, while UI, permissions, auth flows, and tool-selection behavior still vary by host. That is one reason accurate tool descriptions, annotations, and structured responses matter so much.

"A client either supports MCP or it does not"

Also too simple. The official clients page is a feature matrix, not just a logo wall. One host may support tools only. Another may support prompts, roots, or MCP Apps UIs too. Before you design around a specific primitive or extension, check whether the target host actually supports it.

"MCP handles trust and permissioning for me"

It does not. The specification is explicit about user consent, data privacy, and tool safety. MCP gives you the protocol contract. You still need clear user approval flows, access controls, and sane tool boundaries.

"MCP is only useful for developers"

The protocol is developer-facing. The value is broader. Operators, GTM teams, and product teams benefit when the assistant can safely reach real systems instead of guessing from stale context alone.

Ready to build on top of it

If your goal is not just understanding MCP but shipping something with it, start with one of these:

If you already know the use case and want the faster build path, Build AI Apps Without Code is the better next read.

Summary

MCP is an open standard for connecting AI applications to external systems. It standardizes discovery, capability descriptions, structured calls, and structured responses across a host-client-server architecture. The protocol includes tools, resources, and prompts, runs on top of JSON-RPC 2.0, and supports both local stdio and remote Streamable HTTP transports.

That does not make MCP magical. You still need good APIs, good data, good consent flows, and good product decisions. What MCP changes is the integration surface: one cleaner way for AI clients to work with those systems instead of a new connector format every time. If you keep the layer boundaries straight, the comparison gets simpler too: APIs expose your system, function calling helps one model platform invoke it, and MCP gives many hosts a shared contract for using it.

FAQ

What is the purpose of MCP?

The purpose of MCP is to give AI applications a standard way to connect to external tools, data, and workflows. Its primary function is to standardize how hosts discover capabilities, call them, and receive structured results without every integration inventing its own format.

How does MCP work?

An MCP host creates a client connection to an MCP server, negotiates capabilities, discovers available primitives, and then uses JSON-RPC requests to call the right tool or load the right context for a user request. That can happen over local stdio or remote Streamable HTTP, depending on where the server runs.

Is MCP the same as an API?

No. APIs expose application functionality in general. MCP is the AI-facing protocol layer that helps AI clients discover and use that functionality in a consistent way. In practice, many MCP servers sit in front of existing APIs.

Does ChatGPT support MCP?

Yes. The official MCP docs list ChatGPT among supported clients, and OpenAI's Apps SDK docs say ChatGPT supports the MCP Apps open standard for embedded app UIs. The exact connection and permission flow still depends on the ChatGPT surface, plan, and workspace policy.

What are the three primitives in MCP?

The three core server primitives are tools, resources, and prompts. Tools let the model act, resources provide read-only context, and prompts package reusable workflows or instruction templates.

Get the Builder Brief

Weekly tactical notes on shipping ChatGPT apps, MCP integrations, and product-led distribution.