Model Context Protocol (MCP) · Controlled Vocabulary

Model Context Protocol Vocabulary

Normative vocabulary for the Model Context Protocol (MCP). Captures the protocol's actors, message types, features, transports, and authorization surface, organized into operational (JSON-RPC) and capability (host/server experience) dimensions. Sourced from modelcontextprotocol.io specification 2025-11-25.

36 Terms 5 Groups Updated 2026-05-22
View Vocabulary File View on GitHub

Model Context Protocol (MCP) Vocabulary is a controlled vocabulary published by Model Context Protocol (MCP) on the APIs.io network, defining 36 terms.

The terms are organized into 5 groups — actors, messages, methods, transports, and schema.

Defined terms include Host, Client, Server, JSONRPCRequest, and JSONRPCResponse.

A controlled vocabulary pins the words an API’s schemas, parameters and documentation use to one agreed definition each — the shared language a human or an agent needs to read the API the same way its authors do.

Term Groups

actors 3 messages 4 methods 25 transports 3 schema 1

Terms

Host
The LLM application that initiates MCP connections. Hosts run one or more clients and manage user consent, sampling approval, and root exposure.
Client
A connector embedded inside a host that talks to exactly one server over a transport. Negotiates capabilities during initialize.
Server
A process that exposes tools, resources, and prompts to clients. May also request sampling, roots, and elicitation from the client.
JSONRPCRequest
Request message with jsonrpc 2.0, a non-null string or integer id, a method, and optional params.
JSONRPCResponse
Successful response that mirrors the request id and carries a result object.
JSONRPCError
Error response with an error object containing code, message, and optional data.
JSONRPCNotification
One-way message with no id; recipient MUST NOT respond.
initialize
Lifecycle handshake from client to server; carries protocolVersion, capabilities, and clientInfo.
notifications/initialized
Client notification sent after the server replies to initialize; marks the session as ready.
ping
Liveness probe usable in either direction.
notifications/cancelled
Cancels an in-flight request by id.
notifications/progress
Streams progress updates for a long-running request.
tools/list
Lists tools the server exposes.
tools/call
Invokes a tool by name with arguments.
notifications/tools/list_changed
Server notification that the tool catalog changed.
resources/list
Lists resources the server exposes.
resources/read
Reads a resource by URI.
resources/subscribe
Subscribes to update notifications for a resource URI.
resources/unsubscribe
Cancels a resource subscription.
resources/templates/list
Lists parameterized resource URI templates.
notifications/resources/list_changed
Server notification that the resource catalog changed.
notifications/resources/updated
Server notification that a subscribed resource changed.
prompts/list
Lists prompt templates the server exposes.
prompts/get
Renders a prompt template for the requested arguments.
notifications/prompts/list_changed
Server notification that the prompt catalog changed.
completion/complete
Provides argument-completion suggestions for prompts/tools.
logging/setLevel
Adjusts the server's emitted log level.
notifications/message
Server log notification emitted at the negotiated level.
sampling/createMessage
Server-initiated request asking the host LLM to generate a message; requires explicit user approval.
roots/list
Server-initiated request for the client's filesystem roots.
notifications/roots/list_changed
Client notification that the roots list changed.
elicitation/create
Server-initiated request asking the user for additional input.
stdio
Local subprocess transport; framed JSON-RPC over stdin/stdout. Used by Claude Desktop, Cursor, and most local-tool MCP integrations.
Streamable HTTP
Network transport using a single HTTP endpoint that streams server-to-client messages. The current default for remote servers.
SSE (legacy)
Earlier HTTP transport that combined a POST endpoint with a separate Server-Sent Events stream. Superseded by Streamable HTTP.
JSONSchema2020-12
Default dialect for tool input/output schemas. Implementations MUST support 2020-12 when no $schema is provided.

Controlled Vocabulary

mcp-vocabulary.yml Raw ↑
name: Model Context Protocol Vocabulary
description: >-
  Normative vocabulary for the Model Context Protocol (MCP). Captures the
  protocol's actors, message types, features, transports, and authorization
  surface, organized into operational (JSON-RPC) and capability (host/server
  experience) dimensions. Sourced from modelcontextprotocol.io specification
  2025-11-25.
url: https://modelcontextprotocol.io/specification
version: '2025-11-25'
created: '2026-05-22'
modified: '2026-05-22'

