Quick answer
- What it is
- A program that exposes tools + data to AI agents over MCP
- The protocol
- Model Context Protocol, an open standard from Anthropic
- Exposes
- Tools (call), Resources (read), Prompts (invoke)
- Talks over
- stdio (local subprocess) or an HTTP transport (remote), via JSON-RPC
The One-Sentence Answer
An MCP server is a small program that gives an AI agent access to capabilities it does not have on its own, searching the web, reading a database, controlling a browser, checking GitHub, by exposing them through the Model Context Protocol (MCP). Because MCP is an open standard, one server works with every MCP-compatible agent, so the integration you write once is reusable everywhere.
If you just want a ranked list of servers to install, jump to the best MCP servers for AI coding. This page explains what an MCP server actually is and how the moving parts fit together.
What the Model Context Protocol Is
MCP is an open standard created by Anthropic that defines a single interface between AI models and the outside world. The common analogy is USB-C: before it, every device needed its own cable; after it, one port fits everything. Before MCP, each AI tool needed a bespoke integration for every service; with MCP, any compatible agent speaks to any compatible server through the same protocol.
The point is reuse. A GitHub MCP server written once is usable from Claude Code, from Codex, and from the next agent that ships, without anyone rewriting the integration. That is why hundreds of servers existed within a year of the protocol's release, and why MCP became the default way to extend coding agents in 2026.
Host, Client, Server: Who Does What
Three roles, and keeping them straight removes most of the confusion around MCP:
| Role | What it is | Example |
|---|---|---|
| Host | The AI application you actually use; it contains the model and manages the clients. | Claude Code, Codex, an agentic IDE, AIDEN |
| Client | A connector inside the host that maintains one dedicated link to one server. | The connection Claude Code opens to your GitHub server |
| Server | The program exposing tools, resources, and prompts. | GitHub MCP, Postgres MCP, a server you write |
Each client holds a one-to-one connection to a single server, so a host with three servers runs three clients. That isolation matters: one misbehaving server cannot see or interfere with another's connection. The model never talks to a server directly, it asks the host, and the host's client makes the call, which is also where permission and approval controls live.
Your AI workspace for shipping software.
Download AIDEN free and point it at your existing Claude Code or Codex setup. No credit card, running in minutes.
Download AIDEN freeFree to start · macOS 12+ · No credit card required
The Three Things a Server Can Expose
An MCP server offers up to three kinds of capability. Coding servers lean on the first, but all three are part of the standard:
Tools
Resources
Prompts
The split between model-controlled tools and application-controlled resources is deliberate. The model decides when to call a tool, but the host decides which resources to expose, so a server cannot quietly read data you never surfaced. This is closely related to, but distinct from, agent skills: skills are procedural know-how loaded into the model, MCP servers are live connections to external systems.
How a Server and Agent Actually Talk
Under the hood, host and server exchange JSON-RPC messages over a transport. Two transports cover almost everything:
| Transport | When it's used | How it runs |
|---|---|---|
| stdio | Local servers, the common case for coding | The host launches the server as a subprocess and talks over standard input/output. Nothing leaves your machine. |
| HTTP-based | Remote / hosted servers | A server runs as a web service so it can serve many clients over the network, useful for shared or cloud-hosted tools. |
For local development, stdio is what you will use most: the install command below simply tells the host how to spawn the server process. Because the model only ever sees the tools and their results, never the transport, you can move a server from local stdio to a remote HTTP endpoint without changing how the agent uses it.
Running Your First MCP Server
You rarely write a server to get started, you connect an existing one. In Claude Code, adding the GitHub server takes one command:
# Claude Code, local scope, stored in ~/.claude.json
claude mcp add github \
-e GITHUB_PERSONAL_ACCESS_TOKEN=ghp_your_token_here \
-- npx -y @modelcontextprotocol/server-github
# list what's connected
claude mcp listScope decides where the entry is stored. Local and user scope live in ~/.claude.json, private to your machine. Project scope writes a .mcp.json at the repo root that you commit, so everyone who clones the project inherits the same servers:
// .mcp.json at the repo root, checked into git (no secrets)
{
"mcpServers": {
"fetch": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-fetch"]
}
}
}MCP Is Optional, and AIDEN Inherits Yours
You do not need any MCP server to ship code with agents, Claude Code and Codex are useful with zero configured. MCP is an extension layer you reach for when an agent keeps hitting the same wall: stale docs, an unknown schema, invisible CI status.