Skip to main content
Glama

FreqBlog Music Metadata

Search Tracks by Description

search_by_description
Read-only

Find catalog tracks from a plain-language description of how they sound — e.g. "melancholic piano, slow", "dark ambient strings", "upbeat acoustic guitar, fast".

Understands instruments and voice (piano, guitar, acoustic guitar, violin, cello, strings,
harp, flute, sax, brass, organ, choir, a cappella, rap, 808/drum machine, orchestral),
mood (sad/melancholic, dark/eerie, angry, ambient, happy/upbeat, chill/relaxed),
character (acoustic, instrumental, with vocals, energetic, soft, danceable), tempo
(slow <= 95 BPM, mid-tempo, fast >= 125 BPM, applied as filters) and any catalog genre.
Sound words are scored from audio analysis of each track, not titles; every word has to
hold. The response's `description.understood` shows how each word was read and
`ignored_words` lists words that were NOT used — rephrase those. Each result has `match`
(0-1) and a per-word `matched` breakdown. Costs 1 quota unit.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "q": "<q>"
    },
    "name": "search_by_description"
  }
}

Input Schema

NameRequiredDescriptionDefault
qYesPlain-language description, e.g. 'melancholic piano, slow' or 'chill acoustic guitar'.
keyNoOptional: only these keys — Camelot ('8A'), Open Key ('1m') or names.
maxNoOptional HARD upper bounds, e.g. {'tempo': 128}.
minNoOptional HARD lower bounds, e.g. {'tempo': 120}. Attributes: acousticness, danceability, duration_ms, energy, loudness, tempo, valence.
genreNoOptional: only these catalog genres (comma list), in addition to any genre named in q. Unknown names in a list are skipped and listed in filters.ignored with close matches; only a list where every name is unknown is rejected.
limitNoTracks per page (default 20).
offsetNoSkip this many tracks for the next page; offset + limit <= 500.
max_yearNoOptional: latest release year.
min_yearNoOptional: earliest release year.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / genre / description
      Previous value: -"Optional: only these catalog genres (comma list), in addition to any genre named in q."New value: +"Optional: only these catalog genres (comma list), in addition to any genre named in q. Unknown names in a list are skipped and listed in filters.ignored with close matches; only a list where every name is unknown is rejected."
  2. Added

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already cover safety (readOnly, non-destructive, openWorld), so the bar is low, yet the description still adds substantive behavior: conjunctive matching ('every word has to hold'), scoring derived from audio analysis rather than metadata, a 1 quota-unit cost, and the presence of `understood`/`ignored_words`/`match` diagnostics. Nothing here contradicts the annotations.

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?

Front-loaded with purpose and examples before vocabulary and response details, and every sentence carries usable information. The middle vocabulary paragraph is a single run-on sentence with heavy parenthetical lists, which is dense but still scannable.

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

Completeness5/5

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

For a 9-parameter search tool with full schema coverage and an output schema, this is more than sufficient: it explains how matching works, what the diagnostics fields mean, what to do about unmatched words, and the quota cost. An agent could invoke it and interpret results correctly without further context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3; the description earns above that by defining the accepted vocabulary for `q` (instruments, moods, character traits) and the exact tempo semantics — slow <= 95 BPM, fast >= 125 BPM — which the schema does not convey. It stays silent on `key`, `min`/`max`, `limit`/`offset`, and year bounds, though the schema documents those adequately.

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 ('Find catalog tracks') plus the distinctive input modality ('plain-language description of how they sound'), backed by three concrete example queries. The line 'scored from audio analysis of each track, not titles' separates it from keyword/title search siblings without naming them.

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

Usage Guidelines4/5

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

Gives clear conditions for use through worked examples and explains the recovery path when words are dropped ('rephrase those' via ignored_words). However, it never names an alternative — it does not say to use search_catalog for exact titles or find_tracks_by_bpm when the BPM range is known numerically, which is a real overlap given tempo words act as hard filters.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources