What Is MCP (Model Context Protocol)? A Beginner’s Explainer
TL;DR: MCP (Model Context Protocol) is an open standard that lets AI apps such as Claude, ChatGPT, VS Code and Cursor connect to external tools and data through MCP servers.
MCP is the open standard that lets AI apps such as Claude, ChatGPT, VS Code and Cursor plug into outside tools and data. This guide explains what it is, how the pieces fit together, and what actually happens when you “add an MCP server”.
Open the MCP Config Generator →All guides
The one-sentence version
The official documentation describes MCP (Model Context Protocol) as “an open-source standard for connecting AI applications to external systems” and compares it to a USB-C port: one standard plug instead of a different cable for every device (What is MCP?).
In practice that means a developer writes an integration once — say, for a database, a ticket tracker or the local file system — as an MCP server, and every app that speaks MCP can use it. Before MCP, each AI app needed its own plug-in format, so the same integration was rebuilt many times.
Hosts, clients and servers
MCP uses a client–server design with three roles (MCP architecture):
- Host — the AI application you use, such as Claude Desktop, VS Code or Cursor. It coordinates everything and decides what reaches the model.
- Client — a connector object the host creates for each server. Each client keeps one dedicated connection to one server.
- Server — the program that provides context and actions: a file-system server, a GitHub server, a browser-automation server, and so on. It can run on your machine or on the internet.
The docs use VS Code as an example: when it connects to a Sentry server and a local file-system server, it creates two separate MCP client objects, one per server.
What a server can offer
MCP defines three core “primitives” that servers expose:
| Primitive | What it is | Example |
|---|---|---|
| Tools | Functions the AI app can invoke to perform actions | Write a file, query a database, call an API |
| Resources | Data sources that provide context | File contents, database records, API responses |
| Prompts | Reusable templates that structure an interaction | A “review this PR” prompt with arguments |
There are also client-side features. Servers can ask the user for extra input (elicitation). The architecture page notes that sampling — servers asking the host’s model to generate text — is deprecated as of protocol version 2026-07-28.
Local vs remote: the two transports
- stdio — the host starts the server as a child process on your computer and talks to it over standard input/output. This is what you configure with a
commandandargs, e.g.npx -y @modelcontextprotocol/server-filesystem. A local stdio server typically serves a single client. - Streamable HTTP — the server runs somewhere else and the host connects to a URL. It uses HTTP POST plus optional Server-Sent Events, supports bearer tokens, API keys and custom headers, and MCP recommends OAuth for obtaining tokens. Remote servers typically serve many clients.
Under both transports the messages are the same: MCP’s data layer is built on JSON-RPC 2.0. In the current version the protocol is stateless — every request carries the protocol version and relevant capabilities in its _meta field, and clients can call server/discover to learn what a server supports.
What “adding an MCP server” looks like
For a local server you usually add a few lines of JSON to your app’s config. This is the official Claude Desktop example for the file-system server:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/username/Desktop",
"/Users/username/Downloads"
]
}
}
}
The paths at the end are the only folders the server may touch. After a restart, the app launches the server, discovers its tools, and the model can ask to use them — with your approval. Remote servers are added by URL instead; in Claude that happens in Settings → Connectors → Add custom connector (Connect to remote MCP servers).
Different apps use slightly different files and keys — Claude Desktop and Cursor use mcpServers, VS Code’s own mcp.json uses servers. Our MCP config generator writes the right format for each, and the setup guide walks through all three apps.
MCP vs function calling
Function calling is a feature of a model API: you describe functions in a request, the model replies with a structured call, and your code runs it. MCP sits one level up. It standardises how an application discovers tools from external servers and invokes them, so the same server works in many apps. Hosts still use the model’s tool-calling ability underneath; MCP is the plumbing that brings the tools in.
Who supports MCP
The official introduction lists AI assistants such as Claude and ChatGPT and development tools such as Visual Studio Code and Cursor among the clients that support MCP, and points to an ecosystem of servers and SDKs. A reference collection of servers (file system, fetch and more) is maintained alongside the specification.
Safety: what to check before you install
- A local server runs with your permissions. The Claude Desktop guide warns that the file-system server “runs with your user account permissions”, so grant only the folders you are comfortable with.
- Review the publisher. VS Code’s docs advise reviewing the publisher, command or endpoint and requested access before starting a server, because local servers can run code on your machine.
- Approve actions. Hosts ask before a tool runs. Read the request instead of clicking through.
- Keep secrets out of git. Tokens belong in environment variables or the app’s secret prompts, not in a committed config file.
Key terms
| Term | Meaning |
|---|---|
| Host | The AI app (Claude Desktop, VS Code, Cursor…) |
| Client | One connection object per server, created by the host |
| Server | Program exposing tools, resources and prompts |
| stdio | Local transport: host launches the server process |
| Streamable HTTP | Remote transport: host connects to a URL |
| JSON-RPC 2.0 | Message format used by every MCP request and response |
Sources
Vendor features and prices were checked against these official pages on 2026-10-20. Products change; if something here no longer matches, the official page is right.
- Model Context Protocol — What is MCP?
https://modelcontextprotocol.io/docs/getting-started/intro - Model Context Protocol — Architecture overview
https://modelcontextprotocol.io/docs/learn/architecture - Model Context Protocol — Connect to local MCP servers
https://modelcontextprotocol.io/docs/develop/connect-local-servers - Model Context Protocol — Connect to remote MCP servers
https://modelcontextprotocol.io/docs/develop/connect-remote-servers - VS Code — Add MCP servers
https://code.visualstudio.com/docs/copilot/customization/mcp-servers