PTENES
MÓDULO 3.7

📝 Cómo agregar prompts

Crea prompts reutilizables que estructuran cómo interactúa el modelo con tu servidor.

6
Temas
25
Minutos
Intermedio
Nivel
Práctico
Tipo
1

📝 Qué son los prompts en el código

En el contexto de MCP, los prompts son plantillas de instrucciones que el server ofrece al modelo. Son distintos de las tools (que ejecutan acciones) y los resources (que proporcionan datos). Los prompts estructuran como el modelo debe pensar y responder en escenarios específicos usando el decorator @mcp.prompt() para registrarlos en el servidor.

💎 Concepto principal

Un prompt MCP es una plantilla reutilizable que define instrucciones para el modelo. Mientras que las herramientas ejecutan acciones concretas (buscar datos, enviar mensajes) y los recursos exponen datos estáticos (archivos, configuraciones), los prompts definen patrones de interacción — cómo debe analizar el modelo el código, generar informes o dar formato a las respuestas. El decorator @mcp.prompt() registra una función de Python como un prompt disponible en el server, que el client puede enumerar e invocar.

💡 Consejo práctico

Piensa en los prompts como recetas predefinidas para el modelo. En vez de que el usuario escriba "analiza este código centrándote en los errores, el rendimiento y la legibilidad" cada vez, el servidor ofrece un prompt "revisar_codigo" listo para usar. El cliente elige el prompt, el servidor devuelve las instrucciones con formato y el modelo sabe exactamente qué hacer. Es reutilización del conocimiento en forma de instrucciones.

2

✏️ Creando prompts simples

El prompt más básico es una función decorada con @mcp.prompt() que devuelve una cadena. Esta cadena contiene las instrucciones que se enviarán al modelo. Sencillo, directo y potente: basta con definir la función y MCP se encarga del resto.

💎 Concepto principal

Crear un prompt simple solo requiere el decorador y una función que devuelva una cadena:

@mcp.prompt()
def revisar_codigo():
"""Prompt para revisión de código"""
return "Revisa este código centrándote en errores, rendimiento y legibilidad."

El nombre de la función (revisar_codigo) se convierte en el identificador del prompt. La docstring se convierte en la descripción. La cadena devuelta se convierte en el contenido del prompt que se envía al modelo.

❌ Evitar
  • •Prompts vagos y sin un enfoque claro
  • •Instrucciones ambiguas o contradictorias
  • •Prompts enormes que intentan abarcarlo todo
  • •Funciones sin docstring (descripción vacía)
✅ Hacer
  • •Prompts centrados en una tarea específica
  • •Instrucciones claras y objetivas
  • •Nombres descriptivos para las funciones
  • •Docstring que explica el propósito del prompt
3

🔧 Prompts con parámetros

Los prompts estáticos son útiles, pero su verdadero potencial aparece cuando agregas parámetros dinámicos. Al usar type hints de Python, MCP detecta automáticamente los parámetros y los expone al client, que puede completarlos antes de invocar el prompt.

💎 Concepto principal

Los parámetros se definen como argumentos de la función con type hints:

@mcp.prompt()
def gerar_relatorio(tipo: str, periodo: str):
"""Genera un informe personalizado"""
return f"Genera un informe de {tipo} del período {periodo}. "
f"Incluye métricas, tendencias y recomendaciones."

MCP usa los type hints para indicar al client qué parámetros se esperan. El client presenta campos para que el usuario los complete (ej.: tipo="ventas", periodo="Q1 2025") antes de invocar el prompt.

💡 Consejo práctico

Usa nombres descriptivos para los parámetros — tipo e periodo son mejores que t e p. El client muestra estos nombres al usuario, así que la claridad importa. Si un parámetro es opcional, usa Optional[str] = None como anotación de tipo.

📋 Flujo de un prompt con parámetros
Paso 1

El cliente enumera los prompts disponibles y ve "gerar_relatorio" con parámetros tipo (str) y periodo (str).

Paso 2

El usuario completa los parámetros: tipo="ventas", periodo="marzo 2025".

Paso 3

El server ejecuta la función, sustituye los parámetros en la string y devuelve el prompt completo al modelo.

4

📋 Listar prompts

El client MCP puede solicitar la lista de todos los prompts disponibles en el server, incluidos sus nombres, descripciones y parámetros. Esto permite que las interfaces de usuario muestren un catálogo de prompts disponibles y que la experiencia sea intuitiva y esté autodocumentada.

💎 Concepto principal

El protocolo MCP define el método prompts/list que devuelve todos los prompts registrados en el server. Para cada prompt, el client recibe: el nombre (derivado del nombre de la función), la descripción (derivada del docstring de la función) y la lista de parámetros (derivada de los type hints). Esto significa que la documentación del prompt se genera automáticamente a partir del código Python; no es necesario mantener documentación aparte.

