Cargando

Los prompts en los servidores MCP te permiten definir instrucciones preconstruidas y de alta calidad que los clientes pueden usar en lugar de escribir sus propios prompts desde cero. Piensa en ellos como plantillas cuidadosamente elaboradas que ofrecen mejores resultados que los que los usuarios podrían crear por sí mismos.

¿Por qué usar prompts?

Supongamos que quieres que Claude reformatee un documento a markdown. Un usuario podría simplemente escribir "convierte report.pdf a markdown" y funcionaría bien. Pero probablemente obtendría resultados mucho mejores con un prompt minuciosamente probado que incluya instrucciones específicas sobre formato, estructura y requisitos de salida.

El prompt de una línea del usuario junto a un prompt probado que establece un rol de conversión de documentos, reglas de formato y etiquetas de análisis.

La idea clave es que, si bien los usuarios pueden realizar estas tareas por sí mismos, obtendrán resultados más consistentes y de mayor calidad cuando usen prompts que han sido cuidadosamente desarrollados y probados por los autores del servidor MCP.

Cómo funcionan los prompts

Los prompts definen un conjunto de mensajes de usuario y asistente que los clientes pueden usar directamente. Cuando un cliente solicita un prompt, tu servidor devuelve una lista de mensajes que se pueden enviar directamente a Claude.

Un servidor MCP que contiene un prompt llamado "format", cuya función format_document devuelve una lista de mensajes, mostrada a continuación.

La estructura básica se ve así:

  • Define los prompts usando el decorador @mcp.prompt()
  • Agrega un nombre y una descripción para cada prompt
  • Devuelve una lista de mensajes que forman el prompt completo
  • Estos prompts deben ser de alta calidad, estar bien probados y ser relevantes para el propósito de tu servidor MCP

Creación de un comando de formato

Así es como se implementa un prompt de formateo de documentos. Primero, necesitarás importar los tipos de mensaje base:

python
from mcp.server.fastmcp.prompts import base

Luego define tu función de prompt:

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)
    ]

Prueba de tus prompts

Puedes probar los prompts usando el MCP Inspector. Navega a la sección Prompts, selecciona tu prompt y proporciona los parámetros requeridos. El inspector te mostrará los mensajes generados que se enviarían a Claude.

MCP Inspector mostrando el prompt "format" con doc_id outlook.pdf y el resultado de Get Prompt, un mensaje con rol "user".

Esto te permite verificar que tu prompt interpola las variables correctamente y produce la estructura de mensajes esperada antes de usarlo en una aplicación real.

Mejores prácticas

Al crear prompts para tu servidor MCP:

  • Concéntrate en tareas que sean centrales para el propósito de tu servidor
  • Escribe instrucciones detalladas y específicas en lugar de solicitudes vagas
  • Prueba tus prompts exhaustivamente con diferentes entradas
  • Incluye descripciones claras para que los usuarios entiendan qué hace cada prompt
  • Considera cómo funcionará el prompt con las herramientas y recursos de tu servidor

Recuerda que los prompts están pensados para proporcionar valor que los usuarios no podrían obtener fácilmente por sí mismos: deben representar tu experiencia en el dominio que cubre tu servidor MCP.