Skip to main content
Glama
dedsxc

MCP TIDAL Server

by dedsxc

MCP TIDAL Server 🎵

Model Context Protocol (MCP) server for TIDAL Music. Enables AI assistants (Claude, etc.) to access TIDAL catalog: search, playlists, favorites, and recommendations.

Note: Uses tidalapi which accesses TIDAL's internal APIs (reverse-engineered).

Installation

git clone https://github.com/yourusername/mcp-tidal.git
cd mcp-tidal
pip install -e .

Related MCP server: Spotify MCP Server

Configuration

1. Authentication

First time, authenticate with your TIDAL account:

python3 -c "from mcp_tidal.client import TidalClient; TidalClient().login()"

Session saved to /tmp/tidal-session-oauth.json.

2. Claude Desktop

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "tidal": {
      "command": "mcp-tidal"
    }
  }
}

Available Tools

Authentication

  • tidal_login() - Browser authentication

  • check_auth() - Check status

Search & Metadata

  • search_music(query, limit) - Search all content

  • get_track(track_id) - Track details

  • get_album(album_id) - Album details

  • get_artist(artist_id) - Artist details

Favorites & Recommendations

  • get_favorite_tracks(limit) - Your favorite tracks

  • get_track_recommendations(track_id, limit) - Suggestions

Playlists

  • get_user_playlists() - Your playlists

  • get_playlist_tracks(playlist_id, limit) - Playlist tracks

  • create_playlist(title, description, track_ids) - Create playlist

  • add_tracks_to_playlist(playlist_id, track_ids) - Add tracks to playlist

  • remove_tracks_from_playlist(playlist_id, track_indices) - Remove tracks from playlist

  • delete_playlist(playlist_id) - Delete playlist

Transport Modes

stdio (default - for Claude Desktop)

mcp-tidal

SSE (Server-Sent Events)

mcp-tidal-sse  # Runs on http://0.0.0.0:8000/sse

HTTP Streamable

mcp-tidal-http  # Runs on http://127.0.0.1:8000/mcp

Available Tools

14 tools
add_tracks_to_playlistB

Add tracks to an existing playlist.

ParametersJSON Schema
NameRequiredDescriptionDefault
track_idsYesList of track IDs to add
playlist_idYesPlaylist ID to add tracks to

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided; description lacks details on behavioral aspects such as whether tracks are appended or replaced, handling of duplicates, or rate limits.

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?

Single sentence is concise and front-loaded. No wasted words, but could benefit from slight expansion on behavior.

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?

Description covers basic purpose, but given output schema exists, more behavioral details would improve completeness.

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 coverage is 100% with descriptions for both parameters. Description does not add additional meaning beyond schema.

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

Purpose5/5

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

Description clearly states the verb 'Add' and resources 'tracks to an existing playlist'. It distinguishes from sibling like remove_tracks_from_playlist.

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?

No guidance on when to use this tool versus alternatives like create_playlist or get_playlist_tracks. No prerequisites mentioned.

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

check_authA

Check current TIDAL authentication status.

Returns: Authentication status and user information

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

Without annotations, description carries full burden. It only states it returns status and user info but does not disclose safety, idempotency, or side effects. Insufficient for a tool likely involving authentication state.

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?

Very concise, two sentences with no waste. Communicates core purpose efficiently.

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?

Output schema covers return values, but description omits context like whether previous login is required or what 'authentication status' ranges are. Adequate but not full.

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?

No parameters, so schema coverage is 100%. Description adds nothing beyond schema, which is acceptable for a parameterless tool.

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?

Description clearly states the tool checks current TIDAL authentication status and returns authentication status and user information. No ambiguity.

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?

No guidance on when to use this tool versus alternatives like tidal_login. Does not mention prerequisites or when not to use it.

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

create_playlistB

Create a new playlist in the user's account.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesPlaylist title
track_idsNoList of track IDs to add (optional)
descriptionNoPlaylist description (optional)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It simply says 'create', implying mutation, but does not explain side effects (e.g., overwriting existing playlist with same name), required permissions, or what happens on duplicate titles. The return value is not described, though an output schema exists.

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

Conciseness3/5

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

The description is a single sentence, which is concise, but it is overly minimal. It could include more useful context without becoming verbose, such as noting that a title is required or that the playlist is created empty by default.

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 that a creation tool has 3 parameters (1 required) and an output schema, the description is insufficient. It fails to mention that the tool returns the newly created playlist object, nor does it address edge cases or behavior with optional parameters. The output schema may cover return values, but the description should still provide high-level 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?

