---
title: "MCP glossary"
description:
  "Definitions for the terms in MCP authentication and the protocol itself: PRM,
  CIMD, DCR, PKCE, resource indicators, Streamable HTTP, statelessness, and the
  MCP error codes. Every entry cites its RFC or specification section."
canonicalUrl: "https://zuplo.com/learn/mcp/glossary"
sourceUrl: "https://zuplo.com/learn/mcp/glossary"
pageType: "other"
generatedAt: "2026-08-18"
---

# MCP glossary

> 39 terms from MCP authentication and the protocol itself, each defined against
> the RFC or specification section it comes from, and marked where the
> 2026-07-28 revision changed it.

_Current as of MCP 2026-07-28._

Each entry below is a pointer, not the full definition — the definition itself
lives on the term's group page, at the linked anchor. This index gives the term,
its group, a one-sentence gist, and the other strings it's also known as.

## Index (A–Z)

### A

- **Audience** — The party a token is intended for. Also written: aud claim ·
  aud · token audience · audience validation failed. _Authorization and tokens._
  [Definition](/learn/mcp/glossary/authorization#aud)
- **Authorization server metadata** (ASM) — A JSON document, published by an
  authorization server, that lists its endpoints and capabilities: issuer,
  authorization_endpoint, token_endpoint, scopes_supported, and which
  registration mechanisms it supports. Also written: RFC 8414 ·
  oauth-authorization-server · AS metadata. _Discovery._
  [Definition](/learn/mcp/glossary/discovery#authorization-server-metadata)

### C

- **Client ID Metadata Documents** (CIMD) — A registration mechanism in which
  the client's client_id is an HTTPS URL that resolves to a JSON document of its
  own metadata, so the authorization server fetches the client's details on
  demand instead of storing a registration. Also written: client ID metadata
  document · client_id_metadata_document_supported · URL client_id · DCR
  replacement. _Credentials and registration._
  [Definition](/learn/mcp/glossary/credentials#cimd)

### D

- **Deprecated, Removed, and Active** — The feature lifecycle policy puts every
  specification feature in exactly one of three states. Also written: deprecated
  · removed · feature lifecycle · deprecation policy · deprecated features
  registry · SEP-2596. _Versions and governance._
  [Definition](/learn/mcp/glossary/governance#deprecated-vs-removed)
- **Dynamic Client Registration** (DCR) — A protocol, defined by RFC 7591, that
  lets a client register itself with an authorization server over HTTP and
  receive a client_id back, with no human in the loop. Also written: RFC 7591 ·
  registration_endpoint · dynamic client registration not supported.
  _Credentials and registration._
  [Definition](/learn/mcp/glossary/credentials#dcr)

### E

- **Elicitation** — The mechanism by which a server asks for additional
  information from the user, through the client, while a request is in flight.
  Also written: elicitation/create · ElicitResult · form mode · url mode.
  _Protocol surface._ [Definition](/learn/mcp/glossary/protocol#elicitation)

### H

- **HTTP+SSE transport** — The original two-endpoint HTTP transport from the
  2024-11-05 revision: the client opened an SSE stream with GET and posted
  messages to a separate endpoint the stream advertised. Also written: HTTP+SSE
  · HTTP with SSE · SSE transport · old MCP transport · 2024-11-05 transport.
  _Transport and headers._ [Definition](/learn/mcp/glossary/transport#http-sse)

### I

- **Identity Assertion JWT Authorization Grant** (ID-JAG) — An IETF draft
  profile of the JWT authorization grant that gives a client delegated access to
  a resource in another trust domain on behalf of a user, without a separate
  user-approval step at that domain's authorization server. Also written:
  Cross-App Access · XAA · urn:ietf:params:oauth:token-type:id-jag · identity
  chaining. _Credentials and registration._
  [Definition](/learn/mcp/glossary/credentials#id-jag)
- **initialize handshake** — The opening exchange of every MCP revision up to
  2025-11-25: the client sent an initialize request carrying its protocol
  version and capabilities, the server replied with its own, and the client
  confirmed with a notifications/initialized. Also written: initialize ·
  notifications/initialized · MCP handshake · initialize request. _Protocol
  surface._ [Definition](/learn/mcp/glossary/protocol#initialize)
- **Issuer identification** — RFC 9207 adds an iss parameter to the OAuth
  authorization response so a client can tell which authorization server issued
  the code it just received, and an
  authorization_response_iss_parameter_supported metadata flag to advertise it.
  Also written: iss · iss parameter · RFC 9207 ·
  authorization_response_iss_parameter_supported · mix-up attack. _Authorization
  and tokens._ [Definition](/learn/mcp/glossary/authorization#iss)

### M

- **MCP error codes** — MCP partitions the JSON-RPC implementation-defined error
  range: -32000 to -32019 is legacy, allocated by implementations before the
  policy existed, and -32020 to -32099 is reserved for the specification. Also
  written: -32020 · -32021 · -32022 · -32002 · -32042 · HeaderMismatch ·
  MissingRequiredClientCapability · UnsupportedProtocolVersion. _Protocol
  surface._ [Definition](/learn/mcp/glossary/protocol#error-codes)
- **Mcp-Method** — An HTTP header mirroring the JSON-RPC method field of the
  request body, required on all Streamable HTTP POST requests. Also written: mcp
  method header · mirrored headers. _Transport and headers._
  [Definition](/learn/mcp/glossary/transport#mcp-method)
- **Mcp-Name** — An HTTP header mirroring params.name or params.uri from the
  request body, required on tools/call, resources/read, and prompts/get
  requests. Also written: mcp name header · tool name header. _Transport and
  headers._ [Definition](/learn/mcp/glossary/transport#mcp-name)
- **MCP-Protocol-Version** — The HTTP header that carries the protocol version
  on every Streamable HTTP POST, for example MCP-Protocol-Version: 2026-07-28.
  Also written: protocol version header · unsupported protocol version.
  _Transport and headers._
  [Definition](/learn/mcp/glossary/transport#mcp-protocol-version)
- **Mcp-Session-Id** — The HTTP header that carried a protocol-level session
  identifier in the 2025-03-26 through 2025-11-25 revisions. Also written: mcp
  session id header · MCP session · no valid session ID provided. _Transport and
  headers._ [Definition](/learn/mcp/glossary/transport#mcp-session-id)
- **\_meta** — A reserved field on MCP requests, results, and notifications that
  carries metadata rather than payload. Also written:
  io.modelcontextprotocol/protocolVersion · clientCapabilities · clientInfo ·
  serverInfo · meta field. _Protocol surface._
  [Definition](/learn/mcp/glossary/protocol#meta)
- **Multi Round-Trip Requests** (MRTR) — The pattern that replaced
  server-initiated requests in 2026-07-28. Also written: InputRequiredResult ·
  resultType · input_required · inputRequests · inputResponses. _Protocol
  surface._ [Definition](/learn/mcp/glossary/protocol#mrtr)

### O

- **Official extension** — An optional addition to the specification that
  defines capability beyond the core protocol, identified as
  {vendor-prefix}/{extension-name}. Also written: official extensions · MCP
  extensions · io.modelcontextprotocol/ui · io.modelcontextprotocol/tasks ·
  io.modelcontextprotocol/oauth-client-credentials ·
  io.modelcontextprotocol/enterprise-managed-authorization · MCP Apps ·
  extensions capability. _Versions and governance._
  [Definition](/learn/mcp/glossary/governance#official-extensions)
- **OPTIONAL authorization** — The MCP specification states that authorization
  is OPTIONAL for implementations, and that HTTP-based implementations SHOULD —
  not MUST — conform to its OAuth profile when they do support it. Also written:
  authorization is optional · MCP API key auth · custom header auth MCP · is API
  key authentication allowed in MCP · out of scope. _Authorization and tokens._
  [Definition](/learn/mcp/glossary/authorization#optional-authorization)

### P

- **Prompt** — A server-defined, optionally parameterized template of structured
  messages and instructions for interacting with a language model, listed with
  prompts/list and resolved with prompts/get. Also written: prompts/get ·
  prompts/list · MCP prompt · user-controlled. _Protocol surface._
  [Definition](/learn/mcp/glossary/protocol#prompt)
- **Proof Key for Code Exchange** (PKCE) — An extension to the OAuth
  authorization code flow that stops a stolen authorization code from being
  redeemed by anyone else. Also written: RFC 7636 · code_challenge ·
  code_verifier · S256. _Credentials and registration._
  [Definition](/learn/mcp/glossary/credentials#pkce)
- **Protected resource metadata** (PRM) — A JSON document, published by a
  protected resource, that names the authorization servers able to issue tokens
  for it. Also written: RFC 9728 · oauth-protected-resource · resource metadata.
  _Discovery._
  [Definition](/learn/mcp/glossary/discovery#protected-resource-metadata)
- **Protocol revision** — MCP versions are dates in YYYY-MM-DD form, naming the
  last date on which backward-incompatible changes were made. Also written: MCP
  version · 2026-07-28 · protocol version · Draft Current Final. _Versions and
  governance._ [Definition](/learn/mcp/glossary/governance#protocol-revision)

### R

- **Resource** — Data a server exposes to give a language model context — files,
  database schemas, or application-specific information — each identified
  uniquely by a URI and read with resources/read. Also written: resources/read ·
  resources/list · MCP resource · application-driven. _Protocol surface._
  [Definition](/learn/mcp/glossary/protocol#mcp-resource)
- **Resource indicators** — RFC 8707 defines a resource request parameter that
  names the target service a token is being requested for, so the authorization
  server can audience-restrict the token it issues. Also written: RFC 8707 ·
  resource parameter · resource indicator missing or unknown · canonical server
  URI. _Authorization and tokens._
  [Definition](/learn/mcp/glossary/authorization#resource)
- **Roots** — Filesystem locations a client tells a server it considers
  relevant, each identified by a file:// URI. Also written: roots/list · MCP
  roots · filesystem roots · workspace roots. _Protocol surface._
  [Definition](/learn/mcp/glossary/protocol#roots)

### S

- **Sampling** — The mechanism by which a server asks the client to run a
  language model completion on its behalf, so the client keeps control of model
  access, selection, and cost, and the server needs no model API key of its own.
  Also written: sampling/createMessage · MCP sampling · server requests
  completion. _Protocol surface._
  [Definition](/learn/mcp/glossary/protocol#sampling)
- **Scope** — The OAuth mechanism for expressing what an access token is allowed
  to do. Also written: scopes_supported · insufficient_scope · 403 insufficient
  scope · step-up authorization. _Authorization and tokens._
  [Definition](/learn/mcp/glossary/authorization#scope)
- **server/discover** — A method that returns a server's supported protocol
  versions, capabilities, and identity in a single request. Also written:
  DiscoverResult · mcp discover method · supportedVersions. _Discovery._
  [Definition](/learn/mcp/glossary/discovery#server-discover)
- **Specification Enhancement Proposal** (SEP) — A SEP is a design document that
  describes a new feature for MCP or for its processes, and it is the mechanism
  required for any protocol change, breaking change, or governance change. Also
  written: SEP-2575 · SEP-2322. _Versions and governance._
  [Definition](/learn/mcp/glossary/governance#sep)
- **Statelessness** — MCP is a stateless protocol as of the 2026-07-28 revision.
  Also written: stateless · stateless MCP · sessions removed · MCP is stateless.
  _Transport and headers._
  [Definition](/learn/mcp/glossary/transport#statelessness)
- **stdio** — The transport in which the client launches the MCP server as a
  subprocess and the two exchange newline-delimited JSON-RPC messages over the
  subprocess's standard input and output. Also written: standard input output
  transport · local MCP server. _Transport and headers._
  [Definition](/learn/mcp/glossary/transport#stdio)
- **Streamable HTTP** — The HTTP transport for MCP, introduced in the 2025-03-26
  revision. Also written: streamable http transport · MCP endpoint · remote MCP
  transport. _Transport and headers._
  [Definition](/learn/mcp/glossary/transport#streamable-http)
- **subscriptions/listen** — A long-lived request that opens a server-to-client
  notification stream filtered to the event types the client names. Also
  written: resources/subscribe · MCP notifications stream · subscriptionId.
  _Transport and headers._
  [Definition](/learn/mcp/glossary/transport#subscriptions-listen)

### T

- **Token exchange** — An OAuth grant, defined by RFC 8693, in which a client
  presents one token and receives a different one with a different audience,
  subject, or scope. Also written: RFC 8693 ·
  urn:ietf:params:oauth:grant-type:token-exchange · subject_token · delegation ·
  impersonation. _Authorization and tokens._
  [Definition](/learn/mcp/glossary/authorization#token-exchange)
- **Token passthrough** — The anti-pattern in which an MCP server accepts a
  token from a client without validating that it was issued to the MCP server,
  then passes it through to a downstream API. Also written: forwarding access
  tokens · confused deputy. _Authorization and tokens._
  [Definition](/learn/mcp/glossary/authorization#token-passthrough)
- **Tool** — A named, schema-described capability a server exposes so that a
  language model can interact with an external system. Also written: tools/call
  · tools/list · MCP tool · model-controlled. _Protocol surface._
  [Definition](/learn/mcp/glossary/protocol#tool)

### W

- **WWW-Authenticate** — The HTTP response header field a server uses to
  challenge a client for credentials, defined by RFC 9110 and given its
  Bearer-scheme parameters by RFC 6750. Also written: www authenticate header ·
  401 challenge · resource_metadata · Bearer challenge. _Discovery._
  [Definition](/learn/mcp/glossary/discovery#www-authenticate)

### X

- **x-mcp-header** — An extension property a server puts on a parameter inside a
  tool's inputSchema to have the client mirror that parameter's value into an
  HTTP header named Mcp-Param-{Name}. Also written: Mcp-Param · custom headers
  from tool parameters · tool parameter header. _Transport and headers._
  [Definition](/learn/mcp/glossary/transport#x-mcp-header)

## Pairs that get mixed up

Each of these is two things, and knowing which one you have is usually the whole
diagnosis.

- **[Protected resource metadata](/learn/mcp/glossary/discovery#protected-resource-metadata)
  versus
  [Authorization server metadata](/learn/mcp/glossary/discovery#authorization-server-metadata)**
  — Two different documents, published by two different parties. The resource
  says which authorization servers can issue tokens for it; the authorization
  server says where its own endpoints are.
- **[DCR](/learn/mcp/glossary/credentials#dcr) versus
  [CIMD](/learn/mcp/glossary/credentials#cimd)** — Both get a client an identity
  with no human involved. DCR stores a registration at the authorization server;
  CIMD uses an HTTPS URL as the client ID and is fetched on demand, so nothing
  is stored and the ID is portable.
- **[Resource](/learn/mcp/glossary/authorization#resource) versus
  [Audience](/learn/mcp/glossary/authorization#aud)** — The `resource` parameter
  is what the client asks for; the audience is what the issued token carries and
  what the server checks. An identity provider that ignores `resource` still
  issues a token — with the wrong audience.
- **[Mcp-Session-Id](/learn/mcp/glossary/transport#mcp-session-id) versus
  [Statelessness](/learn/mcp/glossary/transport#statelessness)** — Not a rename.
  Protocol-level sessions were deleted, so state that has to outlive a request
  is now an explicit handle passed in tool arguments rather than a header the
  transport tracks.

## Browse a whole area

These read in the order a request does: find the authorization server, pick a
transport, get a credential, have it checked, then the surface that credential
buys, then the process that changes all of it.

- **[Discovery](/learn/mcp/glossary/discovery)** (4 terms) — How a client finds
  out where to authenticate, starting from a 401 it did not expect.
- **[Transport and headers](/learn/mcp/glossary/transport)** (10 terms) — How
  MCP messages travel, and the headers the 2026-07-28 revision added, changed,
  or dropped.
- **[Credentials and registration](/learn/mcp/glossary/credentials)** (4 terms)
  — How a client obtains a client identity and an access token before it calls
  anything.
- **[Authorization and tokens](/learn/mcp/glossary/authorization)** (7 terms) —
  What a server checks on the token it receives, and what it must refuse to do
  with it.
- **[Protocol surface](/learn/mcp/glossary/protocol)** (10 terms) — The
  primitives a server exposes, the shape of a result, and the error codes MCP
  defines.
- **[Versions and governance](/learn/mcp/glossary/governance)** (4 terms) — How
  revisions are numbered, how features are retired, and how any of it changes.

## Next steps

Discovery documents, audience binding, token validation, and the 2026-07-28
headers are the same work on every MCP server. A gateway in front of them does
it once.

- Start for free: https://portal.zuplo.com/signup
- Read the docs: https://zuplo.com/docs/mcp-gateway/code-config/overview
