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에게 바로 전송할 수 있는 메시지 목록을 반환합니다.

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

python
@mcp.prompt(
    name="format",
    description="Rewrites the contents of a document in Markdown format",
)
def format_document(
    doc_id: str = Field(description="Id of the document to format"),
) -> list[base.Message]:
    # 메시지 목록을 반환합니다

포맷 명령 만들기

실용적인 예시를 살펴보겠습니다. 사용자가 /format doc_id를 입력하여 어떤 문서든 markdown 구문으로 재포맷할 수 있는 포맷 명령을 만들어 보겠습니다.

프롬프트 구현에는 Claude를 위한 상세한 지침이 포함됩니다:

python
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 structure.
Use the 'edit_document' tool to edit the document. After the document has been reformatted...
"""
    
    return [
        base.UserMessage(prompt)
    ]

프롬프트 테스트하기

MCP Inspector를 사용하여 프롬프트를 테스트할 수 있습니다. Prompts 탭으로 이동하여 프롬프트를 선택하고 필요한 매개변수를 제공하세요.

Inspector는 매개변수가 프롬프트 텍스트에 어떻게 삽입되는지를 포함하여 Claude에게 정확히 어떤 메시지가 전송될지 보여줍니다.

주요 이점

  • 품질 관리 - 사용자가 보기 전에 프롬프트를 테스트하고 개선할 수 있습니다
  • 일관성 - 사용자는 매번 안정적인 결과를 얻습니다
  • 전문화 - 프롬프트를 서버의 특정 도메인에 맞게 조정할 수 있습니다
  • 재사용성 - 여러 클라이언트가 동일한 잘 만들어진 프롬프트를 사용할 수 있습니다

구현 세부 사항

메시지 유형을 위한 기본 모듈을 가져오는 것을 잊지 마세요:

python
from mcp.server.fastmcp import FastMCP
from mcp.server.fastmcp.prompts import base

프롬프트는 고품질이어야 하고, 충분히 테스트되어야 하며, MCP 서버의 전반적인 목적과 관련이 있어야 합니다. 문서 관리 예시에서는 서버가 문서 작업을 전문으로 하므로 포맷팅 프롬프트가 매우 적합합니다.