📊 Datos e investigación

Qué recibe el client al listar prompts:

// Respuesta de prompts/list
{
"prompts": [
{
"name": "revisar_código",
"description": "Prompt para revisión de código",
"arguments": []
},
{
"name": "generar_informe",
"description": "Genera un informe personalizado",
"arguments": [
{ "name": "tipo", "required": true },
{ "name": "periodo", "required": true }
]
}
]
}
5

🎯 Casos de uso

Los prompts MCP destacan cuando tienes patrones de interacción que se repiten con frecuencia. En vez de que cada usuario escriba sus propias instrucciones (muchas veces de forma incoherente), el server ofrece prompts estandarizados y probados que garantizan resultados de alta calidad.

💎 Concepto principal

Los mejores prompts MCP encapsulan experiencia en el dominio en plantillas reutilizables. Un prompt para analizar código puede incluir criterios que usaría un desarrollador sénior. Un prompt para informes puede seguir el formato oficial de la empresa. La idea es transformar el conocimiento tácito en instrucciones explícitas y compartibles, para que cualquier usuario obtenga resultados de nivel experto.

📋 Cinco casos de uso poderosos
Análisis de código

Prompt que indica al modelo que revise el código centrándose en errores, seguridad, rendimiento y legibilidad, con una lista de verificación estandarizada del equipo.

Generación de informes

Prompt parametrizado que genera informes en un formato específico con métricas, gráficos sugeridos y recomendaciones prácticas.

Formato de datos

Prompt que transforma datos sin procesar en tablas con formato, JSON estructurado o CSV, con reglas de validación integradas.

Plantillas de correo electrónico

Prompt que genera correos electrónicos profesionales siguiendo el tono y el formato de la empresa, con parámetros para el destinatario, el asunto y el contexto.

Revisión de la documentación

Prompt que analiza documentación técnica y verifica su claridad, exhaustividad, ejemplos y coherencia con los estándares del proyecto.

❌ Evitar
  • •Crear un único prompt genérico para todo
  • •Duplicar lógica que debería ser una tool
  • •Prompts que dependen de un contexto externo que no se proporciona
  • •Ignorar la diferencia entre prompt, tool y resource
✅ Hacer
  • •Un prompt para una tarea específica
  • •Usar prompts para dar instrucciones, tools para realizar acciones
  • •Parametrizar lo que varía entre invocaciones
  • •Probar cada prompt con diferentes entradas
6

🧪 Probando prompts

Antes de poner prompts a disposición para su uso en producción, es esencial probarlos. MCP Inspector permite listar todos los prompts del server, ver los parámetros esperados e invocar prompts manualmente para verificar que las instrucciones generadas sean correctas y completas.

💎 Concepto principal

O MCP Inspector es la herramienta ideal para probar prompts. En la pestaña «Prompts», muestra todos los prompts registrados con sus nombres, descripciones y parámetros. Puedes completar los parámetros y hacer clic en «Get Prompt» para ver exactamente qué se enviará al modelo. Esto permite validar que las instrucciones estén completas, que los parámetros se sustituyan correctamente y que el formato sea adecuado, todo sin necesidad de conectarse a Claude Desktop.

💡 Consejo práctico

Prueba cada prompt con valores extremos: cadenas vacías, textos muy largos, caracteres especiales. Verifica que el prompt gestione bien los casos límite. Si un parámetro es opcional, pruébalo con y sin él. Si el prompt usa f-strings, confirma que la interpolación funcione correctamente en todos los escenarios previstos.

🚨 Alerta

Los prompts no validan los parámetros automáticamente: si el client envía una cadena vacía para un parámetro obligatorio, el prompt se generará con ese espacio en blanco. Siempre valida los parámetros dentro de la función antes de construir la cadena de retorno. Usa if not tipo: raise ValueError("tipo é obrigatório") para garantizar que los datos no válidos no pasen inadvertidos.

📝 Resumen del módulo

  • ✓ Los prompts MCP son plantillas de instrucciones registradas con @mcp.prompt() — diferentes de tools y resources.
  • ✓ Los prompts simples devuelven una cadena fija con instrucciones para el modelo.
  • ✓ Los parámetros dinámicos se definen mediante type hints y el client los completa antes de la invocación.
  • ✓ El cliente puede enumerar los prompts disponibles con nombres, descripciones y parámetros — documentación automática.
  • ✓ Los casos de uso incluyen análisis de código, informes, formato de datos, correos electrónicos y revisión de documentación.
  • ✓ MCP Inspector permite probar y validar prompts antes de ponerlos en producción.

Siguiente Módulo: 3.8 — Manejo de errores