Cargando

Prompts en el cliente

Lección 587 min

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 desde el 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:

python
async def list_prompts(self) -> list[types.Prompt]:
    result = await self.session().list_prompts()
    return result.prompts

Obteniendo 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, proporcionamos ese valor en el diccionario de argumentos:

python
async def get_prompt(self, prompt_name, args: dict[str, str]):
    result = await self.session().get_prompt(prompt_name, args)
    return result.messages

El método devuelve mensajes que forman una conversación lista para ser introducida directamente en Claude.

Cómo Funcionan los Argumentos de Prompts

Cuando defines una función de prompt en tu servidor MCP, cualquier parámetro se vuelve disponible como variable de interpolación. El diccionario de argumentos que pasas a get_prompt proporciona valores para estos parámetros. El servidor luego genera el prompt completo con tus valores sustituidos en los lugares apropiados.

Probando la Implementación

Una vez implementado, puedes probar los prompts a través de la CLI. Cuando escribes una barra diagonal, los prompts disponibles aparecen como comandos. Seleccionar un prompt como "format" te pedirá elegir valores para cualquier argumento requerido (como seleccionar un documento para formatear). El sistema entonces:

  1. Recupera el prompt con tus argumentos interpolados
  2. Envía el prompt completo a Claude
  3. Claude ejecuta las llamadas a herramientas necesarias para cumplir con la solicitud
  4. Devuelve el resultado formateado

Prompts en la Práctica

Los prompts definen conjuntos reutilizables de mensajes de usuario y asistente que los clientes pueden invocar. Deben ser de alta calidad, bien probados y relevantes para el propósito de tu servidor MCP. Piensa en ellos como flujos de trabajo preconstruidos que combinan las herramientas y recursos de tu servidor para lograr tareas específicas.

El sistema de prompts crea una separación clara entre la lógica del prompt (definida en el servidor) y la ejecución (manejada por el cliente y Claude). Esto facilita la creación de flujos de trabajo sofisticados de múltiples pasos que los usuarios pueden activar con comandos simples.