Skip to main content
This is a quick reference checklist. For comprehensive guidance with code examples, see Best Practices for Creating Tools.

Design Checklist

AspectGuidelineDetails
Namedomain_verb_noun patternproducts_search, cart_add_item, user_get_profile
DescriptionDetailed, includes when to useWhat it does, return format, prerequisites, if it changes tool list
ParametersMinimal required, clear namesUse .describe() on every parameter, use enums for fixed choices
ResponseMarkdown formatEasier for AI to parse and present than JSON
ErrorsStructured with error codes**Error (CODE):** message format with isError: true
AnnotationsMark behavior hintsdestructiveHint, idempotentHint, readOnlyHint
ScopeUser workflows, not internal architectureBalance granularity - not too fine, not too coarse

Naming Examples

✅ Good❌ Avoid
products_searchdoStuff
cart_add_itemaction1
user_get_profilehelper
orders_list_recentprocessData

Tool Scope Guide

LevelExampleAssessment
Too granularuser_set_first_name, user_set_last_nameToo many tools
Just rightuser_update_profileReasonable grouping
Too coarsemanage_everythingDoes too much

Annotations Reference

AnnotationUse When
destructiveHint: trueIrreversible actions (delete, purchase)
idempotentHint: trueSafe to call multiple times with same result
readOnlyHint: trueOnly reads data, no modifications