Cargando

Definición de prompts

Lección 579 min

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 lo 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 obtener resultados decentes. Pero probablemente obtendría una salida mucho mejor si usara un prompt especializado y minuciosamente probado que hayas diseñado específicamente para el formateo de documentos.

La idea clave es que, si bien los usuarios pueden realizar estas tareas por sí mismos, obtendrán resultados superiores cuando usen prompts que han sido cuidadosamente diseñados y probados por los autores del servidor MCP.

Cómo funcionan los prompts

Los prompts definen un conjunto de mensajes de usuario y de 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.

La estructura básica se ve así:

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]:
    # Devuelve una lista de mensajes

Creación de un comando de formato

Aquí tienes un ejemplo práctico. Crearemos un comando de formato que permita a los usuarios escribir /format doc_id para reformatear cualquier documento a sintaxis markdown.

La implementación del prompt incluye instrucciones detalladas para 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)
    ]

Prueba de tus prompts

Puedes probar los prompts usando el MCP Inspector. Navega a la pestaña Prompts, selecciona tu prompt y proporciona los parámetros requeridos.

El inspector te muestra exactamente qué mensajes se enviarán a Claude, incluyendo cómo se interpolan los parámetros en el texto del prompt.

Beneficios clave

  • Control de calidad - Puedes probar y refinar los prompts antes de que los usuarios los vean
  • Consistencia - Los usuarios obtienen resultados confiables cada vez
  • Especialización - Los prompts pueden adaptarse al dominio específico de tu servidor
  • Reutilización - Múltiples clientes pueden usar los mismos prompts bien elaborados

Detalles de implementación

No olvides importar el módulo base para los tipos de mensajes:

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

Los prompts deben ser de alta calidad, estar bien probados y ser relevantes para el propósito general de tu servidor MCP. En nuestro ejemplo de gestión de documentos, los prompts de formateo tienen mucho sentido ya que el servidor se especializa en operaciones con documentos.