Descubrimiento: Los clientes pueden listar las herramientas disponibles a través del endpoint tools/list
Invocación: Las herramientas se llaman utilizando el endpoint tools/call
, donde los servidores realizan la operación solicitada y devuelven los resultados
Flexibilidad: Las herramientas pueden variar desde cálculos simples hasta interacciones complejas de API
1.
Proporcionar nombres y descripciones claros y descriptivos
2.
Utilizar definiciones detalladas de JSON Schema para los parámetros
3.
Incluir ejemplos en las descripciones de las herramientas para demostrar cómo el modelo debe usarlas
4.
Implementar el manejo y la validación de errores adecuados
5.
Utilizar informes de progreso para operaciones largas
6.
Mantener las operaciones de las herramientas enfocadas y atómicas
7.
Documentar las estructuras de valores de retorno esperadas
8.
Implementar timeouts adecuados
9.
Considerar la limitación de velocidad para operaciones intensivas en recursos
10.
Registrar el uso de la herramienta para la depuración y el monitoreo
Validar todos los parámetros contra el esquema
Sanear las rutas de archivos y los comandos del sistema
Validar las URLs y los identificadores externos
Comprobar los tamaños y rangos de los parámetros
Prevenir la inyección de comandos
No exponer los errores internos a los clientes
Registrar los errores relevantes para la seguridad
Manejar los timeouts apropiadamente
Limpiar los recursos después de los errores
Validar los valores de retorno
1.
Los clientes pueden listar las herramientas disponibles en cualquier momento
2.
Los servidores pueden notificar a los clientes cuando las herramientas cambian utilizando notifications/tools/list_changed
3.
Las herramientas se pueden agregar o eliminar durante el tiempo de ejecución
4.
Las definiciones de herramientas se pueden actualizar (aunque esto debe hacerse con cuidado)
Pruebas funcionales: Verificar que las herramientas se ejecuten correctamente con entradas válidas y manejar las entradas no válidas de manera apropiada
Pruebas de integración: Probar la interacción de la herramienta con sistemas externos utilizando dependencias reales y simuladas
Pruebas de seguridad: Validar la autenticación, la autorización, el saneamiento de la entrada y la limitación de la velocidad
Pruebas de rendimiento: Comprobar el comportamiento bajo carga, el manejo del timeout y la limpieza de los recursos
Manejo de errores: Asegurarse de que las herramientas informen correctamente los errores a través del protocolo MCP y limpien los recursos