메시지
Protocol Revision: draft
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)은 클라이언트에서 서버로, 또는 서버에서 클라이언트로 전송됩니다. 수신자는 응답을 보내면 MUST NOT 됩니다.
{
jsonrpc: "2.0";
method: string;
params?: {
[key: string]: unknown;
};
}- 알림은 ID를 포함하면 MUST NOT 됩니다.