byteforce

CPN 한국어 자습서 · 외부 문서 한국어 미러

MCP 문서 · Specification

취소

Cancellation · 원문: modelcontextprotocol.io/specification/2025-11-25/basic/utilities/cancellation

아래는 원문을 한국어로 옮긴 미러입니다. 코드·명령은 원문 그대로이며, 가장 최신 정보는 하단 원문 링크에서 확인하세요.

MCP(Model Context Protocol)는 알림 메시지를 통해 진행 중인 요청을 선택적으로 취소하는 기능을 지원합니다. 어느 쪽이든 취소 알림을 전송하여 이전에 발행한 요청을 종료해야 함을 나타낼 수 있습니다.

취소 흐름

진행 중인 요청을 취소하려는 측은 다음을 포함하는 notifications/cancelled 알림을 전송합니다.

코드 · 명령
{
  "jsonrpc": "2.0",
  "method": "notifications/cancelled",
  "params": {
    "requestId": "123",
    "reason": "User requested cancellation"
  }
}

동작 요건

  1. 취소 알림은 다음 조건을 충족하는 요청만 참조해야 합니다(MUST). * 동일한 방향으로 이전에 발행된 요청 * 아직 진행 중인 것으로 판단되는 요청
  2. 클라이언트는 initialize 요청을 취소해서는 안 됩니다(MUST NOT).
  3. 태스크 보강 요청의 경우, notifications/cancelled 알림 대신 tasks/cancel 요청을 사용해야 합니다(MUST). 태스크는 최종 태스크 상태를 반환하는 전용 취소 메커니즘을 가지고 있습니다.
  4. 취소 알림을 수신한 측은 다음을 수행해야 합니다(SHOULD). * 취소된 요청의 처리를 중단 * 관련 리소스(resource) 해제 * 취소된 요청에 대한 응답 전송 중단
  5. 수신측은 다음 경우에 취소 알림을 무시할 수 있습니다(MAY). * 참조된 요청 ID가 알 수 없는 경우 * 처리가 이미 완료된 경우 * 요청을 취소할 수 없는 경우
  6. 취소 알림을 전송한 측은 이후 도착하는 해당 요청에 대한 응답을 무시해야 합니다(SHOULD).

타이밍 고려사항

네트워크 지연으로 인해 취소 알림이 요청 처리가 완료된 후, 또는 응답이 이미 전송된 후에 도착할 수 있습니다.

양측은 이러한 경쟁 조건을 정상적으로 처리해야 합니다(MUST).

코드 · 명령
sequenceDiagram
   participant Client
   participant Server

   Client->>Server: Request (ID: 123)
   Note over Server: Processing starts
   Client--)Server: notifications/cancelled (ID: 123)
   alt
      Note over Server: Processing may have<br/>completed before<br/>cancellation arrives
   else If not completed
      Note over Server: Stop processing
   end

구현 참고사항

오류 처리

유효하지 않은 취소 알림은 무시해야 합니다(SHOULD).

이는 비동기 통신에서 경쟁 조건을 허용하면서도 알림의 "fire and forget" 특성을 유지합니다.

원문(영어): https://modelcontextprotocol.io/specification/2025-11-25/basic/utilities/cancellation · 본 문서는 학습용 한국어 번역이며 원본의 권리는 원저작자(Model Context Protocol)에게 있습니다.

원문(영어): https://modelcontextprotocol.io/specification/2025-11-25/basic/utilities/cancellation