Use tool-use-schema-writer
Takes a function description (name, purpose, parameters) and writes a valid Anthropic tool_use JSON schema, with type annotations, required fields, and a description for…
Takes a function description (name, purpose, parameters) and writes a valid Anthropic tool_use JSON schema, with type annotations, required fields, and a description for each parameter. Adds a Python client.messages.create(tools=[...]) snippet only when asked.
Reach for it when wiring a Claude agent to a function or API, designing tools for a multi-agent system, or documenting an existing tool for agent consumption.
Install it
npx skilldrop-cli install tool-use-schema-writer # Claude Code, your user folder
npx skilldrop-cli install tool-use-schema-writer --project # Claude Code, this repo
npx skilldrop-cli install tool-use-schema-writer --ide cursor # or kiro, codex, antigravity, copilot
It is part of the API builder pack: --pack api-builder installs it with its neighbours.
Ask for it
Say it the way you would to a colleague. Requests like these route to it:
- "Write the tool_use JSON schema for this function so Claude can call it"
- "Turn this TypeScript API client method into an Anthropic tool definition"
- "I have three functions for my agent — write their tool schemas so the model picks the right one"
- "Document this existing endpoint as a tool the agent can consume, with required fields"
Requests like these belong to a different skill, so it shouldn't answer them:
- "Design the control loop for my tool-using agent — stop conditions and retries"
- "Split this workflow across an orchestrator and specialist subagents"
- "Draft the OpenAPI contract for our new public REST API"
If another skill answers instead, ask for this one by name: "use tool-use-schema-writer".
Check what you get
A good result:
- Descriptions are decision conditions, not function names restated.
"Gets the weather"is not a description —"Returns the current temperature and conditions for a given city. Call this when the user asks about current weather, not forecasts."is. - Required arrays are never omitted. An omitted
requiredarray means all fields are optional — the model will skip fields the function actually needs and the call will fail at runtime. - Enum values always have descriptions.
"enum": ["asc", "desc"]without a description leaves the model guessing which to use.
Next
- SKILL.md, the instructions the agent reads
- Its page on the site
- Related: agent-loop-design, subagent-design