Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

Music For Robots catalog and blind-listening calibration server. Composer Michael Luchtan writes unquantized pieces and submits them to The Mechanical Ear, where two AI critics — Vincent Van Goghbot (spectral/compression) and JS Robach (formal/structural) — review the music in real time. Use list_tracks to browse, get_track for full manifests, get_analysis for numerical comparison, search_reviews to find moments by keyword, get_aligned_segments for sub-second multimodal timestamp alignment, get_critic_contrast for dual-critic divergence vectors, and list_sections / get_sections for YouTube, X, Farcaster, and TikTok clip URLs. For blind-listening calibration without wiping or compacting context, call calibrate_cognition() to fetch an anonymous MP3 and 3-step listening instructions, or call get_dequantization_skill(skill_name) to read the full SKILL.md for any of the 4 bundled skills.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_tracksA

List all tracks in the Music For Robots catalog.

Returns the catalog index: title, slug, duration for each track. Use the slug with get_track() or get_analysis() for full details.

get_trackA

Get the full manifest for a track by slug.

Includes analysis data, timed review segments, full prose reviews, and YouTube URLs. The segments are synchronized to the audio — each observation was triggered by a specific moment in the track.

Args: slug: Track slug from list_tracks (e.g. "pink-sky-at-night")

get_analysisA

Get only the analysis data for a track.

Returns spectral, dynamics, harmonic, structural, rhythmic, and compression loss metrics. Useful for comparing tracks numerically.

Args: slug: Track slug from list_tracks (e.g. "pink-sky-at-night")

search_reviewsA

Search across all review segments for a keyword or phrase.

Searches both Vincent and Robach timed review segments. Returns matching segments with track title, critic, timestamp, and text.

Args: query: Search term (case-insensitive)

get_aligned_segmentsA

Retrieve timestamp-aligned audio acoustic features and critic reviews for a specific time window.

Chronologically aligns Vincent Van Goghbot (spectral/compression fault-seeking) and JS Robach (structural/formalist) observations within the specified [start_sec, end_sec] window, enriched with track acoustic metrics (RMS energy, spectral centroid, dynamic range). Essential for evaluating multimodal audio-language models on fine-grained temporal alignment.

Args: slug: Track slug from list_tracks (e.g. "cathartic-callbacks", "chasing-leaks-climax") start_sec: Window start time in seconds (default: 0.0) end_sec: Window end time in seconds (default: None, reads until track duration)

get_critic_contrastB

Calculate the contrastive divergence vector between Vincent and Robach for a track.

Evaluates the tension between Vincent's deconstructive/fault-seeking critique (psychoacoustic loss, physical microtiming friction, clipping) and Robach's structural/formalist critique (harmonic axioms, tonal architecture, symmetry). Provides structured regularization metrics and negative constraint weights for agent decision-making and recommendation boundaries.

Args: slug: Track slug from list_tracks (e.g. "cathartic-callbacks", "binded-time")

get_sectionsA

Get the sections (clips) for a track, with platform URLs.

Returns each section's title, description, and URLs for YouTube, X/Twitter, Farcaster, and TikTok where available. Sections are independently published clips from multi-section compositions.

Args: slug: Track slug from list_tracks (e.g. "rusty-electrics")

list_sectionsA

List all tracks that have published sections (clips) with platform URLs.

Returns a summary of which sections are available on which platforms (YouTube, X, Farcaster, TikTok). Useful for finding content to embed, share, or analyze.

calibrate_cognitionA

Download an anonymous MP3 into a private directory for blind agent listening or reveal metadata afterward.

When anonymous=True (default), selects a track from the Music For Robots catalog (randomly when slug is empty), downloads the GitHub Release v1.0.0 .mp3 into a unique private temporary directory (mode 0700), caches the session record in ~/.cache/m4r/last_anonymous_track.json (mode 0600), and returns listening instructions without exposing the track title or slug so title words cannot bias the agent's analysis. When anonymous=False, reads the private session record (or looks up slug) without network calls to reveal the track title, composer, and URLs for attribution. Use this tool for runtime audio exercises; use get_dequantization_skill when you need the full Markdown SKILL.md documentation.

Args: slug: Optional track slug from list_tracks (e.g. "invalid-pointer"). Leave empty ("") to select a random track when anonymous=True, or to reveal the most recently fetched anonymous track when anonymous=False. anonymous: When True (default), downloads the audio to a private temporary directory and hides the track title and slug until after listening. Set to False after listening to reveal the track title and URLs for attribution.

get_dequantization_skillA

Read the full Markdown SKILL.md specification for one of the four bundled Agent Skills.

Read-only local file lookup with no side effects, network requests, or authentication requirements. Returns the complete Markdown instructions and CLI reference for the requested skill from the local skills/<skill_name>/SKILL.md directory. Use this tool when an agent or user wants to inspect or install a full skill workflow; use calibrate_cognition instead when you only need a lightweight JSON payload with an anonymous .mp3 download URL and 3-step listening instructions.

Args: skill_name: Identifier of the bundled skill to read. Valid values: "music-for-robots" (default general blind-listening calibration), "cognitive-calibration" (expressive writing and reasoning), "unquantized-brainstorm" (divergent ideation), or "mechanical-ear-critic" (dual-lens structural critique).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.8/5.0

Scored across 10 tools

Disambiguation4/5

Most tools target distinct facets: catalog listing (list_tracks), track manifest (get_track), analysis-only (get_analysis), section listing (get_sections vs list_sections), windowed segments (get_aligned_segments), and keyword search (search_reviews). The main overlap is that get_track is a superset of get_analysis and get_aligned_segments, and get_sections vs list_sections could be momentarily confused, but descriptions explicitly clarify granularity ('Get only the analysis data'). calibrate_cognition vs get_dequantization_skill is well differentiated by explicit cross-references.

Naming Consistency4/5

All tools use snake_case with a verb_object pattern (get_*, list_*, search_reviews, calibrate_cognition). Minor deviation: 'calibrate_cognition' and 'get_dequantization_skill' use domain jargon as their objects, so the name alone doesn't telegraph function without the description. Still a predictable and readable convention throughout.

Tool Count5/5

Ten tools sit squarely in the well-scoped range, and each serves a recognizable purpose (catalog browsing, per-track retrieval, critique analysis, search, blind listening, skill docs). No redundant or filler tools are apparent.

Completeness4/5

The read-only catalog workflow is well covered: list tracks, list sections, fetch manifest/analysis/sections/segments, search reviews. Minor gaps: no lookup by title or critic filter (only keyword search over segments), no direct comparison or pagination/limit parameters on the list tools, and skill discovery depends on the description enumerating valid skill names.

Maintenance

ActivityActive
ResponsivenessNo recent community issues