메시지

Protocol Revision: 2024-11-05

MCP의 모든 메시지는 JSON-RPC 2.0 사양을 MUST 준수해야 합니다. 이 프로토콜은 세 가지 메시지 타입을 정의합니다:

Requests

요청(Requests)은 클라이언트에서 서버로, 또는 서버에서 클라이언트로 전송됩니다.

{
  jsonrpc: "2.0";
  id: string | number;
  method: string;
  params?: {
    [key: string]: unknown;
  };
}
  • 요청은 문자열 또는 정수 ID를 MUST 포함해야 합니다.
  • 기본 JSON-RPC와 달리 ID는 null이면 MUST NOT 됩니다.
  • 요청 ID는 동일 세션에서 요청자가 이전에 사용한 값이면 MUST NOT 됩니다.

Responses

응답(Responses)은 요청에 대한 답으로 전송됩니다.

{
  jsonrpc: "2.0";
  id: string | number;
  result?: {
    [key: string]: unknown;
  }
  error?: {
    code: number;
    message: string;
    data?: unknown;
  }
}
  • 응답은 해당 요청과 동일한 ID를 MUST 포함해야 합니다.
  • result 또는 error 중 하나는 MUST 설정되어야 하며, 둘 다 설정하면 MUST NOT 됩니다.
  • 오류 코드는 정수여야 하며(MUST), 정수가 아니면 안 됩니다.

Notifications

알림(Notifications)은 클라이언트에서 서버로, 또는 서버에서 클라이언트로 전송됩니다. 응답을 기대하지 않습니다.

{
  jsonrpc: "2.0";
  method: string;
  params?: {
    [key: string]: unknown;
  };
}
  • 알림은 ID를 포함하면 MUST NOT 됩니다.