Skip to main content
Glama

expand_mood_to_queries

Convert free-text listening moods into search terms like genres, keywords, and terms to avoid. Uses host model sampling or a static fallback for Spotify search.

Instructions

Turn a free-text listening mood into search terms (genres, keywords, terms to avoid) for search. Uses the host model via MCP sampling when the host advertises the sampling capability; otherwise returns a built-in static map. Calls no Spotify endpoint and changes nothing. A model reply that cannot be parsed returns isError after one retry — it is never replaced by a guess.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
moodYesThe mood or vibe to expand, in free text (e.g. "rainy afternoon", "late night coding")
max_tokensNoToken ceiling for the sampling call. Default: 512. Ignored on the static-map path
response_formatNo'concise' = human prose, 'detailed' = more fields in prose, 'json' = raw API objectconcise

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv3.0.1

TDQS

A4.1/5.0
Behavior5/5

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

Goes well beyond the lone destructiveHint=false annotation: it discloses the sampling path vs. static-map fallback, that no Spotify endpoint is called, that nothing is mutated, and the exact failure contract (isError after one retry, never a guess). This is rich, high-value behavioral disclosure.

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?

Four front-loaded sentences, each carrying distinct information (purpose, execution path, side-effect profile, error semantics). Slightly dense but no wasted text.

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?

With no output schema and a rich response_format parameter, the description carries the return-value burden and does describe the output fields. A brief note on which format actually gets returned on the static-map path would close the last gap.

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 mood, max_tokens and response_format are fully documented in the schema. The description adds the output vocabulary but no parameter-specific semantics beyond the schema, making the baseline 3 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?

States a specific verb and resource ('Turn a free-text listening mood into search terms') and enumerates the output shape (genres, keywords, terms to avoid). This is a unique utility with no equivalent among the siblings, so it is trivially distinguishable.

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 phrase 'for search' implies it is a pre-step to searching, but the description never states when to use this versus calling search/search_deep directly, nor any exclusions. Usage is implied rather than directed.

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

Deploy Server

Other Tools