All tools

Tool-Definition Schema Linter

AI / Agent

Lint an LLM tool/function-calling JSON definition (OpenAI, Anthropic, or MCP format) for mistakes that measurably hurt model accuracy: missing descriptions, invalid names, empty enums, or a required field with no matching property

Every agent developer hand-writes tool schemas for OpenAI, Anthropic, or MCP function calling, and it's easy to ship one with a mistake the model can't tell you about: a missing description, an empty enum, or a required field that was renamed in properties but not in the required array. This paste-and-lint tool detects the three major formats automatically, whether it's a single definition, an array of them, or a wrapped {tools:[...]} object, and flags the issues that research and practical experience both show measurably hurt tool-selection accuracy: vague or missing descriptions on the tool itself and on individual parameters, names that don't match provider naming rules, and structural mismatches between required and properties.

agentschemalinterfunction-callingmcp

How to use Tool-Definition Schema Linter

  • 1.Paste a single tool definition, an array of them, or a {tools:[...]} wrapper in OpenAI, Anthropic, or MCP format.
  • 2.Review the issues list: errors are structural problems (invalid names, missing descriptions, broken required/properties references), warnings are quality issues like a too-short description.
  • 3.Fix the flagged tool, then re-paste to confirm the schema is clean before shipping it to your agent.

Frequently asked questions

Which tool-definition formats does this recognize?
OpenAI's {type:"function",function:{...}} shape, Anthropic's {name,input_schema} shape, and MCP's {name,inputSchema} shape, plus a bare {name,parameters} shape. It auto-detects the format per tool, so a mixed array works too.
Does it call an LLM to check the descriptions?
No, this is a deterministic rule-based linter, not an AI tool. It checks structural rules (missing fields, empty enums, name format, required/properties mismatches) and length heuristics on descriptions, not semantic quality.
What counts as an error versus a warning?
Errors are things that break the schema outright or would be rejected by the API: a missing name or description, an invalid name format, a non-object parameter schema, an empty enum, or a required field not defined in properties. Warnings are quality issues like a very short description or a property missing its own description.
Does it validate against a live OpenAI or Anthropic API?
No, this validates the JSON structure against each provider's documented schema requirements. It doesn't make any network requests or confirm the schema is accepted by a live API call.

Use via API, SDK, or MCP

cURL# Free: 1,000 req/day · Pro: 10,000 req/day
curl -X POST https://api.utilix.tech/v1/tools/tool-schema-linter \
  -H "Authorization: Bearer utx_live_..." \
  -H "Content-Type: application/json" \
  -d '{"schema":"{\"type\":\"function\",\"function\":{\"name\":\"get_weather\",\"description\":\"Get the current weather for a city.\",\"parameters\":{\"type\":\"object\",\"properties\":{\"city\":{\"type\":\"string\",\"description\":\"City name\"}},\"required\":[\"city\"]}}}"}'

Get an API key from your dashboard · Full API docs →