Tool Definitions
The tool definition is how Claude knows what your tool does, what inputs it needs, and when to use it. A great definition means Claude calls your tool correctly without any prompt engineering. A bad one means it guesses wrong or ignores your tool entirely.
What Claude Sees
When Claude connects to your MCP server, it calls tools/list and receives a JSON array of tool definitions. Each definition has three parts Claude uses to decide when and how to call your tool:
snake_case.
Good vs Bad Descriptions
The description field is what Claude reads to decide whether to use your tool. It is more important than the tool name. Here are real examples showing the difference:
Too vague. Claude does not know what "stuff" means, when to use it instead of other search tools, or what kind of results to expect.
Tells Claude exactly what it searches, what it returns, and when to use it.
No .describe(). Claude has to guess what format the query should be in.
Claude knows the format, case behavior, and matching strategy.
Zod Schema Patterns
Zod is the schema library MCP uses. Here are the patterns you will use most often when defining tool inputs:
This lesson is for Pro members
Unlock all 520+ lessons across 52 courses with Academy Pro.
Already a member? Sign in to access your lessons.