Sign in to save your progressYou can keep reading without an account, but completed lessons won't be saved.
Sign in

MCP 서버를 구축했으니, 이제 세 가지 핵심 서버 프리미티브를 다시 살펴보고 각각을 언제 사용해야 하는지 이해해 보겠습니다. 핵심은 각 프리미티브가 애플리케이션 스택의 서로 다른 부분에 의해 제어된다는 점입니다.

도구: 모델 제어

도구는 전적으로 Claude에 의해 제어됩니다. AI 모델이 이러한 함수를 언제 호출할지 결정하며, 그 결과는 Claude가 작업을 수행하는 데 직접 사용됩니다.

Claude에게 추가 기능을 제공하고자 할 때 도구를 사용하세요. 예를 들어, Claude에게 JavaScript를 사용해 3의 제곱근을 계산해 달라고 요청하면, Claude는 자동으로 JavaScript 실행 도구를 사용하기로 결정하여 답을 제공합니다.

도구를 사용하기로 한 결정은 100% 모델 제어였습니다 - Claude는 코드를 실행해야 한다는 것을 인식하고 애플리케이션이나 사용자의 어떠한 유도 없이도 적절한 도구를 선택했습니다.

리소스: 앱 제어

리소스는 애플리케이션 코드에 의해 제어됩니다. 앱이 리소스 데이터를 언제 가져올지, 그리고 이를 어떻게 사용할지 결정하며, 일반적으로 UI 목적이나 대화에 컨텍스트를 추가하기 위해 사용됩니다.

앱에 데이터를 가져와야 할 때 리소스를 사용하세요. 일반적인 예시는 다음과 같습니다:

  • UI에서 자동완성 옵션 채우기
  • 파일 선택기에 표시할 문서 가져오기
  • Claude에게 메시지를 보내기 전에 컨텍스트 추가하기

Claude의 웹 인터페이스에서 "Add from Google Drive" 기능이 이를 완벽하게 보여줍니다. 애플리케이션은 사용 가능한 문서 목록을 가져와 UI에 표시한 다음, 선택된 문서의 내용을 채팅 컨텍스트에 주입합니다.

프롬프트: 사용자 제어

프롬프트는 사용자에 의해 제어됩니다. 사용자는 버튼 클릭, 메뉴 옵션 선택, 슬래시 명령 사용과 같은 직접적인 행동을 통해 이러한 사전 정의된 워크플로를 언제 실행할지 결정합니다.

사용자가 쉽게 접근할 수 있는 사전 정의된 워크플로를 구현하고자 할 때 프롬프트를 사용하세요. Claude의 인터페이스에서는 채팅 입력창 아래에 워크플로 버튼이 표시되어, 사용자가 글쓰기, 학습, 코딩과 같은 일반적인 작업을 빠르게 시작할 수 있게 해줍니다.

올바른 프리미티브 선택하기

MCP 서버를 구축할 때, 각 기능을 누가 제어해야 하는지 생각해 보세요:

  • Claude의 기능을 확장해야 하나요? 도구를 사용하세요
  • 앱의 UI에 데이터를 가져와야 하나요? 리소스를 사용하세요
  • 사용자에게 사전 정의된 워크플로를 제공해야 하나요? 프롬프트를 사용하세요

이는 특정 사용 사례에 맞는 올바른 프리미티브를 선택하는 데 도움이 되는 상위 수준의 가이드라인입니다. 각각은 애플리케이션 스택의 서로 다른 부분을 담당합니다 - 도구는 모델을 위해, 리소스는 앱을 위해, 프롬프트는 사용자를 위해 존재합니다.