TIDAL MCP: My Custom Picks
Server Quality Checklist
Latest release: v1.0.0
- Disambiguation5/5
Each tool has a clearly distinct purpose with no overlap: create_tidal_playlist and delete_tidal_playlist handle playlist lifecycle, get_favorite_tracks and get_playlist_tracks retrieve different track sources, get_user_playlists lists playlists, recommend_tracks provides recommendations, and tidal_login handles authentication. The descriptions reinforce these distinct roles, making misselection unlikely.
Naming Consistency5/5All tools follow a consistent verb_noun pattern with snake_case: create_tidal_playlist, delete_tidal_playlist, get_favorite_tracks, get_playlist_tracks, get_user_playlists, recommend_tracks, and tidal_login. The naming is predictable and readable throughout the set, with no deviations in style or convention.
Tool Count5/5With 7 tools, the count is well-scoped for managing TIDAL playlists and tracks. Each tool earns its place by covering essential operations like authentication, playlist CRUD, track retrieval, and recommendations, without being overly sparse or bloated for the domain.
Completeness4/5The tool set provides strong coverage for playlist management (create, delete, list, view tracks) and track operations (favorites, recommendations), with authentication included. A minor gap exists in updating existing playlists (e.g., add/remove tracks or edit metadata), but agents can work around this by recreating playlists as needed.
Average 4.3/5 across 7 of 7 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.jsonto 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
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions authentication requirements ('Returns an error message if not authenticated') and potential failure modes ('if retrieval fails'), which adds useful context. However, it lacks details on rate limits, pagination, or data freshness, leaving gaps for a tool that accesses 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.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (purpose, usage guidelines, args, returns) and front-loaded key information. It avoids redundancy, but the usage examples could be more concise (e.g., listing multiple similar queries). Overall, most sentences add value, though slight trimming is possible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and a simple input schema, the description is moderately complete. It covers purpose, usage, parameters, and basic returns/errors, but lacks details on output structure (beyond a high-level mention), authentication flow, or error handling specifics. For a data retrieval tool, this leaves some operational gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful semantics for the single parameter 'limit', explaining it's the 'Maximum number of tracks to retrieve' with a default of 20 and a note that it 'should be large enough by default unless specified otherwise.' This compensates for the 0% schema description coverage by clarifying the parameter's role and default behavior beyond the schema's basic type and title.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Retrieves tracks from the user's TIDAL account favorites.' It specifies the verb ('retrieves'), resource ('tracks'), and source ('user's TIDAL account favorites'), making the function unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'get_playlist_tracks' or 'recommend_tracks' beyond the 'favorites' focus.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidelines with a dedicated section listing example user queries (e.g., 'What are my favorite tracks?', 'Show me my TIDAL favorites'). It clearly indicates when to use this tool for viewing saved/favorite tracks, though it doesn't specify when not to use it or mention alternatives like 'get_playlist_tracks' for non-favorite content.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/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 clearly indicates this is a destructive operation ('deletes a specific playlist'), specifies authentication requirements, and hints at the return format ('dictionary containing the status'). However, it lacks details on error handling, rate limits, or irreversible consequences, which are important for a deletion tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (purpose, usage guidelines, behavioral notes, parameters, returns) and avoids redundancy. However, the bullet points for usage scenarios are slightly verbose; a more concise phrasing could maintain clarity while reducing length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with no annotations and no output schema, the description is moderately complete. It covers purpose, usage, authentication, and parameters adequately, but lacks details on return value structure, error cases, or confirmation prompts, which are critical for safe operation. It meets minimum viability but has gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description must compensate. It adds meaningful context for the single parameter ('playlist_id: The TIDAL ID of the playlist to delete'), clarifying its purpose and requirement. While it doesn't detail format constraints (e.g., ID structure), it provides essential semantics beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Deletes') and resource ('a TIDAL playlist by its ID'), distinguishing it from sibling tools like create_tidal_playlist or get_user_playlists. It avoids tautology by explaining what deletion entails rather than just restating the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage scenarios with bullet points (e.g., 'Delete my playlist', 'Remove a playlist'), includes a clear prerequisite ('user must be authenticated with TIDAL first'), and distinguishes this tool from non-deletion alternatives among siblings. It gives concrete when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly describes this as a write operation ('creates a new playlist', 'adds the specified tracks'), mentions authentication requirements, provides detailed guidance on naming conventions and post-processing steps, and explains what happens after creation. It doesn't mention error conditions or rate limits, but covers most behavioral aspects well for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness3/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (purpose, usage guidelines, naming convention, processing instructions, parameters, returns) but is quite lengthy. While most content is valuable, some sections like the detailed naming convention guidance and post-processing steps could be more concise. The core purpose is front-loaded, but the overall length suggests room for tighter editing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given 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 provides substantial context: clear purpose, usage guidelines, authentication requirements, parameter semantics, naming conventions, and post-processing instructions. It doesn't describe the return dictionary structure or error conditions, but covers most essential aspects given the complexity of creating a playlist with tracks.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate for the lack of parameter documentation in the schema. It provides clear semantic explanations for all three parameters: title ('name of the playlist'), track_ids ('List of TIDAL track IDs to add'), and description ('Optional description'). The description adds significant value beyond the bare schema, though it doesn't specify format requirements for track IDs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verb ('creates') and resource ('new TIDAL playlist with the specified tracks'), distinguishing it from sibling tools like delete_tidal_playlist or get_user_playlists. It explicitly mentions adding tracks to the playlist, which differentiates it from tools that only retrieve or modify existing playlists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidelines with a dedicated 'USE THIS TOOL WHENEVER' section listing multiple user request patterns, including specific phrases like 'Create a playlist with these songs' and 'Make a TIDAL playlist'. It also mentions prerequisites ('user must be authenticated with TIDAL first') and references sibling tools for context ('first check the user's existing playlists using get_user_playlists()').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: it retrieves data (read operation), returns playlists sorted by last updated date (most recent first), and implies it's a safe read-only function. However, it doesn't mention potential limitations like rate limits, authentication requirements, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness3/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately front-loaded with the core purpose, but includes extensive usage examples and processing instructions that could be streamlined. While informative, some sections (like the detailed 'When processing the results' list) might be better handled by the agent's general capabilities rather than tool documentation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no annotations, no output schema), the description provides good contextual completeness. It explains what the tool does, when to use it, and what to expect from the output. The main gap is the lack of output schema, but the description compensates by describing the return format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does 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 baseline is 4. The description appropriately doesn't discuss parameters since none exist, focusing instead on the tool's purpose and output behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('fetches') and resource ('user's playlists from their TIDAL account'), distinguishing it from sibling tools like get_favorite_tracks or get_playlist_tracks. It precisely defines what the tool does without being vague or tautological.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool with multiple example user queries (e.g., 'Show me my playlists', 'List my TIDAL playlists'). It clearly distinguishes this as the tool for viewing/list operations versus sibling tools for creation, deletion, or other playlist-related actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: it opens a browser window (interactive user flow), describes the authentication process, and mentions what gets returned. However, it doesn't cover potential failure modes, timeout behavior, or whether authentication persists across sessions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly sized with three sentences that each earn their place: first states the purpose and method, second explains the user interaction, third describes the return value. It's front-loaded with the core functionality and wastes no words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given 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 provides good coverage of what the tool does and what it returns. However, it could be more complete by addressing error cases, whether authentication is persistent, and how this tool relates to the sibling tools that presumably require authentication.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0 parameters and 100% schema coverage, the baseline would be 4. The description appropriately doesn't discuss parameters since there are none, and instead focuses on the tool's behavior and return values, which is the correct approach for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Authenticate with TIDAL') and method ('through browser login flow'), distinguishing it from all sibling tools which perform data operations rather than authentication. It precisely communicates what the tool does without being vague or tautological.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly indicates this should be used for initial authentication ('Authenticate with TIDAL'), but doesn't explicitly state when NOT to use it or mention alternatives. It provides clear context about the authentication flow but lacks explicit guidance about prerequisites or when to choose this over other authentication methods.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by disclosing key behaviors: it's a read operation (retrieves), requires authentication (user's TIDAL account), has a default limit (100 tracks), and returns structured data. However, it doesn't mention potential rate limits, error conditions, or pagination for large playlists, leaving some behavioral aspects uncovered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and well-structured with clear sections: purpose statement, usage guidelines, prerequisites, processing instructions, and parameter explanations. While slightly verbose, every section adds value, and the information is front-loaded with the core purpose first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter read tool with no annotations or output schema, the description provides comprehensive context: clear purpose, detailed usage scenarios, behavioral expectations, parameter explanations, and processing guidance. The main gap is the lack of output format details beyond 'a dictionary,' but given the tool's relative simplicity, this is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates well by explaining both parameters: playlist_id is required and can be obtained from get_user_playlists(), and limit has a default of 100. It adds meaningful context about parameter relationships and usage that the schema alone doesn't provide, though it could specify format constraints for playlist_id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('retrieves all tracks') and resource ('from a specified TIDAL playlist'), distinguishing it from siblings like get_user_playlists (which lists playlists) and get_favorite_tracks (which retrieves favorite tracks). The purpose is unambiguous and well-defined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage scenarios with six bulleted examples of user requests that warrant using this tool. It also specifies prerequisites (playlist_id must be obtained from get_user_playlists) and distinguishes this tool from alternatives by focusing on playlist tracks rather than playlist metadata or other track types.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: it retrieves recommendations from TIDAL, uses seed tracks (either provided IDs or favorites), filters results based on criteria, and returns a dictionary with seed and recommended tracks. However, it lacks details on rate limits, authentication needs, or error handling, which are important for a tool interacting with an external service.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness3/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a clear purpose and usage guidelines, but it becomes overly verbose with 10 detailed steps for processing results (e.g., formatting, grouping, explanations). While some of this is helpful, much of it (like instructions to include URLs or avoid duplicates) is redundant or better suited for agent guidelines rather than tool description, reducing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (4 parameters, no annotations, no output schema), the description is mostly complete. It covers purpose, usage, parameters, and return structure (a dictionary with seed and recommended tracks). However, it lacks details on the output format (e.g., keys in the dictionary, data types) and error cases, which are important for a tool with no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description must fully compensate. It provides detailed semantics for all four parameters: 'track_ids' as optional seeds or defaults to favorites, 'filter_criteria' for preferences like 'relaxing music,' 'limit_per_track' as maximum recommendations per track with a default of 20, and 'limit_from_favorite' as maximum favorite tracks to use as seeds with a default of 20. This adds significant value beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'recommends music tracks based on specified track IDs or can use the user's TIDAL favorites if no IDs are provided.' It specifies the verb ('recommends'), resource ('music tracks'), and distinguishes from siblings like 'get_favorite_tracks' or 'create_tidal_playlist' by focusing on generating recommendations rather than retrieving or managing existing content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly lists scenarios for using the tool (e.g., 'Music recommendations,' 'Track suggestions,' 'What should I listen to?'), provides clear alternatives (using track IDs vs. favorites as seeds), and includes exclusions (e.g., not including seed tracks in recommendations). It also specifies when to use it versus other tools by mentioning TIDAL-specific contexts.
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
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/mikeysrecipes/tidal-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server