Skip to main content
All messages in MCP MUST follow the JSON-RPC 2.0 specification. The protocol defines three types of messages:

Requests

Requests are sent from the client to the server or vice versa.
  • Requests MUST include a string or integer ID.
  • Unlike base JSON-RPC, the ID MUST NOT be null.
  • The request ID MUST NOT have been previously used by the requestor within the same session.

Responses

Responses are sent in reply to requests.
  • Responses MUST include the same ID as the request they correspond to.
  • Either a result or an error MUST be set. A response MUST NOT set both.
  • Error codes MUST be integers.

Notifications

Notifications are sent from the client to the server or vice versa. They do not expect a response.
  • Notifications MUST NOT include an ID.