MCP의 리소스는 서버가 도구 호출 없이도 프롬프트에 직접 포함될 수 있는 정보를 노출할 수 있게 해줍니다. 이는 AI 모델에 컨텍스트를 제공하는 더 효율적인 방법을 만들어냅니다.

위 다이어그램은 리소스가 작동하는 방식을 보여줍니다: 사용자가 "What's in the @..."와 같은 것을 입력하면, 우리 코드는 이를 리소스 요청으로 인식하고, MCP 서버로 ReadResourceRequest를 전송하며, 실제 콘텐츠가 담긴 ReadResourceResult를 받아옵니다.
리소스 읽기 구현하기
MCP 클라이언트에서 리소스 접근을 활성화하려면 read_resource 함수를 구현해야 합니다. 먼저 필요한 임포트를 추가하세요:
핵심 함수는 MCP 서버에 요청을 보내고 MIME 타입에 따라 응답을 처리합니다:
응답 구조 이해하기
리소스를 요청하면 서버는 contents 목록이 포함된 결과를 반환합니다. 일반적으로 한 번에 하나의 리소스만 필요하므로 첫 번째 요소에 접근합니다. 응답에는 다음이 포함됩니다:
- 실제 콘텐츠(텍스트 또는 데이터)
- 콘텐츠를 파싱하는 방법을 알려주는 MIME 타입
- 리소스에 대한 기타 메타데이터
콘텐츠 타입 처리
함수는 콘텐츠를 처리하는 방법을 결정하기 위해 MIME 타입을 확인합니다:
application/json인 경우, 텍스트를 JSON으로 파싱하고 파싱된 객체를 반환합니다- 그렇지 않으면 원본 텍스트 콘텐츠를 반환합니다
이 접근 방식은 구조화된 데이터(예: JSON)와 일반 텍스트 문서를 모두 원활하게 처리합니다.
리소스 접근 테스트하기
구현이 완료되면 CLI 애플리케이션을 통해 리소스 기능을 테스트할 수 있습니다. "@"를 입력한 다음 리소스 이름을 입력하면 시스템은 다음을 수행합니다:
- 자동완성 목록에 사용 가능한 리소스를 표시합니다
- 화살표 키와 스페이스를 사용하여 리소스를 선택할 수 있게 합니다
- 리소스 콘텐츠를 프롬프트에 직접 포함시킵니다
- 추가 도구 호출 없이 모든 것을 AI 모델로 전송합니다
이는 AI 모델이 문서 콘텐츠에 접근하기 위해 별도의 도구 호출을 하는 것에 비해 훨씬 더 원활한 사용자 경험을 만들어냅니다. 리소스 콘텐츠는 초기 컨텍스트의 일부가 되어, 데이터에 대한 즉각적인 응답을 가능하게 합니다.