Skip to main content
Glama
kylestratis

Spotify Playlist MCP Server

by kylestratis

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v1.0.0

  • Disambiguation5/5

    Each tool has a clearly distinct purpose with no ambiguity. The tools cover specific operations like playlist management (create, add tracks, get tracks), track discovery (search, recommendations, similarity), and metadata retrieval (track info, audio features). The descriptions clearly differentiate their functions, making misselection unlikely.

    Naming Consistency5/5

    All tool names follow a consistent 'spotify_verb_noun' pattern (e.g., spotify_create_playlist, spotify_get_track). The naming is uniform throughout, using snake_case with clear verbs like 'get', 'create', 'add', 'find', and 'search', making the tool set predictable and easy to navigate.

    Tool Count5/5

    With 9 tools, the server is well-scoped for managing Spotify playlists and tracks. Each tool serves a distinct and necessary function, covering core operations from playlist creation and modification to track discovery and analysis. The count is appropriate for the domain without being overwhelming or insufficient.

    Completeness4/5

    The tool set provides comprehensive coverage for playlist and track management, including CRUD-like operations (create playlist, add tracks, get playlists/tracks) and advanced features (similarity, recommendations, audio analysis). A minor gap exists in playlist modification (e.g., no tool to remove tracks or update playlist details), but agents can work around this with the available tools.

  • Average 4.4/5 across 9 of 9 tools scored.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 0 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations already provide readOnlyHint=true, destructiveHint=false, openWorldHint=true, and idempotentHint=true. The description adds valuable context beyond this: it specifies batch processing limits (up to 100 tracks), error handling (e.g., 'No audio features available', auth failure, rate limits), and a deprecation note for new apps. This enhances behavioral understanding without contradicting annotations.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is well-structured with sections for purpose, args, returns, examples, and errors, making it front-loaded and easy to scan. It is appropriately sized, but some parts like the detailed return formats could be slightly condensed. Overall, most sentences earn their place, though minor verbosity exists.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the complexity (batch processing, multiple output formats, deprecation notes) and the presence of an output schema (which covers return values), the description is complete enough. It includes purpose, usage examples, parameter details, error handling, and behavioral context, providing all necessary information for an agent to use the tool effectively without redundancy.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 0%, but the description compensates by detailing track_ids (list of 1-100 Spotify track IDs) and response_format (options and default). However, it does not fully explain the semantics of each parameter beyond what's implied, such as the format of track IDs or deeper meaning of response_format choices. Given the low schema coverage, the description adds some value but could be more comprehensive.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the verb 'Get' and resource 'detailed audio analysis features for one or more Spotify tracks', specifying it retrieves sonic characteristics. It distinguishes from siblings like spotify_get_track (which gets track metadata) or spotify_find_similar_tracks (which finds recommendations), making the purpose specific and differentiated.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides clear context for when to use it (e.g., 'Analyze the audio features of this track' or 'What's the tempo and energy of these songs?'), but does not explicitly state when not to use it or name alternatives among siblings. It implies usage for batch processing of up to 100 tracks, which is helpful but lacks explicit exclusions.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations already provide readOnlyHint=true, destructiveHint=false, openWorldHint=true, and idempotentHint=true. The description adds valuable behavioral context beyond annotations: pagination behavior, error conditions (404, 401, 429), and specific return formats. No contradiction with annotations.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Well-structured with purpose first, then parameters, returns, examples, and errors. Every section adds value, though the parameter documentation could be slightly more concise. Front-loaded with the core purpose.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool's moderate complexity, rich annotations, and detailed description covering purpose, parameters, returns, examples, and errors, this is complete. The output schema exists, so the description appropriately focuses on format choices rather than duplicating return structure.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 0%, but the description provides clear parameter documentation in the Args section with examples and defaults. However, it doesn't fully compensate for the schema gap by explaining parameter relationships or edge cases beyond what's already stated.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the verb 'Get' and resource 'tracks from a specific Spotify playlist' with specific scope 'detailed information (artists, album, duration, IDs)' and distinguishes from siblings like spotify_get_track (single track) and spotify_get_user_playlists (list of playlists).

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides clear context for when to use this tool ('Show me what's in my workout playlist', 'Get track IDs from this playlist') and mentions getting playlist_id from spotify_get_user_playlists, but doesn't explicitly state when NOT to use it or compare to all alternatives like spotify_search_tracks.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations already indicate read-only, open-world, idempotent, and non-destructive behavior, but the description adds valuable context beyond this: it specifies error conditions (e.g., no seeds, >5 seeds, auth failure, rate limits), output formats, and example use cases, enhancing the agent's understanding without contradicting annotations.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is well-structured with sections for purpose, args, returns, examples, and errors, making it easy to scan. It is appropriately sized, but could be slightly more concise by avoiding repetition of parameter lists that are partially covered in the schema.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool's complexity, rich input schema, annotations, and output schema, the description is complete: it covers purpose, usage, parameters, return formats, examples, and errors, providing all necessary context for an agent to invoke the tool correctly without needing to rely solely on structured fields.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema has 0% description coverage, but the description compensates by explaining key parameters like seed types, limit, audio features, and response_format with examples. However, it does not cover all parameters (e.g., min/max/target for each audio feature are listed but not fully detailed), leaving some gaps in semantics.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool's purpose with specific verbs ('Get track recommendations') and resources ('from Spotify'), and distinguishes it from siblings by focusing on personalized recommendations based on seeds and audio features, unlike search or playlist tools.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides clear context for when to use this tool (e.g., 'Find energetic workout music' or 'Songs like this track'), but does not explicitly state when not to use it or name alternatives among sibling tools, such as spotify_find_similar_tracks or spotify_search_tracks.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations already provide readOnlyHint=true, destructiveHint=false, openWorldHint=true, and idempotentHint=true. The description adds valuable context beyond this: it specifies the tool retrieves comprehensive metadata, details the return formats (markdown vs. JSON), and lists potential errors (404, 401, 429). This enhances transparency about behavior and error handling, though it could mention rate limit specifics or auth requirements more explicitly.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is well-structured with clear sections (purpose, args, returns, examples, errors) and front-loaded key information. It is appropriately sized, but some sentences could be more concise (e.g., the examples are slightly verbose). Overall, it earns its place with efficient communication.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool's moderate complexity, rich annotations, and the presence of an output schema (implied by returns section), the description is complete. It covers purpose, parameters, return formats, examples, and errors, providing all necessary context for an agent to use the tool effectively without needing to rely solely on structured fields.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 0%, so the description carries full burden. It adds significant meaning: track_id is clarified as 'Spotify track ID (not URI), extract from URIs or search results', and response_format is explained with detailed output differences for 'markdown' vs. 'json'. This compensates well for the schema gap, though it doesn't cover all possible parameter nuances like length constraints.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the verb ('Get detailed information') and resource ('about a specific Spotify track by ID'), distinguishing it from siblings like spotify_search_tracks (searching) or spotify_get_audio_features (audio analysis). It specifies it retrieves comprehensive metadata for a single track, making the purpose specific and differentiated.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides clear context for when to use this tool (e.g., 'When you have the track ID' in examples), but it does not explicitly mention when not to use it or name alternatives like spotify_search_tracks for finding tracks without an ID. The guidance is helpful but lacks explicit exclusions or named alternatives.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    The description adds valuable behavioral context beyond annotations: it explains pagination behavior, describes different return formats (markdown vs JSON), lists specific error conditions (auth failure, missing scopes, rate limits), and clarifies what happens when no playlists exist. While annotations cover safety (readOnlyHint=true, destructiveHint=false), the description provides practical implementation details.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is well-structured with clear sections (purpose, args, returns, examples, errors) and front-loads the core functionality. Most sentences earn their place, though the examples section could be slightly more concise. Overall, it's appropriately sized for the tool's complexity.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool's moderate complexity, rich annotations, and comprehensive parameter documentation in the description, this is complete. The description covers purpose, usage, parameters, return formats, examples, and error conditions. With output schema available, it doesn't need to exhaustively document return values.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters5/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Despite 0% schema description coverage, the description fully compensates by documenting all three parameters with clear semantics: 'limit' with range and default, 'offset' with purpose and default, and 'response_format' with options and implications for output. It explains what each parameter controls and how they affect results.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the specific action ('Get a list'), resource ('current user's Spotify playlists'), and scope ('owned by or followed by'). It distinguishes this from siblings like spotify_get_playlist_tracks (which gets tracks within a playlist) and spotify_search_tracks (which searches for tracks).

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides clear context for when to use this tool ('to browse playlists or find playlist IDs') and includes examples that illustrate use cases. However, it doesn't explicitly state when NOT to use it or name specific alternatives among siblings, though the examples imply differentiation from search-based tools.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    The description adds valuable behavioral context beyond what annotations provide. While annotations cover read-only, open-world, and idempotent properties, the description adds specific details about result ranking ('ranked by relevance'), error conditions (auth failure, rate limits, 'No tracks found'), character truncation, and response format differences. This enhances the agent's understanding of how the tool behaves in practice.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is well-structured with clear sections (purpose, args, returns, examples, errors) and front-loaded key information. While comprehensive, it could be slightly more concise by integrating some details more tightly, but every sentence adds meaningful value without redundancy.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool's complexity (search functionality with multiple parameters and output formats), the description provides complete context. It covers purpose, parameters with semantics, return formats with examples, error handling, and behavioral details. With annotations covering safety properties and an output schema presumably detailing the return structure, the description fills all necessary gaps effectively.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters5/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The description provides extensive parameter semantics despite 0% schema description coverage. It explains each parameter's purpose, constraints, and defaults (query with examples and length limits, limit with range, offset for pagination, response_format with options). It also clarifies the relationship between parameters and output formats, adding significant value beyond the bare schema.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool's purpose with specific verbs ('Search for tracks') and resources ('Spotify's entire catalog'), distinguishing it from siblings like spotify_get_track (single track) or spotify_get_playlist_tracks (playlist-specific). It explicitly mentions searching by name, artist, album, or keywords.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides clear context about when to use this tool (searching Spotify's catalog with various query types) and includes examples that illustrate different use cases. However, it doesn't explicitly state when NOT to use it or mention specific alternatives among the sibling tools, such as spotify_find_similar_tracks for related tracks instead of keyword searches.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    The description adds valuable behavioral context beyond annotations: it specifies ownership/collaborative requirements, insertion vs. append behavior, and error conditions (404, 403, 401, 429). While annotations cover basic safety (readOnlyHint=false, destructiveHint=false), the description provides practical implementation details that help the agent understand real-world constraints. No contradiction with annotations exists.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is well-structured and efficiently organized: purpose statement first, then key constraints, followed by parameter details, return format, examples, and error conditions. Every section adds value with zero redundant information. The examples are practical and illustrate common use cases without unnecessary elaboration.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a mutation tool with annotations but 0% schema coverage and an output schema, this description is exceptionally complete. It covers purpose, constraints, all parameters, return values, examples, and error handling. The output schema exists, so the description appropriately focuses on explaining the JSON structure rather than just stating return types. All critical information for correct tool invocation is present.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters5/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    With 0% schema description coverage (schema has no parameter descriptions), the description carries the full burden and excels: it clearly explains playlist_id format ('Spotify playlist ID (not URI)'), track_uris format and constraints ('List of track URIs, 1-100 (format: "spotify:track:ID", not just IDs)'), and position behavior ('Optional 0-indexed position to insert (default: append to end)'). Each parameter's purpose and format is thoroughly documented.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the specific action ('Add tracks to an existing Spotify playlist'), identifies the resource ('Spotify playlist'), and distinguishes from siblings like spotify_create_playlist (which creates new playlists) and spotify_get_playlist_tracks (which reads rather than modifies). The verb+resource combination is precise and unambiguous.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides clear context about when to use this tool ('Playlist must be owned by user or be collaborative') and mentions track quantity limits (1-100). However, it doesn't explicitly contrast with alternatives like spotify_create_playlist for when you need a new playlist instead of adding to an existing one, or when to use this versus other modification tools if they existed.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations provide readOnlyHint=false and destructiveHint=false, but the description adds valuable behavioral context beyond this: it mentions auth failure (401), missing scopes (403), and rate limits (429) as potential errors, and clarifies the collaborative/public constraint. It doesn't contradict annotations, but could elaborate more on idempotency or open-world aspects.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is well-structured and front-loaded with the core purpose, followed by usage guidance, parameter details, return format, examples, and errors. Every section adds value without redundancy, making it efficient and easy to parse.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool's complexity (mutation with auth and constraints), the description is complete: it covers purpose, usage, parameters, returns, examples, and errors. With an output schema present, it doesn't need to explain return values in depth, and annotations provide safety context, making this thorough.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    With 0% schema description coverage, the description fully compensates by detailing all parameters (name, description, public, collaborative) with constraints like character limits, defaults, and the collaborative/public rule. It adds meaning beyond the bare schema, though it doesn't explain the nested 'params' structure.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the specific action ('Create a new empty Spotify playlist') and resource ('for the authenticated user'), distinguishing it from siblings like spotify_add_tracks_to_playlist and spotify_get_user_playlists. It precisely defines what the tool does without being vague or tautological.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines5/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description explicitly provides when-to-use guidance by stating 'Use spotify_add_tracks_to_playlist to add tracks after creation,' naming a specific alternative tool. It also clarifies that the playlist is created empty, setting clear expectations for usage.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations indicate readOnlyHint=false, openWorldHint=true, idempotentHint=false, destructiveHint=false. The description adds valuable behavioral context: it explains the tool's role as 'Centerpiece of the similarity engine,' details strategies and actions, lists error conditions (auth, permissions, rate limits), and describes return formats. This goes beyond annotations, though it doesn't fully explain idempotency or open-world implications.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is well-structured with clear sections (purpose, args, returns, examples, errors) and uses bullet points for readability. It's appropriately detailed for a complex tool, though some sentences could be more concise (e.g., the first paragraph has minor redundancy). Overall, it earns its length with valuable information.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool's complexity (multiple strategies, scopes, actions) and 0% schema description coverage, the description is highly complete: it explains purpose, parameters, return formats, examples, and error conditions. The output schema exists, so the description appropriately focuses on usage rather than repeating return structures. It provides all necessary context for effective tool invocation.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters5/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    With 0% schema description coverage, the description fully compensates by detailing all parameters: it lists source types, 8 strategies with explanations, 5 scopes with requirements, 3 actions with dependencies, and additional parameters like limit, min_similarity, weights, and response_format. It provides semantic meaning (e.g., 'energy_match (workout)') that the schema lacks.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool's purpose: 'Find tracks similar to a track, artist, or playlist using audio analysis or genre matching.' It specifies the verb ('find'), resources ('tracks'), and distinguishes from siblings by focusing on similarity matching rather than basic retrieval or playlist management.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines5/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides explicit usage guidance: 'For curated playlists, music discovery, and mood-based mixes.' It includes examples that show when to use specific configurations (e.g., 'Create workout playlist like this' for energy_match strategy) and mentions errors for misuse (e.g., 'genre_match with catalog'), helping the agent choose appropriate parameters.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

spotify-mcp MCP server

Copy to your README.md:

Score Badge

spotify-mcp MCP server

Copy to your README.md:

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kylestratis/spotify-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server