최신 AI 시스템과 외부 시스템이 서로 정보를 주고받을 때, JSON-RPC 2.0 기반의 프로토콜 메시지 포맷을 사용합니다.
이 글에서는 MCP의 메시지 타입과 구조에 대해 상세히 알아보겠습니다.
핵심 메시지 타입은 요청(Request), 응답(Response), 알림(Notification) 세 가지로 나뉩니다.
요청 메시지는 AI(혹은 클라이언트)가 서버(또는 외부 모듈)에 "이 작업을 해줘!"라고 명령을 보낼 때 사용합니다.
{
"jsonrpc": "2.0",
"id": "req-001",
"method": "getWeather",
"params": {
"city": "Seoul"
}
}
응답 메시지는 서버가 요청을 처리한 결과를 다시 클라이언트(혹은 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"]}
}
}
알림 메시지는 서버나 클라이언트가 "이런 일이 발생했어!"라고 통보하고 응답을 기대하지 않을 때 사용합니다.
{
"jsonrpc": "2.0",
"method": "systemAlert",
"params": {
"level": "critical",
"message": "CPU 사용량 95% 초과"
}
}
타입 | 필수 필드 | 응답 필요 | 사용 예시 |
---|---|---|---|
요청 | id, method, params | O | 데이터 조회, 도구 실행 |
응답 | id, result/error | X | 요청 결과 반환 |
알림 | method, params | X | 상태/이벤트 알림 |
// 요청
{"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}}
MCP 메시지 타입 구조를 이해하면, AI와 외부 시스템을 연동하는 모든 작업이 훨씬 더 쉽고, 확장성과 신뢰성을 갖춘 솔루션을 만들 수 있습니다.
이 가이드가 여러분의 AI 시스템 통합 작업에 도움이 되길 바랍니다.
질문이나 추가 설명이 필요하시면 댓글로 남겨주세요!