Una definición de herramienta tiene dos tareas y solo una es JSON. El esquema dice qué forma tienen los argumentos; las descripciones dicen para qué sirve la herramienta y qué significa cada argumento. Un esquema puede ser perfectamente válido y aun así producir una herramienta que se llama en el momento equivocado con disparates verosímiles dentro, porque nada en el JSON explica qué es nada. Este creador escribe el esquema y comprueba ambas mitades: la estructura y si algo está realmente descrito. El modo estricto también se trata como corresponde: exige que todas las propiedades figuren como obligatorias y prohíbe las extra, lo que despista porque el esquema por lo demás no cambia.
Características
Parámetros con tipos, descripciones y conjuntos cerrados de valores opcionales
La regla de «todo obligatorio» del modo estricto aplicada, no descubierta después
additionalProperties fijado correctamente con el modo estricto activo
Los arrays reciben un esquema de items automáticamente
Avisa de un parámetro sin descripción
Detecta nombres de parámetro duplicados
Señala un enum con un solo valor, que es una constante
Emite la definición completa, no solo el esquema
Cómo usar Esquema de herramienta MCP
Nombra la herramienta y describe cuándo debe usarse
Añade cada parámetro con su tipo y una descripción
Marca cuáles son obligatorios, o activa el modo estricto
Copia la definición en tu array de herramientas
Ejemplo
Entrada
"strict": true
Salida
Error: strict mode requires every property to be listed as required
El modo estricto no admite propiedades opcionales: permite null en su lugar.
Errores comunes y solución de problemas
El modo estricto se rechaza. — Exige que todas las propiedades sean obligatorias y additionalProperties false. Marca las opcionales como obligatorias permitiendo null, o desactiva el modo estricto.
La herramienta se llama con argumentos equivocados. — Normalmente parámetros sin descripción. Un nombre solo deja el significado a la deducción, y «id» podría ser cualquier cosa.
La herramienta se llama en el momento equivocado. — Eso es la descripción de la herramienta, no el esquema. Di cuándo usarla y qué devuelve, no solo qué hace.
Un parámetro de tipo array se rechaza. — Los arrays necesitan un esquema de items que diga qué contienen. Aquí se añade automáticamente.
Preguntas frecuentes
¿Qué cambia realmente el modo estricto?
Garantiza que los argumentos validan contra el esquema exactamente. El precio es que todas las propiedades deben figurar como obligatorias y no se admiten extras, así que un argumento realmente opcional hay que modelarlo como obligatorio pero anulable.
¿Cuánto detalle debe tener la descripción de un parámetro?
El suficiente para que alguien que solo lea el esquema sepa qué poner ahí: el formato, las unidades, de dónde sale el valor. «La dirección de correo con la que se hizo el pedido» vale muchísimo más que «correo».
¿Cuándo debería usar un enum?
Cuando el conjunto de valores válidos sea realmente cerrado y corto. Elimina toda una clase de respuestas erróneas. Un enum de un solo valor se señala porque es una constante, no un parámetro.
¿Sirve para herramientas MCP y de API?
El esquema es el mismo subconjunto de JSON Schema en ambos casos. La envoltura cambia un poco según el contexto, pero el esquema de entrada —la parte fácil de equivocar— es idéntico.
¿Qué hace buena a la descripción de una herramienta?
Tres cosas en un par de frases: qué hace, cuándo recurrir a ella y qué devuelve. La última es la más omitida y la más útil, porque le dice a quien llama si una sola llamada bastará.