🛠️

Function Calling Schema Generator

Define functions visually, export OpenAI/Claude function calling schemas.

Free · no sign-up100% in-browser computationText never leaves your device
工具加载中…

Done calculating? Check these tools

Groq

Groq provides the fastest AI inference in the world with their LPU chips.…

Portkey

Portkey is an AI development tool designed to streamline workflows and boost…

Replicate

Replicate makes it easy to run machine learning models in the cloud. Run…

Related categories

About Function Calling Schema Generator

Fill in a function name, description and typed parameters (type / required / enum / array item type) and get copy-ready Function Calling JSON in both OpenAI tools[] and Claude input_schema dialects. Invalid names fail loudly with a one-click fix instead of silent mangling; the supported JSON-Schema subset is fully covered and its edge (nested anyOf/oneOf) is stated on the page. Generation runs entirely in your browser.

FAQ

What's the difference between the OpenAI and Claude formats?
The parameter schema core (type/properties/required) is identical; the difference is the envelope. OpenAI wraps in a tools array: { type: "function", function: { name, description, parameters } }. Claude is flat: { name, description, input_schema } — no tools wrapper, no nested function object. This tool emits both from the same form; flip the tab to compare. Both vendors weigh descriptions heavily — the more specific, the more reliable the calls.
Why force lowercase snake_case function names?
Both vendors' examples use snake_case, and some runtimes (routing layers, older SDKs) tolerate uppercase or hyphens inconsistently. To keep the generated JSON runnable everywhere, the tool validates ^[a-z][a-z0-9_]*$; type anything else and you get an explicit error plus a one-click suggestion (the suggestion filters characters — confirm it still reads well). Parameter names are looser: camelCase or snake_case, letters first.
How do enum parameters work? Are numbers supported?
Enums are open to string/number/integer only. Enter comma-separated values: strings are taken verbatim (celsius,fahrenheit); number/integer values are parsed one by one, and any non-numeric entry fails loudly instead of emitting a broken schema. The point of an enum is collapsing open-ended generation into a closed set — with one, the model all but stops inventing values for things like temperature units or sort order.