클라이언트의 프롬프트

강의 569분
Sign in to save your progressYou can keep reading without an account, but completed lessons won't be saved.
Sign 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에게 복잡한 작업을 위한 구조화된 시작점을 제공합니다.