Sign in to save your progressYou can keep reading without an account, but completed lessons won't be saved.
Sign 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 서버가 다루는 도메인에서의 여러분의 전문성을 나타내야 합니다.