Saltar al contenido

JSON Schema → Tool Use

Genera automáticamente formatos de tool_use de Anthropic Claude, function calling de OpenAI y function declaration de Google Gemini a partir de JSON Schema o definiciones de parámetros escritas manualmente. Construye desde cero usando una interfaz de formulario, o pega un esquema existente para convertir los tres formatos simultáneamente.

100% Gratis Sin registro Solo navegador 5 idiomas Modo oscuro
MCP server completo: 🧬 MCP Boilerplate →

            

Usa: agrégalo al array tools[] del SDK

📖 Dónde se suele tropezar

Convierte un JSON Schema o una definición de parámetros escrita a mano al formato tools de Claude, al function calling de OpenAI o a las function declarations de Gemini. Todo se ejecuta en el navegador. Que el formato encaje no significa que el modelo vaya a llamar bien a la herramienta: lo que decide si la llama no es la estructura del JSON, sino lo que dice la description.

Caso Qué ocurre Qué hacer
El modelo no llama nunca a la herramienta La causa es una description demasiado corta, o que sólo dice qué hace la herramienta. Con "Obtiene el tiempo" el modelo no puede deducir cuándo debe llamarla. Si dos herramientas hacen cosas parecidas, no las distingue: favorece una al azar o no llama a ninguna. Descripciones vacías en los parámetros causan el mismo daño. Escribe tanto cuándo usarla como cuándo no. Algo así como "Úsala cuando el usuario pregunte por el tiempo actual de una ciudad. No la uses para datos históricos ni pronósticos: para eso está get_forecast" funciona mucho mejor, porque marca el límite de forma explícita. Haz lo mismo con cada parámetro: no "date" sino "La fecha, en formato YYYY-MM-DD. Ejemplo: 2026-07-26".
Los argumentos llegan con el tipo equivocado Declarar "type": "integer" no impide que vuelva una cadena "3". La frontera entre números y cadenas, el trato de null y los formatos de fecha no quedan del todo forzados por el esquema. Los objetos muy anidados y los esquemas con ramas oneOf o anyOf empeoran más. Valida siempre los argumentos en tu lado: pásalos por zod, pydantic o similar y, cuando la validación falle, devuelve el error al modelo como resultado de la herramienta. Di "date debe ser YYYY-MM-DD; recibido 2026/07/26" y el modelo se corrige y vuelve a llamar. Además, mantén el esquema plano: dos niveles de anidamiento como mucho, y divide las ramificaciones complejas en varias herramientas; eso mejora la precisión más que cualquier redacción.
La precisión cae al añadir herramientas Cada definición de herramienta viaja en la entrada de cada petición. Veinte de ellas añaden unos miles de tokens como coste fijo y, peor aún, cuanto más se parecen las descripciones, más inestable es la elección. Con get_user, fetch_user y load_user_data juntas, ni una persona sabría cuál elegir. Pasa sólo las herramientas que esa situación necesita de verdad. Cambiar el conjunto según el estado de la conversación o la pantalla es lo práctico. Donde los nombres se parezcan, fusiónalas o renómbralas para que el nombre identifique el uso por sí solo: search_users_by_email dice qué busca y cómo, y deja de chocar. Mide el peso en tokens con el contador de tokens.

Los tres formatos se parecen pero anidan el esquema en sitios distintos: Claude lo pone directamente bajo input_schema; OpenAI, bajo function.parameters; Gemini, bajo functionDeclarations[].parameters. Además, Gemini sólo admite un subconjunto de las palabras clave de JSON Schema: cosas como $ref o additionalProperties, que pasan en otros, pueden caerse. Tras portarlo, haz una llamada real y confirma que los argumentos llegan como esperabas. Que el formato se acepte y que funcione como pretendías son hechos distintos.

📖 Cómo usar

  1. 1
    Form / JSON
    Form o pega JSON
  2. 2
    Elige proveedor
    Anthropic / OpenAI / Gemini
  3. 3
    Pega en SDK
    Pega en tools[]

❓ Preguntas frecuentes

¿Diferencias?
input_schema / parameters / functionDeclarations
¿strict?
Solo OpenAI strict
¿Múltiples?
Uno por uno
🐛 ¿Encontró un problema con esta herramienta?

Gratis, sin registro. Incluso solo los pasos para reproducir ayudan. Los informes van directamente al operador y se usan para corregir.

* Se envía automáticamente la info del navegador (UA / pantalla / idioma / URL) para reproducir