Glossary
Every MCP term and abbreviation used across the fundamentals track, grouped by theme — architecture, primitives, deprecated features, transport, auth, and extensions
Glossary
How to use this page
Every term and abbreviation used anywhere in this track, expanded and explained in plain language, grouped by theme rather than alphabetically. Where a concept has a full explanation elsewhere, the entry links to it.
| Property | Value |
|---|---|
| Level | All levels — reference |
| Reading time | Reference; skim or search |
| Prerequisites | Designing an MCP-Based System |
| You will understand | Every piece of MCP vocabulary used across the fundamentals track |
Architecture & Core Concepts
| Term | Meaning |
|---|---|
| MCP | Model Context Protocol — an open standard for connecting AI applications to external tools, data, and workflows. See What Is MCP? |
| Host | The AI application coordinating one or more MCP clients — Claude Desktop, Claude Code, VS Code |
| Client | The connector inside a host, one per connected server, holding the dedicated connection |
| Server | A program exposing tools, resources, or prompts through MCP — local or remote |
| M×N problem | The integration explosion MCP solves — M applications × N tools, each needing a bespoke integration, becomes M+N |
| Data layer | The JSON-RPC 2.0 message protocol defining tools, resources, prompts, and notifications |
| Transport layer | How messages actually travel between client and server — stdio or Streamable HTTP |
| JSON-RPC 2.0 | The underlying request/response message format MCP builds on |
| Statelessness | As of spec version 2026-07-28, every request carries its own version and capabilities — no session-level handshake state is relied on |
_meta | The field every MCP request carries protocol version, client identity, and capabilities in |
| protocolVersion | The specific spec version a request declares it's speaking, e.g. 2026-07-28 |
| clientCapabilities / clientInfo | The capability declaration and identity fields a client sends on every request |
server/discover | The optional request a client sends to learn a server's supported versions and capabilities, with caching hints |
ttlMs / cacheScope | The freshness hint and reuse scope attached to a cacheable response like server/discover |
UnsupportedProtocolVersionError | Returned when a client requests a protocol version the server no longer supports, listing what it does support |
Primitives
| Term | Meaning |
|---|---|
| Tool | A model-controlled, invokable function a server exposes. See Tools |
tools/list / tools/call | Discover a server's tools, and execute one |
inputSchema | The JSON Schema defining a tool's expected arguments |
| Resource | Application-controlled, read-only context a server exposes. See Resources & Prompts |
| Direct resource | A resource at a fixed URI, e.g. calendar://events/2026 |
| Resource template | A parameterized resource URI, e.g. weather://forecast/{city}/{date} |
| Parameter completion | Suggesting valid values as a resource template or prompt argument is typed |
resources/read | Retrieve a resource's actual content |
| Prompt | A user-controlled, reusable template a server exposes, e.g. a slash command. See Resources & Prompts |
prompts/get | Retrieve a specific prompt's full definition and arguments |
subscriptions/listen | The long-lived stream a client opens to receive a filtered set of notifications |
| Notification | A one-way, no-response JSON-RPC message informing a client of a change |
list_changed | The notification family signaling a server's tools, resources, or prompts changed |
Deprecated Primitives (2026-07-28)
| Term | Meaning |
|---|---|
| Sampling (deprecated) | The old mechanism letting a server request an LLM completion from the client. See Deprecated Primitives — new implementations should call an LLM provider API directly instead |
| Roots (deprecated) | The old mechanism for a client to tell a server which directories/files are in scope — migrate to passing paths via tool parameters or configuration |
| Logging primitive (deprecated) | The old protocol-level mechanism for a server to send log messages to a client — migrate to stderr (stdio) or OpenTelemetry |
| Elicitation | The one client-side primitive still fully current — a server asking the user for more input mid-operation. See Elicitation |
elicitation/create | The method a server calls to request user input |
| MRTR (Multi Round-Trip Requests) | The pattern elicitation (and the deprecated sampling/roots) are delivered through — a request that pauses for an intermediate round trip before completing |
Transport & Authorization
| Term | Meaning |
|---|---|
| stdio transport | Standard input/output between local processes — no network overhead, typically one client per server. See Transports |
| Streamable HTTP transport | HTTP POST with optional Server-Sent Events for streaming — the remote, multi-client transport |
| SSE (Server-Sent Events) | An optional streaming mode within Streamable HTTP, not a standalone transport as in early MCP |
| OAuth 2.1 | The authorization framework MCP's authorization spec is built on. See Authorization & Security |
| Resource server | The role an MCP server plays in the OAuth model — it accepts and validates access tokens |
| Protected Resource Metadata (RFC 9728) | How an MCP server advertises the location of its authorization server |
| Client ID Metadata Document | The preferred client-registration mechanism — an HTTPS URL used as the client ID |
| Dynamic Client Registration (deprecated) | The older client-registration mechanism, kept only for backward compatibility |
| PKCE | The proof-of-possession mechanism protecting the OAuth authorization code exchange |
resource parameter (RFC 8707) | Scopes a requested token to one specific, canonical MCP server URI |
| Audience binding | The property that a token issued for one server is rejected by any other — expected behavior, not a bug |
| Canonical server URI | The normalized form of an MCP server's address used in the resource parameter |
| Issuer validation (RFC 9207) | Confirming an authorization response actually came from the expected authorization server |
| Step-up authorization | Requesting additional scopes at runtime after hitting an insufficient_scope error |
insufficient_scope | The 403 error returned when a token lacks the scope a specific operation requires |
| Refresh token | A credential used to obtain a new access token without re-running the full authorization flow |
| Confused deputy | A trusted party (the model) tricked into performing an unintended, higher-privilege action — the threat model behind untrusted tool descriptions |
Extensions & Tooling
| Term | Meaning |
|---|---|
| Extension | An optional, opt-in protocol addition, always negotiated during discovery. See Extensions |
| Vendor prefix | The namespacing convention for extension identifiers, e.g. io.modelcontextprotocol/ for official ones |
| MCP Tasks | The extension providing durable handles for long-running operations — poll for status, accept mid-flight input |
| MCP Apps | The extension for interactive UI (charts, forms, a video player) rendered inline in a conversation |
| Skills over MCP | The extension for rich, structured agent-workflow instructions discovered through MCP |
| FastMCP | The Python SDK's high-level, decorator-based interface for building a server. See Building Servers & Clients |
| MCP Inspector | The standard tool for testing a server locally before connecting it to a real host |
claude mcp add | The Claude Code CLI command for connecting an MCP server. See Connecting Claude to MCP |
| MCP connector | The Claude API feature letting a Messages API call talk to a remote MCP server directly, via mcp_servers + mcp_toolset |
| Progressive tool discovery | Loading tool definitions on demand rather than dumping every connected server's tools into context upfront. See MCP Agents & Tool Design |
MAX_MCP_OUTPUT_TOKENS | Claude Code's environment variable controlling the per-tool-call output cap (default 25,000 tokens) |
| Idle timeout | The duration a tool call may run before being considered stalled — 5 minutes for HTTP/SSE/WebSocket, 30 for stdio in Claude Code by default |
Next
That completes the MCP fundamentals track. Project Ideas lays out a real project — a remote, authenticated MCP server — to put all of this to work. For a fast one-page refresher on any of it, revisit the MCP Crash Course.
Designing an MCP-Based System
A complete worked example — an internal developer-tools MCP server, reachable by engineers, a shared team config, and an on-call agent
Project Ideas
A starting brief for an MCP capstone — a remote personal knowledge-base server, reachable from Claude and your own agents alike