Herramientas que el modelo sabe usar
Una herramienta no la lee una persona: la lee un modelo, y decide con eso si la llama y con qué argumentos. Los cuatro campos que ve son los que definen si funciona.
name
Es el identificador único dentro del espacio de nombres del servidor y la clave con la que se ejecuta. La documentación recomienda un patrón claro: calculator_arithmetic en vez de simplemente calculate.
title y description
title es el nombre legible que los clientes pueden mostrarle a la persona. description es la explicación detallada de qué hace la herramienta y cuándo usarla — es literalmente lo que orienta la decisión del modelo.
inputSchema
Un JSON Schema que define los parámetros esperados. Sirve para dos cosas a la vez: valida los tipos y documenta qué es obligatorio y qué es opcional. En el ejemplo oficial, location es requerido y units tiene enum con metric, imperial y kelvin, más un default.
La respuesta
tools/call devuelve un array content, donde cada objeto declara su type. Eso permite respuestas de varios formatos en una sola llamada.
Cachés y cambios
Las respuestas pueden traer ttlMs (cuánto tiempo es razonable cachearlas) y cacheScope. Y si tu lista de herramientas cambia, el aviso es opcional por suscripción: el cliente abre subscriptions/listen pidiendo toolsListChanged, el servidor confirma con notifications/subscriptions/acknowledged y después envía notifications/tools/list_changed.