Function Calling Schema Builder
Define a tool the way a model sees it — a name, a description, and typed parameters — and get ready-to-paste tool definitions for OpenAI Chat Completions, the OpenAI Responses API, and Anthropic Messages. Everything runs in your browser.
Use letters, numbers, underscores, or hyphens only.
No parameters. Some tools take none — that is valid.
| Field | OpenAI Chat Completions | OpenAI Responses | Anthropic Messages |
|---|---|---|---|
| name | function.name | name | name |
| description | function.description | description | description |
| parameter schema | function.parameters | parameters | input_schema |
| wrapper type | "function" | "function" | — (none) |
| strict flag | function.strict | strict | — (n/a) |
Frequently Asked Questions
Does this send my tool definitions to a server?
Why do OpenAI and Anthropic tool schemas differ?
function.parameters, the Responses API flattens the fields to the top level, and Anthropic uses input_schema. One editor, three envelopes.
What does the strict toggle do?
strict: true and additionalProperties: false, and marks every parameter as required — what OpenAI structured tool calling expects. Turn it off for a looser schema where only the parameters you flag are required. Anthropic ignores the strict flag, so its output never shows one.
Why write good parameter descriptions?
Related reading
OpenAI Agents SDK: Build a Multi-Agent System in Python 2026
Build a multi-agent system with the OpenAI Agents SDK in Python: a step-by-step tutorial covering Agents, Runners, Handoffs, and Guardrails.
Read →GPT-5.6 Programmatic Tool Calling: When It Cuts the Token Bill
We ran GPT-5.6's programmatic tool calling on a real API. On one task it cut tokens 92%. On another it cost 2.2x more. Here's the rule that decides which.
Read →Claude Programmatic Tool Calling: Measured Token Savings
Claude can run your tools from sandbox code so big results never hit its context. We measured what that saves on a real API: 98% fewer tokens on one task.
Read →