El paso final en la construcción de nuestro cliente MCP es implementar la funcionalidad de prompts. Esto nos permite listar todos los prompts disponibles del servidor y recuperar prompts específicos con variables interpoladas en ellos.
Implementando List Prompts
El método list_prompts es sencillo. Llamamos al método de listado de prompts de la sesión y devolvemos los prompts:
async def list_prompts(self) -> list[types.Prompt]:
result = await self.session().list_prompts()
return result.promptsObteniendo Prompts Individuales
El método get_prompt es más interesante porque maneja la interpolación de argumentos. Cuando solicitamos un prompt específico, pasamos argumentos que se inyectan en la función del prompt. Por ejemplo, si nuestro servidor tiene un prompt "format" que espera un parámetro doc_id, ese valor se pasa e interpola en el texto real del prompt.
async def get_prompt(self, prompt_name, args: dict[str, str]):
result = await self.session().get_prompt(prompt_name, args)
return result.messagesEl método devuelve mensajes que forman una conversación lista para ser alimentada directamente a Claude.
Probando Prompts en Acción
Cuando ejecutas el cliente y escribes una barra diagonal, verás los prompts disponibles como comandos. Seleccionar un prompt como "format" te pedirá que elijas entre los documentos disponibles. El sistema entonces:
- Toma el prompt con el ID del documento interpolado
- Lo alimenta directamente a Claude como un mensaje de usuario
- Claude recibe tanto las instrucciones como el ID del documento
- Claude usa las herramientas disponibles para obtener el contenido del documento
- Claude responde con el resultado reformateado

Cómo Funcionan los Prompts
Los prompts definen un conjunto de mensajes de usuario y asistente que pueden ser usados por el cliente. Estos prompts deben ser de alta calidad, bien probados y relevantes para el propósito general de tu servidor MCP.

El flujo de trabajo es:
- Escribe y evalúa un prompt relevante para el propósito de tu servidor MCP
- Define el prompt dentro de tu servidor MCP usando el decorador
@mcp.prompt - Tu cliente puede solicitar ese prompt en cualquier momento
- Al solicitar el prompt, proporciona argumentos que se pasan como argumentos de palabra clave a la función del prompt
- La función usa esos argumentos para personalizar el contenido del prompt
Este sistema crea prompts reutilizables y parametrizados que pueden compartirse entre diferentes clientes y casos de uso, haciendo que tu servidor MCP sea más versátil y potente.