강좌
67개 강의 중 55번째 · Building with the Claude API프롬프트 정의하기
Sign in to save your progressYou can keep reading without an account, but completed lessons won't be saved.
Not nowSign in

MCP 서버의 프롬프트를 사용하면 클라이언트가 직접 프롬프트를 작성하는 대신 사용할 수 있는 사전 제작된 고품질 지침을 정의할 수 있습니다. 이를 사용자가 스스로 생각해낼 수 있는 것보다 더 나은 결과를 제공하는 정교하게 만들어진 템플릿이라고 생각하세요.

프롬프트를 사용하는 이유

Claude가 문서를 markdown으로 재포맷하도록 하고 싶다고 가정해 보겠습니다. 사용자는 그냥 "report.pdf를 markdown으로 변환해줘"라고 입력해도 잘 작동할 것입니다. 하지만 포맷, 구조, 출력 요구사항에 대한 구체적인 지침이 포함된 철저하게 테스트된 프롬프트를 사용하면 훨씬 더 나은 결과를 얻을 수 있을 것입니다.

핵심은 사용자가 이러한 작업을 스스로 수행할 수 있지만, MCP 서버 작성자가 신중하게 개발하고 테스트한 프롬프트를 사용할 때 더 일관되고 더 높은 품질의 결과를 얻을 수 있다는 것입니다.

프롬프트의 작동 방식

프롬프트는 클라이언트가 직접 사용할 수 있는 사용자 및 어시스턴트 메시지 집합을 정의합니다. 클라이언트가 프롬프트를 요청하면, 서버는 Claude에게 바로 전송할 수 있는 메시지 목록을 반환합니다.

기본 구조는 다음과 같습니다:

  • @mcp.prompt() 데코레이터를 사용하여 프롬프트를 정의합니다
  • 각 프롬프트에 이름과 설명을 추가합니다
  • 완전한 프롬프트를 구성하는 메시지 목록을 반환합니다
  • 이러한 프롬프트는 고품질이어야 하고, 충분히 테스트되어야 하며, MCP 서버의 목적과 관련이 있어야 합니다

포맷 명령 구축하기

문서 포맷 프롬프트를 구현하는 방법은 다음과 같습니다. 먼저, 기본 메시지 타입을 임포트해야 합니다:

python
from mcp.server.fastmcp import base

그런 다음 프롬프트 함수를 정의합니다:

python
@mcp.prompt(
    name="format",
    description="Rewrites the contents of the document in Markdown format."
)
def format_document(
    doc_id: str = Field(description="Id of the document to format")
) -> list[base.Message]:
    prompt = f"""
Your goal is to reformat a document to be written with markdown syntax.

The id of the document you need to reformat is:

{doc_id}


Add in headers, bullet points, tables, etc as necessary. Feel free to add in extra formatting.
Use the 'edit_document' tool to edit the document. After the document has been reformatted...
"""
    
    return [
        base.UserMessage(prompt)
    ]

프롬프트 테스트하기

MCP Inspector를 사용하여 프롬프트를 테스트할 수 있습니다. Prompts 섹션으로 이동하여 프롬프트를 선택하고 필요한 매개변수를 제공하세요. Inspector는 Claude에게 전송될 생성된 메시지를 보여줍니다.

이를 통해 실제 애플리케이션에서 사용하기 전에 프롬프트가 변수를 올바르게 보간하고 예상되는 메시지 구조를 생성하는지 확인할 수 있습니다.

모범 사례

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

  • 서버의 목적에 핵심적인 작업에 집중하세요
  • 모호한 요청보다는 상세하고 구체적인 지침을 작성하세요
  • 다양한 입력으로 프롬프트를 철저히 테스트하세요
  • 사용자가 각 프롬프트가 무엇을 하는지 이해할 수 있도록 명확한 설명을 포함하세요
  • 프롬프트가 서버의 도구 및 리소스와 어떻게 작동할지 고려하세요

프롬프트는 사용자가 스스로 쉽게 얻을 수 없는 가치를 제공하기 위한 것임을 기억하세요 - 이는 MCP 서버가 다루는 도메인에서의 여러분의 전문성을 나타내야 합니다.