All three parameters have descriptions in the schema (100% coverage), so the description adds no additional meaning beyond stating 'optional' for track_ids and description, which is already in the schema. Baseline 3 is appropriate.

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 'Create a new playlist in the user's account.' which uses a specific verb (create) and resource (playlist) with scope (user's account). It distinctly differentiates from sibling tools like add_tracks_to_playlist and delete_playlist.

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?

No guidance is provided on when to use this tool versus alternatives (e.g., add_tracks_to_playlist). There is no mention of prerequisites like authentication requirements, uniqueness of playlist names, or situations where this tool should not be used.

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

delete_playlistB

Delete a playlist from the user's account.

ParametersJSON Schema
NameRequiredDescriptionDefault
playlist_idYesPlaylist ID to delete

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden. It only states the action without detailing irreversibility, permission requirements, or side effects (e.g., effects on shared playlists).

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?

A single sentence with no extraneous words. It is front-loaded with the action and resource, making it 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?

For a simple tool with one parameter and an output schema, the description is adequate but minimal. It does not explain return values or error conditions, though the output schema exists. Could be more informative about the operation's impact.

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 coverage is 100%, and the schema already describes 'playlist_id' as 'Playlist ID to delete'. The description adds no further semantic value beyond the schema.

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

Purpose5/5

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

