Tool-Schema Designer

Compose a tool/function definition field by field — name, description, parameters, required flags — and export valid tool-use JSON for the Claude and OpenAI formats, with the JSON Schema generated for you. Stop hand-writing function-calling schemas and fighting silent validation errors.

Parameters
{
  "name": "get_weather",
  "description": "Get the current weather for a given location.",
  "input_schema": {
    "type": "object",
    "properties": {
      "location": {
        "type": "string",
        "description": "City and region, e.g. \"Austin, TX\"."
      },
      "unit": {
        "type": "string",
        "description": "Temperature unit: \"celsius\" or \"fahrenheit\"."
      }
    },
    "required": [
      "location"
    ]
  }
}

How it works

  • A tool = name + description + a JSON Schema of its parameters.
  • The model uses your descriptions to decide when and how to call it.
  • Required params go in the schema’s "required" array.
  • Same inputs export to both Claude (input_schema) and OpenAI (function) formats.

Frequently asked questions

What is a tool (function) definition for LLMs?

It is a structured description — name, what it does, and a JSON Schema of its parameters — that you give a model so it can decide when to call the function and produce correctly-shaped arguments. It is the contract between your code and the model’s tool use.

How do Claude and OpenAI tool formats differ?

They carry the same information in slightly different shapes: Claude uses an input_schema field on each tool, while OpenAI nests the definition under a function object with a parameters field. This builder emits both from the same inputs so you do not have to remember the difference.

Why does the parameter description matter so much?

The model relies on each parameter’s description to fill it correctly. Vague descriptions lead to wrong or missing arguments. Clear, specific descriptions (including format and units) are the single biggest lever on reliable tool calling.

What does marking a parameter "required" do?

Required parameters are listed in the schema’s required array, signalling the model that it must supply them to call the tool. Optional parameters can be omitted. Getting this right prevents the model from calling a tool with incomplete arguments.