Search Facebook interests for Meta ad targeting. Returns interest names and audience sizes.
Single tool with basic schema and description. Tool name follows verb_noun pattern (search_facebook_interests) and is clear. Description is 108 chars, within acceptable range but lacks WHEN/WHY guidance. Input schema present with type and description for 'query' parameter. Critical gaps: no output schema documented, no error handling guidance, no pagination despite potentially large result sets, no parameter constraints (min/max length), and responses return raw JSON without structured typing. Tool is read-only but lacks explicit idempotentHint annotation. No tool composition patterns evident (single tool only).
Search Facebook interests for Meta ad targeting. Returns interest names and audience sizes.
No output schema documented. LLMs cannot predict response structure (fields, types, nesting). Responses are returned as raw JSON text, not structured objects with typed fields.
Input parameter 'query' lacks constraints. No min/max length, no regex pattern, no guidance on valid formats. LLMs may pass empty strings, extremely long inputs, or special characters without validation.
No pagination support. Tool returns up to 20 results hardcoded, but no limit parameter, offset/cursor, or total_count in response. Large result sets will be truncated silently.
Error handling returns raw error messages without recovery guidance. 'Error: query is required' and 'Error: <e.message>' do not tell LLM what to do next or whether to retry.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
Tool description lacks WHEN/WHY context. Does not explain when to use this vs alternatives, what prerequisites exist (e.g., valid Meta token), or what 'audience size' represents. Description is functional but not LLM-optimized.