Skip to main content
Glama
igorgarbuz

Spotify MCP Node Server

by igorgarbuz

Server Quality Checklist

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

  • Disambiguation4/5

    Most tools have distinct purposes, but 'addToQueue' and 'playMusic' could cause confusion as both involve initiating playback. 'addToQueue' adds to the queue while 'playMusic' starts playback immediately, but an agent might misinterpret their overlap in handling tracks/albums/artists/playlists. Other tools are clearly differentiated by resource and action.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun or verbNoun pattern, such as 'addToQueue', 'createPlaylist', 'getNowPlaying', and 'searchSpotify'. The naming is uniform across all 13 tools, with no mixing of conventions like camelCase and snake_case, making it predictable and readable.

    Tool Count5/5

    With 13 tools, this server is well-scoped for Spotify integration, covering core functionalities like playback control, playlist management, user data retrieval, and search. Each tool serves a clear purpose without redundancy, fitting within the typical 3-15 tool range for such a domain.

    Completeness4/5

    The tool set provides comprehensive coverage for Spotify operations, including CRUD for playlists (create, add/remove tracks, get tracks), playback control (play, queue, actions), and user data (playlists, top items, followed artists, recently played). Minor gaps include no update/delete for playlists or explicit volume control, but agents can work around these with available tools.

  • Average 3/5 across 13 of 13 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

  • Behavior2/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the action ('adds') but fails to describe critical behaviors such as whether this requires authentication, how it handles errors (e.g., if no device is active), or if it affects current playback. This leaves significant gaps in understanding the tool's operational context.

    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 a single, efficient sentence that directly states the tool's function without unnecessary words. It is front-loaded and wastes no space, making it easy for an agent to parse quickly.

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

    Completeness2/5

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

    Given the complexity of a playback-related tool with no annotations and no output schema, the description is insufficient. It lacks details on authentication requirements, error handling, interaction with other playback tools, and expected outcomes, leaving the agent with incomplete context for reliable use.

    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 100%, so the input schema fully documents all parameters. The description adds no additional semantic information beyond implying that 'uri', 'type', and 'id' are used to specify the item, and 'deviceId' targets a device. This meets the baseline for high schema coverage without extra value.

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

    Purpose4/5

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

    The description clearly states the verb ('adds') and resource ('track, album, artist or playlist') with the destination ('to the playback queue'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'playMusic' or 'playbackAction', which might have overlapping functionality, so it doesn't reach the highest score.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives like 'playMusic' or 'playbackAction', nor does it mention prerequisites such as needing an active playback session. It simply states what the tool does without context, leaving the agent to infer usage scenarios.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden for behavioral disclosure. It states the action ('Add tracks') but doesn't mention critical behaviors like whether this requires authentication, has rate limits, affects playlist ordering permanently, or returns any confirmation. For a mutation tool with zero annotation coverage, this is a significant gap in transparency.

    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 a single, efficient sentence with zero wasted words. It's appropriately sized for the tool's complexity and front-loads the core purpose immediately, making it easy for an agent to parse quickly.

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

    Completeness2/5

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

    Given this is a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't address authentication requirements, error conditions, response format, or how it differs from similar tools. For a tool that modifies user data, more contextual information is needed for safe and effective use.

    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 100%, so the schema already documents all three parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema (e.g., format examples, constraints, or usage tips), meeting the baseline score when schema does the heavy lifting.

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

    Purpose4/5

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

    The description clearly states the action ('Add tracks') and target resource ('to a Spotify playlist'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'addToQueue' or 'removeTracksFromPlaylist', which would require explicit comparison to earn a 5.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives like 'addToQueue' or 'createPlaylist'. It lacks any context about prerequisites (e.g., needing playlist ownership or premium subscription) or exclusions, leaving the agent to infer usage scenarios independently.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool creates a playlist but doesn't mention what permissions are needed, whether this requires user authentication, what happens on success/failure, or any rate limits. For a write operation with zero annotation coverage, this leaves significant gaps.

    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 a single, efficient sentence that gets straight to the point with zero wasted words. It's appropriately sized for a simple creation tool and front-loads the essential information.

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

    Completeness2/5

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

    For a write operation with no annotations and no output schema, the description is insufficient. It doesn't explain what happens after creation (e.g., returns playlist ID), what authentication is required, or potential error conditions. Given the complexity of creating a resource in an external service, more context is needed.

    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 100%, so the schema already documents all three parameters thoroughly. The description adds no additional parameter information beyond what's in the schema. Baseline 3 is appropriate when the schema does the heavy lifting for parameter documentation.

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

    Purpose4/5

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

    The description clearly states the action ('Create') and resource ('new playlist on Spotify'), making the purpose immediately understandable. However, it doesn't differentiate this tool from potential sibling tools like 'addTracksToPlaylist' or 'getUserPlaylists' beyond the creation aspect.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. There's no mention of prerequisites (like authentication), when not to use it, or how it differs from related tools like 'addTracksToPlaylist' for modifying existing playlists.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden but offers minimal behavioral insight. It doesn't disclose whether this is a read-only operation, if it requires specific permissions, rate limits, pagination behavior beyond the 'limit' and 'offset' parameters, or what the response format looks like.

    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 a single, clear sentence with no wasted words. It's front-loaded with the core purpose and efficiently communicates the essential action without unnecessary elaboration.

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

    Completeness2/5

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

    For a tool with 3 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain return values, error conditions, authentication requirements, or behavioral constraints. The schema handles parameters well, but the description fails to provide necessary context for effective use.

    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 100%, so the schema fully documents all three parameters. The description adds no additional parameter semantics beyond what's in the schema, such as explaining playlist ID format or typical use cases for limit/offset. This meets the baseline for high schema coverage.

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

    Purpose4/5

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

    The description clearly states the action ('Get a list') and resource ('tracks in a Spotify playlist'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'getUserPlaylists' or 'getRecentlyPlayed' beyond the obvious resource difference, missing explicit sibling distinction.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., authentication), compare to similar tools like 'getUserPlaylists' for finding playlists first, or specify use cases beyond the basic action.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'Get a list' implies a read-only operation, it doesn't specify authentication requirements, rate limits, pagination behavior, or what the response format looks like. For a tool with zero annotation coverage, this leaves significant gaps in understanding how it behaves.

    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 a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy to understand at a glance.

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

    Completeness2/5

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

    Given the lack of annotations and output schema, the description is incomplete. It doesn't cover behavioral aspects like authentication, rate limits, or response format, which are crucial for a tool that interacts with an external API like Spotify. For a tool with no structured metadata, the description should provide more context to be fully helpful.

    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 schema description coverage is 100%, with the 'limit' parameter fully documented in the schema. The description doesn't add any parameter-specific information beyond what the schema provides, such as default values or usage context. With high schema coverage, the baseline score of 3 is appropriate as the description doesn't compensate but doesn't need to.

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

    Purpose4/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 ('list of recently played tracks on Spotify'), making the purpose immediately understandable. However, it doesn't differentiate this tool from sibling tools like 'getNowPlaying' or 'getUserTopItems', which also retrieve track-related data, so it doesn't achieve full sibling differentiation.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when this tool is appropriate (e.g., for recent listening history) or when to prefer other tools like 'getNowPlaying' for current playback or 'getUserTopItems' for top tracks over time.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden for behavioral disclosure. While 'Get a list' implies a read-only operation, it doesn't specify authentication requirements, rate limits, pagination behavior, or what data is returned. For a tool that accesses user data, this represents significant gaps in behavioral transparency.

    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 a single, clear sentence that efficiently communicates the core purpose without any wasted words. It's appropriately sized for a simple retrieval tool and gets straight to the point.

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

    Completeness2/5

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

    For a tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what information is returned about each playlist, whether authentication is required, how results are structured, or any limitations. Given the lack of structured metadata, the description should provide more contextual information.

    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 schema description coverage is 100%, with the single parameter 'limit' fully documented in the schema. The description adds no parameter information beyond what's already in the structured schema, so it meets the baseline expectation but doesn't provide additional semantic context.

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

    Purpose4/5

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

    The description clearly states the action ('Get a list') and resource ('current user's playlists on Spotify'), making the purpose immediately understandable. However, it doesn't distinguish this tool from similar playlist-related tools like 'getPlaylistTracks' or 'createPlaylist', which would require explicit differentiation to earn a perfect score.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'getPlaylistTracks' (for specific playlist details) and 'createPlaylist' (for creating new playlists), there's no indication of when this general playlist listing tool is appropriate versus those more specialized options.

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

  • Behavior2/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'top artists or tracks' but doesn't explain what 'top' means (e.g., based on listening frequency, popularity, or other metrics), nor does it cover authentication needs, rate limits, or response format. This is inadequate for a tool that likely requires user authentication and returns personal data.

    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 a single, efficient sentence that directly states the tool's purpose without any fluff. It's front-loaded with the core action and resource, making it easy to parse quickly. Every word earns its place, achieving optimal conciseness.

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

    Completeness2/5

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

    Given the lack of annotations and output schema, the description is insufficiently complete. It doesn't explain the behavioral aspects (e.g., authentication, what 'top' means), usage context, or return values. For a tool that likely accesses user-specific data and has multiple parameters, more detail is needed to guide effective agent use.

    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 100%, so the schema fully documents all parameters (type, time_range, limit, offset). The description adds no additional parameter semantics beyond implying 'top items' relates to the parameters, but it doesn't explain how they interact (e.g., how time_range affects 'top' calculation). This meets the baseline for high schema coverage.

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

    Purpose4/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 ('list of the user's top artists or tracks'), making the purpose immediately understandable. However, it doesn't differentiate this tool from similar sibling tools like 'getRecentlyPlayed' or 'getFollowedArtists' beyond the 'top items' concept, which is why it doesn't reach the highest score.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'getRecentlyPlayed' for recent activity or 'getFollowedArtists' for followed artists, nor does it specify use cases like personalization or analytics. This leaves the agent with minimal context for tool selection.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden. It states what the tool does (perform actions) but lacks behavioral details: doesn't specify if it requires authentication, affects playback state globally, has rate limits, or what happens on success/failure. 'Perform' implies mutation, but no safety or side-effect information is given.

    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 a single, efficient sentence that front-loads the purpose and lists actions. Every word earns its place with no redundancy or fluff. Structure is straightforward and easy to parse.

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

    Completeness2/5

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

    For a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't cover behavioral aspects (auth, side effects), success/failure responses, or usage context. While concise, it lacks necessary context for safe and effective use by an agent.

    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 100%, with clear parameter descriptions in the schema. The description adds minimal value beyond schema: it lists action options (already in enum) and implies device targeting but doesn't explain parameter interactions or semantics (e.g., deviceId optionality, action effects). Baseline 3 is appropriate as schema does heavy lifting.

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

    Purpose4/5

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

    The description clearly states the verb ('perform') and resource ('playback action'), listing specific actions (pause, resume, skip to next, skip to previous). It distinguishes from siblings by focusing on playback control rather than queue management, playlist operations, or music playback initiation. However, it doesn't explicitly differentiate from 'playMusic' which might overlap in controlling playback.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives like 'playMusic' (which might start playback) or 'addToQueue' (which modifies queue). It doesn't mention prerequisites (e.g., requires active playback, device selection) or exclusions. Usage is implied through action names but not explicitly stated.

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

  • Behavior2/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool starts playback but doesn't mention whether it requires specific permissions (e.g., Spotify Premium), what happens if no device is active, or if it overrides current playback. This leaves significant gaps for a mutation tool.

    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 a single, efficient sentence that front-loads the core purpose without unnecessary words. Every part of the sentence directly contributes to understanding what the tool does.

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

    Completeness2/5

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

    For a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't cover behavioral aspects like error conditions, authentication needs, or what the response looks like (e.g., success confirmation or playback state). Given the complexity of media playback, more context is needed.

    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 description mentions playing 'track, album, artist, or playlist', which aligns with the 'type' parameter's enum values. However, with 100% schema description coverage, the input schema already fully documents all 4 parameters, so the description adds minimal value beyond reinforcing the 'type' options.

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

    Purpose4/5

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

    The description clearly states the action ('Start playing') and the resource ('a Spotify track, album, artist, or playlist'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'playbackAction' or 'addToQueue', which could handle similar playback scenarios.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives like 'playbackAction' for other playback controls or 'addToQueue' for queuing without immediate playback. It also doesn't mention prerequisites such as needing an active Spotify device or authentication context.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden for behavioral disclosure. It states the action ('remove') but doesn't clarify whether this is destructive (permanent removal), requires specific authentication, has rate limits, or what happens on success/failure. For a mutation tool with zero annotation coverage, this is inadequate.

    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 a single, efficient sentence that directly states the tool's function without unnecessary words. It's appropriately sized and front-loaded with the core action.

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

    Completeness2/5

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

    For a mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what happens after removal (e.g., confirmation, error handling), authentication requirements, or how it differs from related tools. Given the complexity of modifying user data, more context is needed.

    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 100%, with clear descriptions for both parameters (playlistId and trackIds). The description adds no additional parameter context beyond what the schema already provides, so it meets the baseline score of 3 for high schema coverage.

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

    Purpose4/5

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

    The description clearly states the action ('remove') and target ('tracks from a Spotify playlist'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'addTracksToPlaylist' or 'playbackAction', which could also involve track manipulation in different contexts.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., user must own or have edit permissions for the playlist), nor does it contrast with sibling tools like 'addTracksToPlaylist' or 'playMusic' that involve track operations.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden but only states the basic action without behavioral details. It doesn't disclose authentication requirements, rate limits, pagination behavior (implied by 'after' parameter but not explained), or response format, which are critical for a read operation.

    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 a single, efficient sentence that front-loads the core purpose without unnecessary words. Every part earns its place, making it highly concise and well-structured for quick understanding.

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

    Completeness2/5

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

    Given no annotations and no output schema, the description is incomplete for a tool with parameters and complexity. It lacks details on authentication, pagination behavior, response structure, and error handling, leaving significant gaps for the agent to operate effectively.

    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 100%, so the schema fully documents both parameters ('after' for pagination cursor, 'limit' with range). The description adds no additional meaning beyond the schema, such as default values or usage examples, meeting the baseline for high coverage.

    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 ('list of artists the user is following on Spotify'), making the purpose specific and unambiguous. It distinguishes this tool from siblings like 'getUserTopItems' or 'getRecentlyPlayed' by focusing exclusively on followed artists.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., user authentication), exclusions, or comparisons to sibling tools like 'getUserTopItems' for top artists, leaving the agent to infer usage context.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden for behavioral disclosure but offers minimal insight. It states what the tool does ('Get information') but doesn't describe response format, error conditions, authentication requirements, rate limits, or whether it requires an active playback session. For a read operation with zero annotation coverage, this leaves significant gaps in understanding 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.

    Conciseness5/5

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

    The description is a single, clear sentence that directly communicates the tool's function without any fluff or redundancy. It's front-loaded with the core purpose ('Get information about the currently playing track') and specifies the context ('on Spotify'). Every word earns its place, making it highly efficient for an agent to parse.

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

    Completeness3/5

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

    Given the tool's simplicity (no parameters, no annotations, no output schema), the description is minimally adequate. It states what the tool does but lacks details on return values, error handling, or dependencies like active playback. For a read operation that likely returns structured data, the absence of output schema means the description should ideally hint at response format, but it doesn't—leaving the agent with incomplete operational context.

    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?

    The tool has zero parameters, and schema description coverage is 100% (empty schema is fully documented). The description appropriately doesn't discuss parameters since none exist, avoiding unnecessary detail. It focuses solely on the tool's purpose, which is sufficient given the parameterless design.

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

    Purpose4/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 a specific verb ('Get information') and resource ('currently playing track on Spotify'), making it immediately understandable. It doesn't explicitly distinguish from siblings like 'getRecentlyPlayed' or 'getUserTopItems', but the focus on 'currently playing' provides inherent differentiation. The description avoids tautology by specifying what information is retrieved rather than just restating the name.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., requiring active Spotify playback), exclusions, or comparisons to sibling tools like 'getRecentlyPlayed' for historical data or 'playbackAction' for control operations. The agent must infer usage context solely from the tool name and description without explicit direction.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden for behavioral disclosure. It mentions returning items but doesn't describe the response format, pagination behavior, rate limits, authentication requirements, or error conditions. For a search tool with no annotation coverage, this leaves significant gaps in understanding how the tool behaves beyond basic functionality.

    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 a single, efficient sentence that communicates the core functionality without unnecessary words. It's appropriately sized for the tool's complexity and front-loads the essential information about searching with filters and returning typed results.

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

    Completeness3/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 (4 parameters, 100% schema coverage, no output schema, no annotations), the description provides basic context but lacks details about response format, error handling, and behavioral constraints. It's adequate as a minimum viable description but has clear gaps in completeness for a search tool that likely returns structured data.

    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 100%, so the schema already documents all parameters thoroughly. The description adds minimal value beyond the schema, mentioning 'keyword and field filters' and 'return items of the given type' which are already covered in the schema's parameter descriptions. Baseline 3 is appropriate when the schema does the heavy lifting.

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

    Purpose4/5

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

    The description clearly states the tool searches Spotify using keyword and field filters and returns items of a specified type. It specifies the verb 'search' and resource 'Spotify', but doesn't explicitly differentiate from sibling tools like 'getUserPlaylists' or 'getRecentlyPlayed' which also retrieve Spotify content. The purpose is clear but lacks sibling differentiation.

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

    Usage Guidelines3/5

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

    The description implies usage for searching across multiple content types (tracks, albums, playlists) with flexible filtering, suggesting it's for general discovery rather than retrieving specific user data like 'getUserPlaylists'. However, it doesn't explicitly state when to use this tool versus alternatives or mention any exclusions, leaving some ambiguity about its specific use cases.

    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/igorgarbuz/spotify-mcp'

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