Single tool with basic structure but significant gaps. Tool name 'search_beatport_artists' follows verb_noun convention (+). Description exists but is minimal (47 chars, below 50-200 char baseline for LLM optimization). Input schema present with type and description for artist_name parameter (+). However, output schema is completely undocumented, the tool returns response.json() or an error dict, but no schema is declared for what fields the LLM should expect. Error handling returns a dict with 'error', 'status_code', 'message' fields, but this structure is not formally documented. No pagination support despite potentially returning multiple artists. No parameter constraints (e.g., min/max length for artist_name). Tool lacks idempotency hints, destructive/readonly annotations, and recovery guidance in error messages.
Search for artists on Beatport by name
Output schema completely undocumented. Tool returns response.json() on success or error dict on failure, but no schema is declared. LLMs cannot plan downstream operations or extract required fields without knowing the response structure.
Tool description is 47 characters, below the 50-200 char baseline for LLM optimization. Lacks context on when to use this tool vs alternatives, what the response contains, and any prerequisites (e.g., does Beatport API require auth?).
No pagination support. Tool may return hundreds of artists but accepts no limit or offset parameters. Large result sets will blow context windows. Beatport API likely supports pagination, expose it.
Error messages lack recovery guidance. When API returns non-200 status, tool returns raw status_code and response.text. LLM cannot determine if error is retryable, user-fixable, or fatal.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | <=2025-11-25 | v2 |
Input parameter 'artist_name' has no constraints (min/max length, regex pattern). LLM may pass empty strings, extremely long strings, or special characters that break the API.