All 4 tools lack input schemas entirely (empty {} for all), violating the critical requirement that every tool must have a documented input schema. Descriptions are present but minimal (10-15 chars), below the 20-char floor for meaningful guidance. No parameter descriptions exist. Tools return unstructured strings instead of typed objects. No error recovery guidance. No output schema documentation. This server fails multiple hard scoring rules.
Get information about the currently playing track.
Add the currently playing track to your Liked Songs.
Start playback on the user's active device.
Stop playback on the user's active device.
All tools have empty input schemas ({}).
Tool descriptions are 10-15 characters (e.g., 'Start playback on the user's active device.'). These are too terse to guide LLM selection.
No output schema documented. Tools return free-text strings ('Playback started successfully', 'Currently playing: ...') instead of structured JSON objects. LLMs cannot parse or chain results.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 35 | 2026-07-28+ | v2 |
Error messages are unstructured strings ('error: No active devices found'). No recovery guidance. LLM cannot determine if error is retryable, user-fixable, or fatal.
Spotify credentials (SPOTIPY_CLIENT_ID, SPOTIPY_CLIENT_SECRET, SPOTIPY_REDIRECT_URI) are loaded from environment but no validation or audit logging. No permission gates on destructive operations (pause, like).