MCP(Model Context Protocol) 통신 프로토콜 JSON-RPC 기반 메시지 타입 이해하기

궁금하면 500원·2025년 1월 28일
0

AI 미생지능

목록 보기
19/68

MCP(Model Context Protocol) 통신 프로토콜

최신 AI 시스템과 외부 시스템이 서로 정보를 주고받을 때, JSON-RPC 2.0 기반의 프로토콜 메시지 포맷을 사용합니다.

이 글에서는 MCP의 메시지 타입과 구조에 대해 상세히 알아보겠습니다.

핵심 메시지 타입은 요청(Request), 응답(Response), 알림(Notification) 세 가지로 나뉩니다.

1. 요청(Request) 메시지란?

요청 메시지는 AI(혹은 클라이언트)가 서버(또는 외부 모듈)에 "이 작업을 해줘!"라고 명령을 보낼 때 사용합니다.

구조 예시

{
  "jsonrpc": "2.0",
  "id": "req-001",
  "method": "getWeather",
  "params": {
    "city": "Seoul"
  }
}

포인트

  • id: 요청을 구분하는 고유값 (나중에 응답과 매칭)
  • method: 호출할 기능 이름
  • params: 요청에 필요한 인자(예: 도시명)

2. 응답(Response) 메시지란?

응답 메시지는 서버가 요청을 처리한 결과를 다시 클라이언트(혹은 AI)에게 돌려주는 메시지입니다.

성공 예시

{
  "jsonrpc": "2.0",
  "id": "req-001",
  "result": {
    "temp": 22,
    "condition": "맑음"
  }
}

오류 예시

{
  "jsonrpc": "2.0",
  "id": "req-001",
  "error": {
    "code": -32000,
    "message": "Invalid city name",
    "data": {"validCities": ["Seoul", "Busan"]}
  }
}

3. 알림(Notification) 메시지란?

알림 메시지는 서버나 클라이언트가 "이런 일이 발생했어!"라고 통보하고 응답을 기대하지 않을 때 사용합니다.

구조 예시

{
  "jsonrpc": "2.0",
  "method": "systemAlert",
  "params": {
    "level": "critical",
    "message": "CPU 사용량 95% 초과"
  }
}

포인트

  • id가 없음 (응답 불필요)
  • 실시간 상태 변화, 이벤트, 로그 통보 등에 활용

4. 메시지 타입 한눈에 보기

타입필수 필드응답 필요사용 예시
요청id, method, paramsO데이터 조회, 도구 실행
응답id, result/errorX요청 결과 반환
알림method, paramsX상태/이벤트 알림

5. 실제 통신 흐름 예시

요청 → 응답

// 요청
{"jsonrpc":"2.0","id":"doc-1","method":"readFile","params":["path":"/notes.txt"]}
// 응답
{"jsonrpc":"2.0","id":"doc-1","result":{"content":"..."}}

알림

{"jsonrpc":"2.0","method":"progress","params":{"taskId":"T-123","percent":75}}

6. MCP 메시지 타입이 중요한 이유

  • 표준화된 구조 덕분에 시스템 간 통신 오류가 줄어듭니다.
  • 요청-응답-알림 구조로 실시간·양방향 통신, 간결함, 확장성 모두 지원합니다.
  • 개발자는 복잡한 통합 작업 없이 다양한 AI 도구와 외부 시스템을 안전하게 연결할 수 있습니다.

마무리

MCP 메시지 타입 구조를 이해하면, AI와 외부 시스템을 연동하는 모든 작업이 훨씬 더 쉽고, 확장성과 신뢰성을 갖춘 솔루션을 만들 수 있습니다.

이 가이드가 여러분의 AI 시스템 통합 작업에 도움이 되길 바랍니다.
질문이나 추가 설명이 필요하시면 댓글로 남겨주세요!

profile
꾸준히, 의미있는 사이드 프로젝트 경험과 문제해결 과정을 기록하기 위한 공간입니다.

0개의 댓글