agent-tool-builder — Claude Code skill: what it does, how to install
A skill for writing tool schemas an agent can actually use: JSON Schema, descriptions, validation, error paths. Useful when it keeps calling the wrong function.
npx skills add sickn33/agentic-awesome-skills --skill agent-tool-builder -a claude-codeWhat agent-tool-builder does
The skill covers tool design for AI agents: how to shape a JSON Schema, what belongs in a description so the model picks the right function, how arguments get checked, and what to send back when a call fails. MCP gets its own section. Published by sickn33 under MIT, in the sickn33/agentic-awesome-skills repo.
You get a SKILL.md plus a longer references/detailed-guide.md. The guide asks to be read before work starts, since it carries the full procedure and the validation requirements. There is also a Python snippet on the Anthropic SDK with beta_tool decorators and tool_runner. The author calls it a mock, and the weather in it is synthetic. Pin the SDK version and a model your account can reach before any billed call.
The frontmatter marks the skill critical on risk. Read the guide end to end instead of skimming for sections. It also states plainly that the runner does not authorize external effects, so approval limits and execution bounds stay with you.
What it helps with
- Write a description that makes the agent pick the right tool
- Validate arguments before a function call fires
- Turn a raw exception into something the model can act on
- Sketch an MCP tool without guessing at the standard
- Trim oversized schemas that burn context
Example prompts for the agent
- Write the tool schema for a log-reading function and check its arguments
- The agent keeps calling the wrong tool — review the descriptions in `tools.py`
- Build an MCP tool for searching the repo
How to install agent-tool-builder
1Skills CLI (Vercel)
npx skills add sickn33/agentic-awesome-skills --skill agent-tool-builder -a claude-code2Manually: put the files in place
~/.claude/skills/agent-tool-builder/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/agent-tool-builder/
1Skills CLI (Vercel)
npx skills add sickn33/agentic-awesome-skills --skill agent-tool-builder -a codex2Manually: put the files in place
.agents/skills/agent-tool-builder/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add sickn33/agentic-awesome-skills --skill agent-tool-builder -a cursor2Manually: put the files in place
.cursor/skills/agent-tool-builder/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install sickn33/agentic-awesome-skills agent-tool-builder2Manually: put the files in place
.github/skills/agent-tool-builder/SKILL.md1Skills CLI (Vercel)
npx skills add sickn33/agentic-awesome-skills --skill agent-tool-builder -a gemini-cli2Platform CLI
gemini skills install https://github.com/sickn33/agentic-awesome-skills --path skills/agent-tool-builderManually: put the files in place
.devin/skills/agent-tool-builder/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add sickn33/agentic-awesome-skills --skill agent-tool-builder -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
From the same set80
The whole set →Similar
Questions about agent-tool-builder
How do I install agent-tool-builder in Claude Code?
Run npx skills add sickn33/agentic-awesome-skills --skill agent-tool-builder -a claude-code. The skill lands at ~/.claude/skills/agent-tool-builder/SKILL.md.
What does agent-tool-builder do?
It walks through tool design for agents: schema shape, description writing, validation and error handling, then maps that onto MCP.
Does the Python example make a real API call?
Not as written. The author calls the snippet a mock and the weather data is synthetic. Pin the SDK beta API and a model your account can access before anything billed.
Source text
SKILL.md · MIT
---
name: agent-tool-builder
description: Tools are how AI agents interact with the world. A well-designed
tool is the difference between an agent that works and one that hallucinates,
fails silently, or wastes tokens. This skill covers
tool design from schema to error handling.
risk: critical
source: vibeship-spawner-skills (Apache 2.0)
date_added: 2026-02-27
---
# Agent Tool Builder
Tools are how AI agents interact with the world. A well-designed tool is the
difference between an agent that works and one that hallucinates, fails
silently, or wastes tokens.
This skill covers tool design from schema to error handling. JSON Schema
best practices, description writing that actually helps the LLM, validation,
and the emerging MCP standard that's becoming the lingua franca for AI tools.
Descriptions guide selection, but implementations enforce correctness, authorization
and safety. Both require testing; the model may also inspect exposed code/results.
## Detailed Guide
Read [the detailed guide](references/detailed-guide.md) before executing this skill. It retains the complete procedure and reference material. Treat its safety, prerequisites, and validation requirements as mandatory. For focused work, load the relevant sections; for end-to-end work, read the guide completely.
## Historical Python SDK sketch
Mock only: fixed weather is synthetic, not a current forecast. Pin/verify SDK beta
API and an account-accessible model before any billed call. Tools need bounded
execution/approval policies; the runner does not authorize external effects.
```python
import json
import anthropic
from anthropic import beta_tool
client = anthropic.Anthropic()
@beta_tool
def get_weather(location: str, unit: str = "fahrenheit") -> str:
'''Get the current weather in a given location.
Args:
location: The city and state, e.g. San Francisco, CA
unit: Temperature unit, either 'celsius' or 'fahrenheit'
'''
# Implementation
return json.dumps({"temperature": "72°F", "conditions": "Sunny"})
@beta_tool
def search_web(query: str) -> str:
'''Search the web for information.
Args:
query: The search query
'''
# Implementation
return json.dumps({"results": [], "mock": True})
# Tool runner handles the loop
runner = client.beta.messages.tool_runner(
model="claude-sonnet-4-5",
max_tokens=1024,
tools=[get_weather, search_web],
messages=[
{"role": "user", "content": "What's the weather in Paris?"}
]
)
# Process each message
for message in runner:
for block in message.content:
if getattr(block, "type", None) == "text":
print(block.text)
# Or just get final result
final = runner.until_done()
```
## When to Use
- User mentions or implies: agent tool
- User mentions or implies: function calling
- User mentions or implies: tool schema
- User mentions or implies: tool design
- User mentions or implies: mcp server
- User mentions or implies: mcp tool
- User mentions or implies: tool use
- User mentions or implies: build tool for agent
- User mentions or implies: define function
- User mentions or implies: input_schema
- User mentions or implies: tool_use
- User mentions or implies: tool_result
## Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
© sickn33 · MIT · sickn33/agentic-awesome-skills