강좌
67개 강의 중 56번째 · Building with the Claude API클라이언트의 프롬프트

클라이언트의 프롬프트

강의 569분
Sign in to save your progressYou can keep reading without an account, but completed lessons won't be saved.
Not nowSign in

MCP의 프롬프트는 클라이언트가 사용할 수 있는 사용자 및 어시스턴트 메시지 집합을 정의합니다. 이러한 프롬프트는 품질이 높고, 충분히 테스트되었으며, MCP 서버의 전반적인 목적과 관련이 있어야 합니다.

List Prompts 구현하기

첫 번째 단계는 MCP 클라이언트에서 list_prompts 메서드를 구현하는 것입니다. 이 메서드는 서버에서 사용 가능한 모든 프롬프트를 가져옵니다:

python
async def list_prompts(self) -> list[types.Prompt]:
    result = await self.session().list_prompts()
    return result.prompts

이 간단한 구현은 세션의 list_prompts 메서드를 호출하고 결과에서 프롬프트 배열을 반환합니다.

개별 프롬프트 가져오기

get_prompt 메서드는 인자가 보간된 특정 프롬프트를 가져옵니다. 프롬프트를 요청할 때, 프롬프트 함수에 키워드 인자로 전달되는 인자를 제공합니다:

python
async def get_prompt(self, prompt_name, args: dict[str, str]):
    result = await self.session().get_prompt(prompt_name, args)
    return result.messages

이 메서드는 결과에서 메시지를 반환하며, 이는 Claude에 직접 입력할 수 있는 대화를 형성합니다.

프롬프트 인자의 작동 방식

서버 측에서 프롬프트 함수를 정의할 때, 이 함수는 매개변수를 받을 수 있습니다. 예를 들어, 문서 서식 지정 프롬프트는 doc_id 매개변수를 예상할 수 있습니다:

python
def format_document(doc_id: str):
    # doc_id는 프롬프트에 보간됩니다

클라이언트가 get_prompt를 호출할 때, 인자 딕셔너리에는 예상되는 키가 포함되어야 합니다. MCP 서버는 이를 프롬프트 함수에 키워드 인자로 전달하여, 동적 콘텐츠가 프롬프트 템플릿에 삽입될 수 있도록 합니다.

CLI에서 프롬프트 테스트하기

구현이 완료되면 명령줄 인터페이스를 통해 프롬프트를 테스트할 수 있습니다. 슬래시(/)를 입력하면 사용 가능한 프롬프트가 명령어로 표시됩니다. 프롬프트를 선택하면 사용 가능한 옵션(예: 문서 ID) 중에서 선택하라는 메시지가 표시될 수 있으며, 그런 다음 완성된 프롬프트가 Claude로 전송됩니다.

워크플로우는 다음과 같습니다:

  1. 사용자가 프롬프트(예: "format")를 선택합니다
  2. 시스템이 필요한 인자(예: 서식을 지정할 문서)를 요청합니다
  3. 보간된 값과 함께 프롬프트가 Claude로 전송됩니다
  4. Claude는 도구를 사용하여 추가 데이터를 가져오고 작업을 완료할 수 있습니다

프롬프트 모범 사례

MCP 서버용 프롬프트를 만들 때:

  • 서버의 목적과 관련성이 있도록 만드세요
  • 배포 전에 철저히 테스트하세요
  • 명확하고 구체적인 지침을 사용하세요
  • 사용 가능한 도구와 잘 작동하도록 설계하세요
  • 사용자가 제공해야 할 인자를 고려하세요

프롬프트는 사전 정의된 기능과 동적인 사용자 요구 사이의 간극을 연결하여, 매개변수화를 통해 유연성을 유지하면서도 Claude에게 복잡한 작업을 위한 구조화된 시작점을 제공합니다.