CPN 한국어 자습서 · 외부 문서 한국어 미러
MCP 문서 · Specification
Prompts · 원문: modelcontextprotocol.io/specification/2025-11-25/server/prompts
아래는 원문을 한국어로 옮긴 미러입니다. 코드·명령은 원문 그대로이며, 가장 최신 정보는 하단 원문 링크에서 확인하세요.
MCP(Model Context Protocol)는 서버가 클라이언트에 프롬프트 템플릿을 노출하기 위한 표준화된 방법을 제공합니다. 프롬프트를 통해 서버는 언어 모델과 상호작용하기 위한 구조화된 메시지와 지시를 제공할 수 있습니다. 클라이언트는 사용 가능한 프롬프트를 발견하고, 콘텐츠를 가져오고, 사용자 지정을 위한 인수를 제공할 수 있습니다.
프롬프트는 사용자 제어(user-controlled) 방식으로 설계되어 있습니다. 즉, 서버에서 클라이언트로 노출되며, 사용자가 명시적으로 선택하여 사용할 수 있도록 의도되어 있습니다.
일반적으로 프롬프트는 사용자 인터페이스에서 사용자가 시작한 명령을 통해 트리거됩니다. 이를 통해 사용자가 자연스럽게 사용 가능한 프롬프트를 발견하고 호출할 수 있습니다.
예를 들어, 슬래시 명령으로 노출될 수 있습니다.
단, 구현체는 필요에 맞는 어떤 인터페이스 패턴으로든 프롬프트를 노출할 수 있습니다. 프로토콜 자체는 특정 사용자 상호작용 모델을 강제하지 않습니다.
프롬프트를 지원하는 서버는 초기화 중에 prompts 기능을 반드시 선언해야 합니다(MUST).
{
"capabilities": {
"prompts": {
"listChanged": true
}
}
}
listChanged는 사용 가능한 프롬프트 목록이 변경될 때 서버가 알림을 보낼지 여부를 나타냅니다.
사용 가능한 프롬프트를 가져오기 위해 클라이언트는 prompts/list 요청을 보냅니다. 이 작업은 페이지네이션을 지원합니다.
요청:
{
"jsonrpc": "2.0",
"id": 1,
"method": "prompts/list",
"params": {
"cursor": "optional-cursor-value"
}
}
응답:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"prompts": [
{
"name": "code_review",
"title": "Request Code Review",
"description": "Asks the LLM to analyze code quality and suggest improvements",
"arguments": [
{
"name": "code",
"description": "The code to review",
"required": true
}
],
"icons": [
{
"src": "https://example.com/review-icon.svg",
"mimeType": "image/svg+xml",
"sizes": ["any"]
}
]
}
],
"nextCursor": "next-page-cursor"
}
}
특정 프롬프트를 가져오기 위해 클라이언트는 prompts/get 요청을 보냅니다. 인수는 완성 API를 통해 자동 완성될 수 있습니다.
요청:
{
"jsonrpc": "2.0",
"id": 2,
"method": "prompts/get",
"params": {
"name": "code_review",
"arguments": {
"code": "def hello():\n print('world')"
}
}
}
응답:
{
"jsonrpc": "2.0",
"id": 2,
"result": {
"description": "Code review prompt",
"messages": [
{
"role": "user",
"content": {
"type": "text",
"text": "Please review this Python code:\ndef hello():\n print('world')"
}
}
]
}
}
사용 가능한 프롬프트 목록이 변경되면, listChanged 기능을 선언한 서버는 다음 알림을 보내야 합니다(SHOULD).
{
"jsonrpc": "2.0",
"method": "notifications/prompts/list_changed"
}
sequenceDiagram
participant Client
participant Server
Note over Client,Server: Discovery
Client->>Server: prompts/list
Server-->>Client: List of prompts
Note over Client,Server: Usage
Client->>Server: prompts/get
Server-->>Client: Prompt content
opt listChanged
Note over Client,Server: Changes
Server--)Client: prompts/list_changed
Client->>Server: prompts/list
Server-->>Client: Updated prompts
end
프롬프트 정의에는 다음 항목이 포함됩니다.
name: 프롬프트의 고유 식별자title: 표시용 사람이 읽을 수 있는 이름(선택 사항)description: 선택적 사람이 읽을 수 있는 설명icons: 사용자 인터페이스 표시용 아이콘 배열(선택 사항)arguments: 사용자 지정을 위한 선택적 인수 목록프롬프트의 메시지에는 다음 항목이 포함됩니다.
role: 발화자를 나타내는 "user" 또는 "assistant"content: 다음 콘텐츠 타입 중 하나:참고: 프롬프트 메시지의 모든 콘텐츠 타입은 대상, 우선순위, 수정 시간에 대한 메타데이터를 위한 선택적 어노테이션을 지원합니다.
텍스트 콘텐츠는 일반 텍스트 메시지를 나타냅니다.
{
"type": "text",
"text": "The text content of the message"
}
이것은 자연어 상호작용에 가장 일반적으로 사용되는 콘텐츠 타입입니다.
이미지 콘텐츠를 통해 메시지에 시각 정보를 포함할 수 있습니다.
{
"type": "image",
"data": "base64-encoded-image-data",
"mimeType": "image/png"
}
이미지 데이터는 반드시 base64로 인코딩되어야 하고 유효한 MIME 타입을 포함해야 합니다(MUST). 이를 통해 시각적 컨텍스트가 중요한 멀티모달 상호작용이 가능합니다.
오디오 콘텐츠를 통해 메시지에 오디오 정보를 포함할 수 있습니다.
{
"type": "audio",
"data": "base64-encoded-audio-data",
"mimeType": "audio/wav"
}
오디오 데이터는 반드시 base64로 인코딩되어야 하고 유효한 MIME 타입을 포함해야 합니다(MUST). 이를 통해 오디오 컨텍스트가 중요한 멀티모달 상호작용이 가능합니다.
임베디드 리소스를 통해 메시지에서 서버 측 리소스를 직접 참조할 수 있습니다.
{
"type": "resource",
"resource": {
"uri": "resource://example",
"mimeType": "text/plain",
"text": "Resource content"
}
}
리소스에는 텍스트 또는 바이너리(blob) 데이터가 포함될 수 있으며, 다음 항목을 반드시 포함해야 합니다(MUST).
임베디드 리소스를 통해 프롬프트는 문서, 코드 샘플 또는 기타 참조 자료와 같은 서버 관리 콘텐츠를 대화 흐름에 원활하게 통합할 수 있습니다.
서버는 일반적인 실패 사례에 대해 표준 JSON-RPC 오류를 반환해야 합니다(SHOULD).
-32602 (Invalid params)-32602 (Invalid params)-32603 (Internal error)구현체는 주입 공격(injection attack)이나 리소스에 대한 무단 접근을 방지하기 위해 모든 프롬프트 입력 및 출력을 신중하게 검증해야 합니다(MUST).
원문(영어): https://modelcontextprotocol.io/specification/2025-11-25/server/prompts · 본 문서는 학습용 한국어 번역이며 원본의 권리는 원저작자(Model Context Protocol)에게 있습니다.
원문(영어): https://modelcontextprotocol.io/specification/2025-11-25/server/prompts