Documentación Oficial de MCP en Español
  1. Conceptos
Documentación Oficial de MCP en Español
  • Empezar
    • Introducción
    • Servidores de ejemplo
    • Clientes de ejemplo
    • Inicio rápido
      • Para desarrolladores de servidores
      • Para desarrolladores de clientes
      • Para usuarios de Claude Desktop
  • Tutoriales
    • Construyendo MCP con LLMs
    • Depuración
    • Inspector
  • Conceptos
    • Arquitectura central
    • Recursos
    • Indicaciones
    • Herramientas
    • Muestreo
    • Raíces
    • Transportes
  • Desarrollo
    • Qué hay de nuevo
    • Hoja de ruta
    • Contribuyendo
  1. Conceptos

Indicaciones

Crear plantillas y flujos de trabajo de prompts reutilizables
Los prompts permiten a los servidores definir plantillas y flujos de trabajo de prompts reutilizables que los clientes pueden mostrar fácilmente a los usuarios y a los LLM. Proporcionan una forma poderosa de estandarizar y compartir interacciones comunes con LLM.
Los prompts están diseñados para ser controlados por el usuario, lo que significa que se exponen de los servidores a los clientes con la intención de que el usuario pueda seleccionarlos explícitamente para su uso.

Descripción general#

Los prompts en MCP son plantillas predefinidas que pueden:
Aceptar argumentos dinámicos
Incluir contexto de recursos
Encadenar múltiples interacciones
Guiar flujos de trabajo específicos
Mostrar como elementos de la interfaz de usuario (como comandos de barra inclinada)

Estructura del prompt#

Cada prompt se define con:

Descubriendo prompts#

Los clientes pueden descubrir los prompts disponibles a través del endpoint prompts/list:

Usando prompts#

Para usar un prompt, los clientes realizan una solicitud prompts/get:

Prompts dinámicos#

Los prompts pueden ser dinámicos e incluir:

Contexto de recurso integrado#

{
  "name": "analyze-project",
  "description": "Analyze project logs and code",
  "arguments": [
    {
      "name": "timeframe",
      "description": "Time period to analyze logs",
      "required": true
    },
    {
      "name": "fileUri",
      "description": "URI of code file to review",
      "required": true
    }
  ]
}
Al manejar la solicitud prompts/get:
{
  "messages": [
    {
      "role": "user",
      "content": {
        "type": "text",
        "text": "Analyze these system logs and the code file for any issues:"
      }
    },
    {
      "role": "user",
      "content": {
        "type": "resource",
        "resource": {
          "uri": "logs://recent?timeframe=1h",
          "text": "[2024-03-14 15:32:11] ERROR: Connection timeout in network.py:127\n[2024-03-14 15:32:15] WARN: Retrying connection (attempt 2/3)\n[2024-03-14 15:32:20] ERROR: Max retries exceeded",
          "mimeType": "text/plain"
        }
      }
    },
    {
      "role": "user",
      "content": {
        "type": "resource",
        "resource": {
          "uri": "file:///path/to/code.py",
          "text": "def connect_to_service(timeout=30):\n    retries = 3\n    for attempt in range(retries):\n        try:\n            return establish_connection(timeout)\n        except TimeoutError:\n            if attempt == retries - 1:\n                raise\n            time.sleep(5)\n\ndef establish_connection(timeout):\n    # Connection implementation\n    pass",
          "mimeType": "text/x-python"
        }
      }
    }
  ]
}

Flujos de trabajo de varios pasos#

Ejemplo de implementación#

Aquí hay un ejemplo completo de implementación de prompts en un servidor MCP:
TypeScript
Python

Mejores prácticas#

Al implementar prompts:
1.
Use nombres de prompt claros y descriptivos
2.
Proporcione descripciones detalladas para prompts y argumentos
3.
Valide todos los argumentos requeridos
4.
Maneje los argumentos faltantes con elegancia
5.
Considere el versionado para las plantillas de prompt
6.
Almacene en caché el contenido dinámico cuando sea apropiado
7.
Implemente el manejo de errores
8.
Documente los formatos de argumento esperados
9.
Considere la composibilidad del prompt
10.
Pruebe los prompts con varias entradas

Integración de la interfaz de usuario#

Los prompts se pueden mostrar en las interfaces de usuario del cliente como:
Comandos de barra inclinada
Acciones rápidas
Elementos del menú contextual
Entradas de la paleta de comandos
Flujos de trabajo guiados
Formularios interactivos

Actualizaciones y cambios#

Los servidores pueden notificar a los clientes sobre los cambios en los prompts:
1.
Capacidad del servidor: prompts.listChanged
2.
Notificación: notifications/prompts/list_changed
3.
El cliente vuelve a buscar la lista de prompts

Consideraciones de seguridad#

Al implementar prompts:
Valide todos los argumentos
Desinfecte la entrada del usuario
Considere la limitación de velocidad
Implemente controles de acceso
Audite el uso del prompt
Maneje los datos confidenciales de manera apropiada
Valide el contenido generado
Implemente tiempos de espera
Considere los riesgos de inyección de prompt
Documente los requisitos de seguridad
Previous
Recursos
Next
Herramientas
Built with