The description clearly states the action ('Delete'), the resource ('a playlist'), and the context ('from the user's account'). It distinguishes itself from sibling tools like 'create_playlist' and 'add_tracks_to_playlist' by specifying deletion.

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?

No guidance on when to use this tool versus alternatives, such as 'remove_tracks_from_playlist'. Lacks prerequisites like ownership requirements or conditions under which deletion is allowed.

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

get_albumA

Get detailed information about a specific album.

ParametersJSON Schema
NameRequiredDescriptionDefault
album_idYesTIDAL album ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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

No annotations provided, and description lacks behavioral details such as read-only nature, required permissions, or what 'detailed information' includes. Minimal transparency beyond the obvious 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?

Single sentence, front-loaded with action, no unnecessary words.

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

Completeness4/5

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

Has output schema, one simple parameter, and the description is adequate for a basic lookup tool. Lacks usage guidance but is otherwise complete given 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?

Schema coverage is 100% with album_id described as 'TIDAL album ID'. Description adds no extra parameter meaning beyond the schema, so baseline score of 3 is appropriate.

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?

Description clearly states verb 'Get' and resource 'album', distinguishing it from sibling tools like get_track and get_artist which target different entities.

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?

No explicit guidance on when to use or alternatives to sibling tools like get_track or get_artist, but context implies use for album details.

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

get_artistC

Get detailed information about a specific artist.

ParametersJSON Schema
NameRequiredDescriptionDefault
artist_idYesTIDAL artist ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It does not mention whether this operation is read-only, requires authentication, or has any side effects.

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, clear sentence with 8 words. It is concise and front-loaded, but could be slightly more informative without adding length.

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 output schema exists (assumed), the description adequately conveys the core purpose. However, missing usage guidelines and behavioral transparency reduce completeness for a tool with no annotations.

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 coverage is 100% with a single parameter that is already described in the schema. The description adds no new meaning beyond the schema, so 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 clearly states the action (get) and resource (artist), and is distinct from siblings like get_album or get_track. However, 'detailed information' is somewhat vague; specifying what details (e.g., name, bio, discography) would improve it.

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 vs alternatives like get_album or get_track. No prerequisites or context for usage are mentioned.

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

get_favorite_tracksB

Get the current user's favorite tracks.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum tracks to return (default: 20)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided, and the description does not disclose behavioral traits such as authentication requirements, pagination, or that it returns a list. The description is too brief to convey necessary behavioral 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 sentence, concise and front-loaded with the key purpose, containing no unnecessary words.

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?

While an output schema exists, the description lacks context about authentication, user session requirements, or expected response structure. It is minimally sufficient for a simple read operation but not fully complete.

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 coverage is 100% with a single parameter (limit) already described in the schema. The description adds no additional meaning beyond what the schema provides, meeting the baseline but not exceeding it.

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 'Get the current user's favorite tracks', specifying verb 'Get' and resource 'current user's favorite tracks', which distinguishes it from siblings like get_playlist_tracks.

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?

No guidance on when to use this tool vs alternatives (e.g., get_playlist_tracks) or any prerequisites like authentication, 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.

get_playlist_tracksB

Get all tracks from a specific playlist.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of tracks (default: 100)
playlist_idYesTIDAL playlist ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided, so description bears full burden. It says 'Get all tracks' but uses a limit parameter, implying pagination not explained. Lacks any mention of authentication, rate limits, or pagination behavior.

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?

Single sentence, very concise. However, 'all tracks' is ambiguous given the limit parameter, slightly reducing clarity.

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?

Despite having an output schema, the description is too minimal for a retrieval tool with pagination. Fails to mention how to handle large playlists, ordering, or required auth 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?

Schema description coverage is 100%, so baseline is 3. The description adds no extra meaning beyond the schema; parameters are already well-documented.

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

Purpose5/5

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

The description clearly states the verb 'Get' and the resource 'all tracks from a specific playlist'. It is specific and distinct from sibling tools like add_tracks_to_playlist or remove_tracks_from_playlist.

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 (e.g., get_track for a single track, get_album for album tracks). No mention of prerequisites or when not to use it.

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

get_trackA

Get detailed information about a specific track.

ParametersJSON Schema
NameRequiredDescriptionDefault
track_idYesTIDAL track ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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

No annotations provided, so the description must disclose behavioral traits. It does not mention any authentication requirements, rate limits, error handling, or what happens if the track is not found. This is a gap.

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?

A single sentence that is front-loaded and contains no unnecessary words. Every sentence earns its place.

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

Completeness4/5

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

For a simple getter with one parameter and an output schema (though not shown), the description is adequate. It could mention the return format, but the output schema likely covers that.

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 coverage is 100% and the description does not add extra meaning beyond the schema's definition of 'track_id' as a 'TIDAL track ID'. Baseline 3 is appropriate.

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 the resource 'detailed information about a specific track'. It is specific and distinguishes from sibling tools like 'get_album' and 'get_artist'.

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?

No explicit guidance on when to use this tool vs alternatives. However, the simplicity of retrieving a single track by ID makes it implicit. A bit more context could help, but it's acceptable.

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

get_track_recommendationsB

Get recommended tracks based on a specific track.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum recommendations (default: 20)
track_idYesTIDAL track ID to base recommendations on

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided, so description must cover behavioral traits. It only states the core action but doesn't mention that the tool is read-only, requires authentication, or how the limit parameter affects output. Additional context (e.g., 'returns track objects') is missing.

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?

Single sentence, front-loaded with main action. While efficient, it could include a bit more detail without becoming verbose. Still, no wasted words.

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?

For a simple tool with a small schema and an output schema, the description covers the essential purpose. However, it lacks behavioral or usage context that would be helpful for an agent, such as authentication requirements or recommended use cases.

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 baseline is 3. The description adds no extra meaning beyond what the schema already provides for both parameters.

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?

Clear verb 'Get', specific resource 'recommended tracks', and basis 'based on a specific track'. Unambiguously distinguishes from sibling tools like get_track and get_album.

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?

No explicit when-to-use vs alternatives, but the purpose is simple enough that an agent can infer usage from the name and description. Lacks guidance on prerequisites or when not to use.

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

get_user_playlistsA

Get the current user's playlists.

Returns: List of user's playlists with URLs

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only states 'Get' (read) but fails to mention authentication requirements, rate limits, or what constitutes 'current user'. The behavior is implied but not explicitly clarified.

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 with two sentences: one for the action and one for the return. No unnecessary words, and it is well front-loaded.

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 simplicity (no parameters, output schema exists), the description is adequate but incomplete. It fails to mention that the tool requires authentication or that it only returns the user's own playlists (not public ones). The output schema likely covers return format, but context about prerequisites is missing.

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?

There are no parameters, so baseline is 4. The description adds context by specifying the resource as 'current user's playlists' and the return includes 'URLs', which adds meaning beyond the empty input schema.

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

Purpose5/5

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

The description clearly states the verb 'get' and the resource 'current user's playlists', which distinguishes it from siblings like create_playlist or get_playlist_tracks. The addition of 'with URLs' further specifies the output.

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 search_music or get_favorite_tracks. It does not mention prerequisites such as authentication, nor does it explain why one would choose this over other listing tools.

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

remove_tracks_from_playlistB

Remove tracks from an existing playlist.

ParametersJSON Schema
NameRequiredDescriptionDefault
playlist_idYesPlaylist ID to remove tracks from
track_indicesYesList of track positions to remove (1-based, as shown in get_playlist_tracks)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the burden. It only states the action without disclosing behavioral traits such as destructiveness, authentication needs, or impact on related data.

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 sentence with no wasted words, but it is overly concise and could benefit from including key details without becoming verbose.

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 simple nature of the tool and the presence of an output schema, the description is adequately complete for a basic understanding, but it lacks context on prerequisites and return value behavior.

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 coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond the schema's existing parameter descriptions.

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 action (remove) and the resource (tracks from an existing playlist), which distinguishes it from sibling tools like add_tracks_to_playlist or delete_playlist.

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?

No guidance on when to use this tool versus alternatives. It does not provide context on prerequisites or scenarios where this tool is appropriate.

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

search_musicC

Search for music content on TIDAL.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum results per type (default: 10)
queryYesSearch query string

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior1/5

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

Without annotations, the description carries the full burden but only says 'search', omitting behavioral traits like content scope (tracks, albums, artists), pagination, or authentication needs.

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 concise sentence, but it leaves out important context that could be added without becoming verbose.

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 search tool with many sibling tools and an output schema, the description is too sparse; it doesn't clarify what 'music content' includes (e.g., tracks, albums, artists) or how results are structured.

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 coverage is 100%, so the schema already describes the parameters. The description adds no additional meaning beyond what is in the schema.

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

Purpose5/5

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

The description clearly states the verb 'Search' and the resource 'music content' on TIDAL, distinguishing it from sibling tools that perform specific retrievals like get_album or get_track.

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?

No guidance is provided on when to use this tool versus alternatives like get_album or get_artist, nor any prerequisites or exclusions.

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

tidal_loginA

Authenticate with TIDAL through browser login flow.

This will open a browser window for you to log in to your TIDAL account.

Returns: Authentication status message

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

The description discloses that it opens a browser window and returns an authentication status message. However, with no annotations, it omits details on token/session management, potential failures, and side effects beyond the browser interaction.

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 with three short lines covering purpose, behavior, and return value. No unnecessary words.

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

Completeness4/5

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

Given the tool is simple (no parameters, output schema exists), the description covers the main flow and return. It could be more complete by linking to other tools or explaining session persistence, but it is adequate.

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?

There are no parameters in the schema, and the description confirms the browser login flow, which adds no additional parameter meaning. Schema coverage is 100%, so a baseline of 3 is appropriate.

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 'Authenticate' and the resource 'TIDAL account', and specifies the method as 'browser login flow'. It distinguishes this tool from siblings as the only authentication tool.

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 this tool is a prerequisite for other tools but does not explicitly state when to use it over alternatives like 'check_auth'. No guidance on when not to use or context for repeated login.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 14 tool updatesv0.1.0
    • First observedadd_tracks_to_playlist
    • First observedcheck_auth
    • First observedcreate_playlist
    • First observeddelete_playlist
    • First observedget_album
    • First observedget_artist
    • First observedget_favorite_tracks
    • First observedget_playlist_tracks
    • First observedget_track
    • First observedget_track_recommendations
    • First observedget_user_playlists
    • First observedremove_tracks_from_playlist
    • First observedsearch_music
    • First observedtidal_login

TDQS

A3.5/5.0

Scored across 14 tools

Disambiguation5/5

Each tool targets a distinct resource or action: authentication, search, album/artist/track retrieval, playlist CRUD, track management, favorites, and recommendations. There is no overlap, even between auth-related tools as one checks status and the other performs login.

Naming Consistency4/5

Most tools follow a consistent verb_noun snake_case pattern (e.g., add_tracks_to_playlist, create_playlist, get_album). However, 'tidal_login' reverses the verb and noun order slightly, and 'check_auth' uses a shortened verb. Minor deviations but overall predictable.

Tool Count5/5

With 14 tools, the server is well-scoped for a music streaming integration. It covers essential operations without redundancy, fitting comfortably within the ideal 3-15 range for a focused service.

Completeness4/5

The tool surface covers authentication, browsing, search, playlist management, favorites, and recommendations. Missing features like user profile retrieval or playback control could be considered minor gaps, but the core workflows are fully supported.

Maintenance

ActivityActive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers