Los servidores MCP pueden definir prompts: instrucciones preescritas y de alta calidad que los clientes pueden usar en lugar de escribir sus propios prompts desde cero. Piensa en los prompts como plantillas cuidadosamente elaboradas que dan mejores resultados que lo que los usuarios podrían escribir por sí mismos.
¿Por qué usar prompts?
Supongamos que quieres que Claude reformatee un documento a markdown. Podrías simplemente pedir "Convierte report.pdf a markdown" y funcionaría bien. Pero probablemente obtendrías resultados mucho mejores con un prompt minuciosamente probado y detallado que cubra casos extremos y dé instrucciones de formato específicas.

La idea es simple: como desarrolladores de servidores MCP, podemos dedicar tiempo a elaborar y probar prompts realmente buenos, y luego hacerlos disponibles para cualquiera que use nuestro servidor. Los usuarios obtienen mejores resultados sin tener que convertirse ellos mismos en expertos en ingeniería de prompts.
Definiendo un prompt
Los prompts usan un patrón de decorador similar al de las herramientas y los recursos. Aquí está la estructura básica:
@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]:
# Devuelve una lista de mensajesLa función devuelve una lista de mensajes que se pueden enviar directamente a Claude. Esto te permite construir prompts complejos con múltiples mensajes de usuario y de asistente si es necesario.
Construyendo el prompt de formato
Para nuestro servidor de documentos, crearemos un prompt que reformatee documentos a markdown. El prompt necesita:
- Tomar un ID de documento como entrada
- Usar la herramienta read_doc_contents para obtener el documento
- Reformatearlo con la sintaxis markdown adecuada
- Guardar los cambios de vuelta en el documento
Así es como se ve la implementación:
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)
]Probando el prompt
Una vez que hayas definido tu prompt, puedes probarlo usando el MCP Inspector. Navega a la pestaña Prompts, selecciona tu prompt y proporciona los parámetros requeridos.

El inspector te mostrará los mensajes generados que se enviarían a Claude. Puedes verificar que la interpolación de parámetros funcione correctamente y que tu prompt contenga todas las instrucciones necesarias.
Beneficios clave
- Control de calidad - Los autores del servidor pueden probar y refinar los prompts antes de que los usuarios los vean
- Consistencia - Todos obtienen el mismo prompt de alta calidad en lugar de improvisar
- Especialización - Los prompts pueden adaptarse al dominio y las capacidades específicas de tu servidor
- Reutilización - Múltiples aplicaciones cliente pueden usar los mismos prompts bien elaborados
Recuerda importar el módulo base para los tipos de mensaje:
from mcp.server.fastmcp.prompts import baseLos prompts son particularmente valiosos cuando tu servidor MCP tiene un área de enfoque específica, como la gestión de documentos, el análisis de datos o la generación de código. Puedes proporcionar a los usuarios prompts probados en batalla que aprovechen eficazmente las herramientas de tu servidor.