operational:
  description: >-
    Concrete protocol-level concepts that appear on the wire as JSON-RPC 2.0
    messages.

  actors:
    - name: Host
      description: >-
        The LLM application that initiates MCP connections. Hosts run one or
        more clients and manage user consent, sampling approval, and root
        exposure.
      examples:
        - Claude Desktop
        - Claude Code
        - Cursor
        - Visual Studio Code (Copilot Chat)
        - ChatGPT
    - name: Client
      description: >-
        A connector embedded inside a host that talks to exactly one server
        over a transport. Negotiates capabilities during initialize.
    - name: Server
      description: >-
        A process that exposes tools, resources, and prompts to clients. May
        also request sampling, roots, and elicitation from the client.

  messages:
    - name: JSONRPCRequest
      description: >-
        Request message with jsonrpc 2.0, a non-null string or integer id, a
        method, and optional params.
    - name: JSONRPCResponse
      description: >-
        Successful response that mirrors the request id and carries a result
        object.
    - name: JSONRPCError
      description: >-
        Error response with an error object containing code, message, and
        optional data.
    - name: JSONRPCNotification
      description: >-
        One-way message with no id; recipient MUST NOT respond.

  methods:
    - name: initialize
      description: >-
        Lifecycle handshake from client to server; carries protocolVersion,
        capabilities, and clientInfo.
    - name: notifications/initialized
      description: >-
        Client notification sent after the server replies to initialize;
        marks the session as ready.
    - name: ping
      description: Liveness probe usable in either direction.
    - name: notifications/cancelled
      description: Cancels an in-flight request by id.
    - name: notifications/progress
      description: Streams progress updates for a long-running request.
    - name: tools/list
      description: Lists tools the server exposes.
    - name: tools/call
      description: Invokes a tool by name with arguments.
    - name: notifications/tools/list_changed
      description: Server notification that the tool catalog changed.
    - name: resources/list
      description: Lists resources the server exposes.
    - name: resources/read
      description: Reads a resource by URI.
    - name: resources/subscribe
      description: Subscribes to update notifications for a resource URI.
    - name: resources/unsubscribe
      description: Cancels a resource subscription.
    - name: resources/templates/list
      description: Lists parameterized resource URI templates.
    - name: notifications/resources/list_changed
      description: Server notification that the resource catalog changed.
    - name: notifications/resources/updated
      description: Server notification that a subscribed resource changed.
    - name: prompts/list
      description: Lists prompt templates the server exposes.
    - name: prompts/get
      description: Renders a prompt template for the requested arguments.
    - name: notifications/prompts/list_changed
      description: Server notification that the prompt catalog changed.
    - name: completion/complete
      description: Provides argument-completion suggestions for prompts/tools.
    - name: logging/setLevel
      description: Adjusts the server's emitted log level.
    - name: notifications/message
      description: Server log notification emitted at the negotiated level.
    - name: sampling/createMessage
      description: >-
        Server-initiated request asking the host LLM to generate a message;
        requires explicit user approval.
    - name: roots/list
      description: Server-initiated request for the client's filesystem roots.
    - name: notifications/roots/list_changed
      description: Client notification that the roots list changed.
    - name: elicitation/create
      description: Server-initiated request asking the user for additional input.

  transports:
    - name: stdio
      description: >-
        Local subprocess transport; framed JSON-RPC over stdin/stdout. Used by
        Claude Desktop, Cursor, and most local-tool MCP integrations.
    - name: Streamable HTTP
      description: >-
        Network transport using a single HTTP endpoint that streams
        server-to-client messages. The current default for remote servers.
    - name: SSE (legacy)
      description: >-
        Earlier HTTP transport that combined a POST endpoint with a separate
        Server-Sent Events stream. Superseded by Streamable HTTP.

  schema:
    - name: JSONSchema2020-12
      description: >-
        Default dialect for tool input/output schemas. Implementations MUST
        support 2020-12 when no $schema is provided.

capability:
  description: >-
    Host/server experience concepts that shape user-facing behavior on top of
    the wire protocol.

  features:
    - name: Tools
      description: Callable functions exposed by servers and invoked by hosts.
    - name: Resources
      description: URI-addressable context surfaced to the user or the model.
    - name: Prompts
      description: Templated workflows users can pick from the host UI.
    - name: Sampling
      description: Server-initiated, user-approved LLM calls through the host.
    - name: Roots
      description: Filesystem boundaries the client exposes to servers.
    - name: Elicitation
      description: Server-initiated requests for additional user input.
    - name: Completion
      description: Argument completion suggestions for prompts and tools.
    - name: Logging
      description: Structured log notifications at negotiated severity.
    - name: Progress
      description: Long-running operation progress updates.
    - name: Cancellation
      description: Cooperative cancellation of in-flight requests.

  capabilities:
    - name: ClientCapabilities
      description: >-
        Negotiated during initialize; may include roots, sampling, elicitation
        and experimental fields.
    - name: ServerCapabilities
      description: >-
        Negotiated during initialize; may include tools, resources, prompts,
        logging, completions, and experimental fields, each with optional
        listChanged or subscribe flags.

  security:
    - name: UserConsent
      description: Users must explicitly consent to data access and tool calls.
    - name: OAuth2.1
      description: >-
        Authorization framework for HTTP transports. Stdio transports retrieve
        credentials from the environment.
    - name: ReservedMetaNamespace
      description: >-
        `_meta` keys whose prefix's second label is `modelcontextprotocol` or
        `mcp` are reserved for MCP use.
    - name: IconSafety
      description: >-
        Icon URIs MUST be HTTPS or data URIs; clients MUST defend against
        SVG-embedded scripts and oversized payloads.

  personas:
    - name: HostMaintainer
      description: Engineer building the LLM application that runs MCP clients.
    - name: ServerAuthor
      description: >-
        Engineer publishing an MCP server that exposes tools, resources, or
        prompts.
    - name: EndUser
      description: >-
        The human authorizing servers, approving sampling, and selecting
        prompts inside the host.
    - name: RegistryOperator
      description: >-
        Operator of an MCP registry (official, Smithery, Pulse MCP) that
        curates server listings for discovery.

  workflows:
    - name: ServerOnboarding
      description: >-
        Author writes a server with an SDK, validates it with the Inspector,
        and publishes to a registry.
    - name: HostIntegration
      description: >-
        Host adds an MCP client, negotiates initialize, exposes server-side
        features in its UI, and requests user consent.
    - name: AgenticSampling
      description: >-
        Server invokes sampling/createMessage so the host LLM can perform
        recursive reasoning under user approval.
    - name: ResourceContextSharing
      description: >-
        Server exposes files, database rows, or API responses as resources;
        host inlines them into the model's context window.

registries:
  - name: Official MCP Registry
    url: https://registry.modelcontextprotocol.io
    description: Anthropic-maintained registry, currently in API freeze v0.1.
  - name: Smithery
    url: https://smithery.ai
    description: Third-party registry and hosted runtime for MCP servers.
  - name: Pulse MCP
    url: https://www.pulsemcp.com
    description: Third-party registry implementing the Generic MCP Registry API.