1. Write Descriptions That Actually Work
Your tool description is the single most important thing you configure. The AI reads it to decide:- Whether to call this tool at all
- Which tool to call when multiple options exist
- What arguments to supply
- Start with a verb:
Retrieve,Create,Search,Send,Update,Delete - State what the tool returns (not just what it does)
- Include when to use it vs when to use a similar tool
- Keep it under 200 words — models truncate very long descriptions
- Avoid vague words like “handles”, “manages”, “processes”
2. Name Tools in snake_case with a Verb
Tool names follow averb_noun or verb_noun_noun pattern. The AI’s reasoning will often include the tool name, so make it readable:
Use the same verb convention consistently across your server: if you use
get_ for retrieval, don’t also use fetch_ or retrieve_ — pick one.
3. Design Schemas for the AI, Not the API
Your input schema describes what the AI should provide — not necessarily what the underlying API needs. Map the gap in parameter mappings, not in the schema. Don’t expose internal IDs as required inputs when names work better:optional — the AI will omit them when not needed.
Add description to every parameter. The AI uses these to understand what values to pass:
4. One Tool = One Action
Keep tools focused. A tool that does six different things depending on which parameters you pass produces inconsistent AI behavior.
Focused tools have clearer descriptions and are called more accurately.
5. Use Caching for Read-Only Data
Enable Cache TTL on tools that return data that doesn’t change frequently. This is one of the easiest performance wins:
Cached responses are served from WordPress object cache and don’t count against your upstream API rate limits.
6. Set Appropriate Timeouts and Retries
Timeout — default is 30 seconds. Adjust based on your API:- Fast internal APIs: 5–10 seconds
- Slow report generation, file exports: 60–120 seconds
- Third-party APIs (Stripe, GitHub, etc.): 15–30 seconds
7. Organize Servers by Domain and Access Level
One server per logical group — not one server for everything:- Limit blast radius if a URL is shared accidentally
- Different inbound auth credentials per team
- Cleaner
tools/list— the AI only sees the tools relevant to the current task - Independent rate limits per domain
8. Keep Parameter Mappings Clean
Use the right mapping type for each parameter — don’t send everything in the body:
Avoid query parameters on POST requests when the API uses a request body — some APIs ignore query params on POST.
9. Test Before You Ship
Use the built-in Test panel on every tool before sharing the server URL with anyone. What to verify:- Tool returns the expected data shape
- Required parameters produce an error when missing
- Error responses from the API are handled gracefully
- Response size is reasonable (very large responses slow AI clients)
10. Security Checklist
- Enable inbound authentication for production servers (not
none) - Use HTTPS on your WordPress site — required for credentials in transit
- Store API keys only in Custom Headers — never embed them in endpoint URLs where they appear in logs
- Set a rate limit appropriate for your upstream API’s own limits
- Configure webhooks to alert on
tool.errorevents so you catch auth failures fast - Rotate test credentials independently from production keys
- Review call logs periodically for unexpected clients or unusual patterns

