Skip to main content
Glama
fborello

MCP Spotify Server

by fborello

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 overlap: authentication (auth, set_tokens), playback control (play, pause, resume, next, previous), playlist management (create, add_tracks, playlists, play_playlist), search, and device/status queries. The descriptions reinforce these distinct roles, making misselection unlikely.

    Naming Consistency5/5

    All tools follow a consistent 'spotify_verb' or 'spotify_verb_noun' pattern in snake_case, with verbs like 'add', 'create', 'play', 'pause', etc. This predictability makes the tool set easy to navigate and understand at a glance.

    Tool Count5/5

    With 14 tools, this server is well-scoped for a Spotify integration, covering authentication, playback control, playlist operations, search, and device management. Each tool earns its place without bloat, supporting common user workflows effectively.

    Completeness4/5

    The tool surface is nearly complete for core Spotify interactions, including authentication, playback, playlists, and search. A minor gap is the lack of tools for modifying or deleting playlists, but agents can work around this with existing tools like create and add_tracks.

  • Average 3/5 across 14 of 14 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 full burden for behavioral disclosure. While 'adiciona' implies a write/mutation operation, the description doesn't disclose important behavioral traits: whether authentication is required, rate limits, what happens if tracks already exist in the playlist, error conditions, or what the response looks like. It provides only the basic action without 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 extremely concise - a single Portuguese sentence that directly states the tool's purpose. There's zero waste or redundancy, and it's front-loaded with the essential information. Every word earns its place.

    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 address authentication requirements (critical given the sibling 'spotify_auth' tool), doesn't explain what happens on success/failure, and provides no context about the Spotify API's behavior. The description should do more to compensate for the lack of structured metadata.

    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?

    With 100% schema description coverage, the schema already documents both parameters thoroughly. The description doesn't add any meaningful semantic context beyond what's in the schema - it doesn't explain format requirements, constraints, or provide examples. The baseline of 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 action ('Adiciona' - adds) and target resource ('músicas a uma playlist existente' - tracks to an existing playlist), providing a specific verb+resource combination. However, it doesn't distinguish this tool from potential alternatives like 'spotify_create_playlist' which might also add tracks during creation, or clarify if this is the only way to add tracks versus other methods.

    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 (like authentication), doesn't specify when to use this versus 'spotify_create_playlist' for new playlists, and offers no context about limitations or best practices for adding tracks.

    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 it creates a playlist but doesn't disclose behavioral traits like required permissions, whether it's idempotent, error handling, or what the response includes. This is a significant gap for a mutation tool with zero annotation coverage.

    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 in Portuguese with zero waste. It's appropriately sized and front-loaded, clearly stating the tool's purpose 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?

    Given this is a mutation tool with no annotations and no output schema, the description is incomplete. It lacks details on behavioral aspects, prerequisites, and expected outcomes, making it inadequate for an AI agent to fully understand how to invoke it correctly.

    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 (name, description, public) with descriptions. The description adds no additional meaning beyond what the schema provides, meeting the baseline of 3 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 'Cria uma nova playlist no Spotify' clearly states the action (creates) and resource (new playlist on Spotify) in Portuguese. It's specific about what the tool does, though it doesn't explicitly differentiate from sibling tools like 'spotify_playlists' which likely lists playlists rather than creates them.

    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 via spotify_auth), exclusions, or contextual cues for choosing this over other playlist-related tools.

    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 action ('skip to the next song') but does not mention side effects (e.g., if it advances playback queue, requires active playback, or affects shuffle/repeat modes), permissions needed, or error conditions. This leaves significant gaps in understanding the tool's behavior beyond the basic action.

    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, direct sentence in Portuguese that efficiently conveys the core action without any fluff or unnecessary details. It is front-loaded and appropriately sized for a simple tool, with every word earning its place.

    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 tool's moderate complexity (a playback control action with one optional parameter) and lack of annotations or output schema, the description is incomplete. It does not address behavioral aspects like side effects, error handling, or interaction with sibling tools, leaving the agent with insufficient 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?

    The input schema has 100% description coverage, with the single parameter 'device_id' documented as optional and for device identification. The description adds no additional parameter semantics beyond what the schema provides, so it meets the baseline score of 3 for adequate 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 'Pula para a próxima música' (Portuguese for 'Skip to the next song') clearly states the tool's action (skip) and resource (next song), making the purpose immediately understandable. It does not explicitly differentiate from sibling tools like 'spotify_previous' or 'spotify_pause', but the verb 'skip' implies forward navigation in 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 such as 'spotify_previous', 'spotify_pause', or 'spotify_resume'. It lacks context about prerequisites (e.g., whether playback must be active) or exclusions, leaving usage decisions to inference from the tool name alone.

    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 action ('Pausa') but doesn't describe effects (e.g., pauses playback on a device, requires Spotify Premium, may fail if no active playback), permissions, or response behavior. The description is minimal and lacks necessary context 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, clear sentence in Portuguese ('Pausa a reprodução atual') that directly states the tool's purpose with zero wasted words. It's front-loaded and appropriately sized for a simple action, making it highly efficient 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?

    Given the tool is a mutation (pause action) with no annotations and no output schema, the description is incomplete. It lacks details on behavioral aspects (e.g., what happens on success/failure, requirements like active playback), making it inadequate for safe and effective use by an AI agent. The simplicity of the action doesn't excuse the missing context.

    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 'device_id' documented as optional and a string. The description adds no parameter information beyond what the schema provides. Since schema coverage is high, the baseline score of 3 is appropriate, as the description doesn't compensate but doesn't need to given the schema's completeness.

    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 'Pausa a reprodução atual' clearly states the action (pause) and target (current playback) in Portuguese. It's specific about what the tool does, though it doesn't explicitly differentiate from sibling tools like 'spotify_resume' beyond the obvious action difference. The purpose is unambiguous but lacks explicit sibling comparison.

    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., requires active playback), exclusions, or comparisons to siblings like 'spotify_resume' or 'spotify_play'. Usage is implied from the action name alone, with no contextual instructions.

    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 'Toca' implies a playback action, it doesn't specify whether this interrupts current playback, requires premium subscription, has rate limits, or what happens on success/failure. For a mutation tool with zero annotation coverage, this leaves significant behavioral questions unanswered.

    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 playback function 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 mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what happens after invocation (does it return success status? error messages? playback confirmation?), nor does it address authentication requirements or potential limitations. Given the complexity of media playback operations, 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 schema has 100% description coverage, with both parameters clearly documented in the schema itself. The description doesn't add any parameter information beyond what's already in the schema, so it meets the baseline of 3 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 action ('Toca' - plays) and the resource ('uma música específica no Spotify'), making the purpose immediately understandable. However, it doesn't differentiate this tool from similar sibling tools like 'spotify_play_playlist' or 'spotify_resume', which also involve playback functionality.

    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 'spotify_play_playlist' (for playing entire playlists) or 'spotify_resume' (for resuming playback). There's no mention of prerequisites (like authentication status) or context about when this specific track-playing function is appropriate.

    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 it lists user playlists but doesn't mention if it requires authentication, how it handles pagination, rate limits, or what the return format is. This leaves significant gaps for a tool that likely interacts with user 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 phrase in Portuguese ('Lista playlists do usuário') that directly states the purpose without any wasted words. It's appropriately sized and front-loaded, making it easy 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 lack of annotations and output schema, the description is incomplete. It doesn't address authentication needs, return format, or error handling, which are crucial for a tool that likely requires user authorization and returns a list of playlists. This leaves the agent with insufficient 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?

    The input schema has 100% description coverage, with the 'limit' parameter well-documented. The description adds no additional parameter information beyond what the schema provides, so it meets the baseline score of 3 without compensating or adding 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 'Lista playlists do usuário' clearly states the verb ('Lista') and resource ('playlists do usuário'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'spotify_search' or 'spotify_play_playlist', which might also involve playlists, 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. It doesn't mention prerequisites (e.g., authentication status), exclusions, or comparisons to siblings like 'spotify_search' for finding playlists, leaving the agent with minimal context for 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?

    With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('play') but lacks critical details: it doesn't specify if this starts playback from the beginning, requires an active Spotify session, affects other playback, or has side effects like changing device context. 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 in Portuguese that directly states the tool's purpose without unnecessary words. It's front-loaded and wastes no space, 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 the tool's complexity (a mutation action with no annotations and no output schema), the description is incomplete. It doesn't cover behavioral aspects like authentication needs, playback effects, or error conditions, and it lacks output information. For a tool that likely interacts with an external service and changes state, this minimal description is insufficient.

    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 (playlist_id as required, device_id as optional). The description adds no additional meaning beyond the schema, such as format examples or usage context for device_id. Baseline 3 is appropriate since the schema adequately documents the parameters.

    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 'Toca uma playlist específica' (Plays a specific playlist) clearly states the verb (play) and resource (playlist), making the purpose immediately understandable. However, it doesn't differentiate from siblings like 'spotify_play' (which likely plays something else) or 'spotify_resume' (which might resume playback), 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. It doesn't mention prerequisites (e.g., authentication, active device), exclusions, or comparisons to siblings like 'spotify_play' or 'spotify_resume', leaving the agent to infer usage from context alone.

    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. It states the action (resume playback) but doesn't cover critical aspects like authentication requirements (implied by sibling 'spotify_auth'), error conditions (e.g., if no playback is paused), side effects, or response format. 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, clear sentence in Portuguese with zero wasted words. It's front-loaded with the core action and efficiently conveys the purpose 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 that performs a mutation (resuming playback) with no annotations and no output schema, the description is incomplete. It lacks details on authentication, error handling, return values, and how it interacts with sibling tools. Given the complexity and missing structured data, more context is needed 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%, with the single parameter 'device_id' documented as optional and a string. The description adds no additional parameter information beyond what the schema provides, such as format examples or contextual usage. With high schema coverage, the baseline score of 3 is appropriate.

    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 'Retoma a reprodução pausada' (Resumes paused playback) clearly states the tool's action and target resource (playback). It's specific with the verb 'retoma' (resumes) and resource 'reprodução pausada' (paused playback). However, it doesn't explicitly differentiate from sibling tools like 'spotify_play' or 'spotify_play_playlist', which might have overlapping functionality.

    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., requires active playback to be paused), exclusions, or comparisons to siblings like 'spotify_play' (which might start new playback). Usage is implied from the name 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?

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the search action but lacks details on rate limits, authentication requirements (implied by sibling 'spotify_auth'), response format, pagination, or error handling. For a tool with no annotation coverage, this leaves significant gaps in understanding how it behaves operationally.

    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 in Portuguese that directly states the tool's purpose without redundancy. It's front-loaded with the core function and lists the searchable resources concisely. There's no wasted verbiage, making it easy 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 (a search tool with 3 parameters), lack of annotations, and no output schema, the description is incomplete. It doesn't cover behavioral aspects like authentication needs, rate limits, or response structure, which are critical for effective use. While the schema handles parameters well, the overall context for safe and correct invocation is insufficient.

    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 all parameters (limit, query, type). The description adds no additional parameter semantics beyond what's in the schema—it doesn't explain query syntax, type implications, or default behaviors. Given the high schema coverage, a baseline score of 3 is appropriate, as the schema adequately documents parameters without extra help from the description.

    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: 'Busca por músicas, artistas, álbuns ou playlists no Spotify' (Search for songs, artists, albums, or playlists on Spotify). It specifies the verb ('busca' - search) and resources (music, artists, albums, playlists), making the function unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'spotify_playlists' (which might list playlists rather than search them) or 'spotify_current_playing' (which retrieves current playback), leaving room for minor confusion.

    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 to choose search over direct listing tools (e.g., 'spotify_playlists' for browsing playlists without a query) or other search-related tools (none exist among siblings, but context isn't provided). There's no indication of prerequisites, such as authentication status, or any exclusions for 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?

    No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'Conclui a autenticação' implies this is a write operation that exchanges an authorization code for tokens, it doesn't disclose what tokens are obtained (access/refresh), where they're stored, whether this requires specific permissions, or what happens on failure. For an authentication tool with zero annotation coverage, this leaves significant behavioral 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 in Portuguese that directly states the tool's purpose. There's zero wasted language, and it's appropriately sized for a single-parameter tool. Every word earns its place by conveying essential information about completing authentication with a Spotify code.

    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 an authentication tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what authentication tokens are obtained, how they're stored/used, what the tool returns, or error conditions. Given the complexity of OAuth token exchange and the lack of structured documentation, the description should provide more context about the authentication flow and outcomes.

    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 the single parameter 'code' well-documented in the schema as 'Código de autorização retornado pelo Spotify após login'. The description adds no additional parameter information beyond what the schema provides. With complete schema coverage, the baseline score of 3 is appropriate as the description doesn't enhance parameter understanding.

    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 ('Conclui a autenticação' - Completes authentication) and the resource ('com o código recebido do Spotify' - with the code received from Spotify). It distinguishes from sibling tools like 'spotify_auth' by specifying this is for completing authentication with a code rather than initiating it. However, it doesn't explicitly mention that this is for OAuth token exchange, which would make it more specific.

    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 that this should be used after receiving an authorization code from Spotify's OAuth flow, nor does it clarify the relationship with 'spotify_auth' (which likely initiates authentication). There are no explicit when/when-not instructions or alternative tool recommendations.

    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 initiates authentication but doesn't describe what this entails (e.g., opening a browser, returning tokens, requiring user interaction, or handling errors). For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

    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 in Portuguese that directly states the tool's purpose without any unnecessary words. It is appropriately sized and front-loaded, making it easy 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 an authentication tool with no annotations and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., tokens, URLs, or status), how it interacts with the user, or any behavioral traits like rate limits or errors, leaving the agent with insufficient context for effective use.

    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 0 parameters with 100% schema description coverage, so the schema fully documents the lack of inputs. The description doesn't add parameter details beyond what the schema provides, but with no parameters, a baseline of 4 is appropriate as there's nothing to compensate for.

    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 ('Inicia o processo de autenticação') and the target resource ('com o Spotify'), making the purpose understandable. It doesn't explicitly differentiate from sibling tools like 'spotify_set_tokens', but the verb 'inicia' suggests starting a process rather than setting tokens directly, which provides some implicit 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 like 'spotify_set_tokens', nor does it mention prerequisites or context for authentication. It implies usage for authentication but lacks explicit when/when-not instructions or references to other tools.

    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. It states the tool gets information, implying a read-only operation, but doesn't specify what information is returned (e.g., track name, artist, album), whether it requires active playback, error handling (e.g., if nothing is playing), or rate limits. This leaves significant gaps for an agent to understand the tool's behavior.

    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 in Portuguese that directly states the tool's purpose without unnecessary words. It's front-loaded with the core action ('Obtém informações'), making it easy to parse. Every part of the sentence earns its place by conveying essential intent.

    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 tool's complexity (simple read operation) but lack of annotations and no output schema, the description is incomplete. It doesn't explain what information is returned (e.g., JSON structure), error conditions, or dependencies like authentication. For a tool that interacts with an external service (Spotify), more context is needed to use it effectively.

    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 0 parameters, and the input schema has 100% description coverage (though empty). The description doesn't need to explain parameters, so it naturally meets the baseline. It doesn't add or detract from parameter understanding, as there are none to document.

    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 'Obtém informações sobre a música que está tocando' clearly states the tool's purpose: to get information about the currently playing music. It uses a specific verb ('Obtém') and resource ('música que está tocando'), making the intent unambiguous. However, it doesn't explicitly differentiate from siblings like 'spotify_devices' or 'spotify_playlists', which also provide information but about different resources.

    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., requires authentication via 'spotify_auth'), context (e.g., only works if music is actively playing), or exclusions (e.g., not for historical playback data). With siblings like 'spotify_search' for finding tracks, clear usage distinctions are missing.

    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. It states the tool lists devices but does not describe what the list includes (e.g., device names, types, status), how it's formatted, whether it requires authentication, or any rate limits. This is a significant gap for a tool with zero annotation coverage.

    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 in Portuguese ('Lista dispositivos disponíveis para reprodução') that directly states the tool's function without any wasted words. It is appropriately sized and front-loaded, making it highly efficient.

    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 does not explain what the output looks like (e.g., list format, device attributes), behavioral aspects like authentication requirements, or how it integrates with sibling tools (e.g., used before 'spotify_play'). For a tool in a complex Spotify API context, this leaves critical gaps.

    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 0 parameters, and schema description coverage is 100%, so there is no need for parameter details in the description. The baseline for 0 parameters is 4, as the description appropriately avoids unnecessary parameter information and focuses on the tool's purpose.

    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 'Lista dispositivos disponíveis para reprodução' clearly states the tool's purpose as listing available playback devices, using specific verbs ('Lista') and resources ('dispositivos'). However, it does not explicitly differentiate from sibling tools like 'spotify_play' or 'spotify_pause', which are control tools rather than listing tools, so it falls short of 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. It does not mention prerequisites (e.g., authentication status), scenarios for use (e.g., before selecting a device for playback), or exclusions, leaving the agent to infer usage from context alone.

    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 action ('go back to the previous song') but lacks critical details: whether it requires authentication, if it affects playback state (e.g., resumes if paused), what happens if there's no previous song (error or wrap-around), or rate limits. The description is minimal and misses key behavioral traits for a media control 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 in Portuguese that directly states the tool's purpose with zero wasted words. It is appropriately sized for a simple action tool and front-loaded with the core functionality. Every word earns its place, making it highly concise and well-structured.

    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 tool's complexity (simple media control with one optional parameter), no annotations, no output schema, and minimal description, the description is incomplete. It lacks context on authentication needs, error conditions, playback state implications, and interaction with sibling tools (e.g., 'spotify_pause'). For a tool that modifies playback, more behavioral and contextual information is needed to guide the agent effectively.

    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 input schema has 1 parameter with 100% coverage (device_id is described as optional device ID). The description adds no parameter-specific information beyond what the schema provides. Since there are 0 parameters mentioned in the description and schema coverage is high, the baseline is 3, but the tool has only one optional parameter, making the lack of param details less critical, warranting a slightly higher score.

    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 'Volta para a música anterior' (Portuguese for 'Go back to the previous song') clearly states the tool's action with a specific verb ('volta') and resource ('música anterior'). It distinguishes itself from siblings like 'spotify_next' (go forward) and 'spotify_pause' (pause), but doesn't explicitly differentiate from all siblings (e.g., 'spotify_play' could be ambiguous). The purpose is unambiguous but lacks explicit sibling comparison.

    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., requires an active playback session), exclusions (e.g., not applicable if at the start of a playlist), or comparisons to similar tools like 'spotify_next' or 'spotify_play'. Usage is implied from the action alone, leaving the agent to infer context.

    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

MCPSpotify MCP server

Copy to your README.md:

Score Badge

MCPSpotify 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/fborello/MCPSpotify'

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