MCP 리소스(Resources) 개념 쉽게 이해하기

리소스란 무엇인가요?

MCP에서 리소스는 서버가 AI 모델에게 제공하는 데이터와 콘텐츠입니다. 쉽게 말해, AI 모델이 참고할 수 있는 모든 종류의 정보라고 생각하면 됩니다.

리소스의 예시:

  • 파일 내용 (코드, 문서, 로그 등)
  • 데이터베이스 레코드
  • API 응답 데이터
  • 시스템 상태 정보
  • 이미지나 스크린샷
  • 그 외 다양한 데이터

리소스 식별 방법 (URI)

각 리소스는 고유한 URI(Uniform Resource Identifier)로 식별됩니다. 이는 웹 주소(URL)와 비슷한 개념입니다:

[프로토콜]://[호스트]/[경로]

예시:

  • file:///home/user/documents/report.pdf (파일)
  • postgres://database/customers/schema (데이터베이스)
  • screen://localhost/display1 (화면 캡처)

리소스 유형

MCP 리소스는 두 가지 주요 유형이 있습니다:

  1. 텍스트 리소스: UTF-8 인코딩된 텍스트 데이터
  • 소스 코드, 설정 파일, 로그, JSON/XML 데이터 등
  1. 바이너리 리소스: base64로 인코딩된 바이너리 데이터
  • 이미지, PDF, 오디오/비디오 파일 등

리소스 발견 방법

클라이언트가 사용 가능한 리소스를 찾는 방법은 두 가지입니다:

  1. 직접 리소스 목록: 서버가 resources/list 엔드포인트를 통해 구체적인 리소스 목록을 제공
   {
     "uri": "file:///logs/app.log",
     "name": "애플리케이션 로그",
     "description": "앱 로그 파일",
     "mimeType": "text/plain"
   }
  1. 리소스 템플릿: 동적 리소스를 위한 URI 템플릿 제공
   {
     "uriTemplate": "file:///logs/{date}.log",
     "name": "날짜별 로그 파일",
     "description": "특정 날짜의 로그 접근"
   }

리소스 읽기

클라이언트가 리소스를 읽으려면:

  1. resources/read 요청을 리소스 URI와 함께 보냅니다
  2. 서버는 리소스 내용을 응답합니다:
   {
     "contents": [
       {
         "uri": "file:///logs/app.log",
         "mimeType": "text/plain",
         "text": "로그 내용이 여기에..."
       }
     ]
   }

리소스 업데이트

MCP는 리소스의 실시간 업데이트도 지원합니다:

  1. 목록 변경 알림: 서버가 사용 가능한 리소스 목록이 변경되면 클라이언트에 알림
  2. 내용 변경 구독:
  • 클라이언트가 특정 리소스를 구독 (resources/subscribe)
  • 리소스가 변경되면 서버가 알림 (notifications/resources/updated)
  • 클라이언트가 최신 내용을 가져옴 (resources/read)
  • 필요 없으면 구독 해제 (resources/unsubscribe)

실생활 예시로 이해하기

회사에서 일하는 상황을 가정해 봅시다:

  1. 당신(사용자)이 AI 어시스턴트에게 “우리 회사 최신 분기 보고서를 분석해줘”라고 요청합니다.
  2. AI 어시스턴트(클라이언트)는 파일 시스템 MCP 서버에 어떤 파일이 있는지 물어봅니다 (resources/list).
  3. 서버는 사용 가능한 파일 목록을 보내줍니다:
   - file:///company/reports/Q3_2024.pdf (3분기 보고서)
   - file:///company/reports/Q2_2024.pdf (2분기 보고서)
  1. AI는 가장 최신 보고서를 선택하고 내용을 요청합니다 (resources/read).
  2. 서버가 PDF 내용을 바이너리 데이터로 보내줍니다.
  3. AI는 이 데이터를 처리하여 분석 결과를 제공합니다.

보안 고려사항

리소스를 안전하게 제공하기 위한 중요 사항:

  • 모든 리소스 URI 검증
  • 적절한 접근 제어 구현
  • 디렉토리 탐색 공격 방지를 위한 경로 검사
  • 바이너리 데이터 처리 시 주의
  • 리소스 접근에 대한 속도 제한 고려
  • 민감한 데이터 전송 시 암호화

이렇게 MCP 리소스는 AI 모델이 다양한 데이터 소스의 정보를 참조하여 더 정확하고 맥락에 맞는 응답을 제공할 수 있도록 돕는 핵심 메커니즘입니다.​​​​​​​​​​​​​​​​

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다