Design tools that pass review
- Separate read and write tools. I flag catch-all tools that mix safe and unsafe HTTP methods. Reads and writes belong in separate tools, with writes split by action where practical.
- API documentation in custom query tools. A freeform query tool's description must name its target API or link to that API's documentation.
- Tool annotations. Every tool needs a
title, read-only tools needreadOnlyHint: true, and tools that modify or delete data needdestructiveHint: true. - Tool names and descriptions. Names stay within 64 characters, and each description matches what the tool does.
- Prompt-injection patterns. I check descriptions for hidden instructions, instructions aimed at the model, requests to pull behavior from external sources, and unrelated instructions or promotion.