Building Tools for AI Agents
Workflow
-
Define Purpose
- Identify what agents need to accomplish with this tool
- Determine if existing tools can be consolidated
- Plan the tool's interface for agent consumption
-
Design Interface
- Choose descriptive, namespaced tool names
- Define parameters with clear types and descriptions
- Design output format for maximum signal, minimum tokens
-
Implement
- Build with token efficiency in mind
- Add pagination, filtering, sensible defaults
- Return semantic identifiers, not raw IDs
-
Validate
- Test with real agent workflows
- Check token consumption patterns
- Verify error messages guide agents toward solutions
Design Principles
Tool Consolidation
- More tools don't lead to better outcomes
- Combine related operations into single tools
- Example:
schedule_eventthat checks availability AND creates event - Avoid simple CRUD-style tools that require multiple calls
Namespacing
- Prefix related tools with service name:
asana_projects_search,asana_users_search - Group by domain to help agents distinguish functionality
- Use consistent naming patterns across tool families
Meaningful Context
- Return high-signal information, not raw data dumps
- Resolve cryptic UUIDs to human-readable identifiers
- Include
response_formatparameter (concise/detailed) for flexibility - Surface relevant metadata agents need for next steps
Token Efficiency
- Implement pagination with sensible defaults
- Add filtering parameters to reduce unnecessary data
- Truncate large responses intelligently
- Prefer structured output over verbose prose
Tool Descriptions
- Invest heavily in clear, explicit descriptions
- Describe what the tool does, when to use it, and what it returns
- Include parameter constraints and valid values
- Small description improvements yield large performance gains
Anti-Patterns
- Creating many granular tools instead of consolidated operations
- Returning raw IDs that agents can't interpret
- Omitting pagination on potentially large result sets
- Vague tool descriptions that leave agents guessing
- Error messages that don't help agents recover
- Requiring agents to make multiple calls for common workflows
MCP-Specific Patterns
Tool Registration
- Use descriptive
nameanddescriptionin tool schema - Define
inputSchemawith JSON Schema for parameters - Mark required vs optional parameters explicitly
Response Format
- Return structured JSON for predictable parsing
- Include success/error indicators
- Provide actionable error messages