Mixx-DJ-MCP
Exports separated stems from the DJ decks into DaVinci Resolve's Fairlight page for post-production and editing of recorded sets.
Used for AI-driven skin design, generating colour palettes applied to Mixxx video skins via the Inkscape integration.
Cross-references a physical vinyl collection against a digital Plex music library, letting the assistant match records to files available for playback.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Mixx-DJ-MCPLoad Daft Punk on deck 2, sync it, cue the drop, then fade in on the next beat."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
One command to start
uv sync && uv run uvicorn mixx_dj_mcp.server:app --port 11116Configure Mixxx OSC once (one minute): Preferences > MIDI/OSC > Enable OSC, set out 11118, in 11119, send to 127.0.0.1, restart. Done.
Your AI assistant (Claude, Cursor, opencode) can now control your decks.
Related MCP server: reaper-mcp
What it does
You say | The AI does |
"Play deck 2" |
|
"Find some 128 BPM tech house" |
|
"Add reverb to the outgoing track" |
|
"Plan a 30-min drum & bass set" |
|
"Record this set" |
|
"Analyse this track's key" |
|
"Show me my most-played tracks" |
|
"Transition with an echo out" |
|
Tools at a glance
Tool | What it controls |
| Play/pause, load, cue, loops, sync, rate, scratch, hotcues, quantize, keylock — plus video |
| Search, browse crates/playlists, BPM/key metadata |
| Effect chains, parameters, quick effects, super knob |
| Crossfader, EQ, gain, headphone cue, talkover, mic |
| BPM detection, musical key (Krumhansl-Schmuckler), energy, cue suggestions |
| Demucs stem separation, sampler loading, stem-aware mixing |
| AI-suggested transitions, 8 effect types, auto-crossfader |
| Autonomous DJ — plan sets, perform transitions, review |
| Record, replay, and export DJ sets as OSC streams |
| Play history, style profile, track suggestions |
| LLM-generated smart crates by BPM/key/genre |
| Harmonic mixing sequences, energy curve planning |
| List, apply, create video skins, AI palette generation |
| OCR catalog, AI gig picker, Plex crossref |
| USB auto-detect, install mappings |
| Export stems to DaVinci Resolve, Reaper |
Prefab cards |
|
Quick links
For... | Read |
Installing the server, webapp, NSIS installer, or MCPB | |
Status & backlog | |
Full tool reference with parameters, returns, and examples | |
Using video — requires the mixxxxx fork of Mixxx | |
AV orchestrator (mixxxxx hub, NDI, Resolume, OBS) |
|
NDI (network video from mixxxxx) |
|
Project status & backlog | |
AI-powered transitions between decks | |
Architecture — how the OSC bridge, REST API, and webapp work | |
Beginner's guide to DJing with Mixxx | |
Comparing Mixxx to other DJ software | |
Algoriddim djay feature parity | |
Mixxx OSC setup and address reference |
Video DJing
Mixx-DJ-MCP supports the mixxxxx video fork — a modified Mixxx build that adds FFmpeg video playback, per-deck video widgets, and fullscreen projector output alongside the standard audio engine.
mixxxxx on GitHub · docs/MIXXX_VIDEO.md
Ports
Port | What |
11116 | Backend REST API + MCP transport |
11117 | React webapp (Vite) |
11118 | OSC feedback from Mixxx |
11119 | OSC commands to Mixxx |
Fleet integrations
Mixx-DJ-MCP is a Fleet Audio Hub — it connects to other MCP servers for a unified DJ ecosystem:
Server | Integration |
| Cross-reference vinyl with digital library |
| AI music generation loaded direct to decks |
| Sound effects triggered during live sets |
| Real-time video effects on video output |
| External stem separation engine |
| Export stems to Fairlight for post-production |
| Export stems to Reaper DAW |
| AI skin colour palette generation |
| Voice-controlled DJing ("Hey Mixxx, load deck 2...") |
License
MIT — Sandra Schipal
Vinyl not included. Mixxx not included. Bad music taste is your own.
Available Tools
19 toolsmixx_ai_setB
AI Autonomous Mix Agent using MCP sampling.
Uses ctx.sample() for autonomous reasoning about set structure, track selection, and transition timing. Falls back to rule-based execution when sampling is unavailable.
PORTMANTEAU PATTERN: Consolidates AI set planning and performance.
SUPPORTED OPERATIONS:
plan: Generate a structured DJ set plan (BPM curve, energy arc, genre flow)
suggest_next: Given current deck state, suggest the next track and transition
perform_transition: Execute an AI-chosen transition between two decks
review_set: Analyze a completed or hypothetical set for improvement ideas
Examples: mixx_ai_set("plan", style="drum and bass", duration_minutes=30) mixx_ai_set("suggest_next", deck_a=1) mixx_ai_set("perform_transition", deck_a=1, deck_b=2)
| Name | Required | Description | Default |
|---|---|---|---|
| style | No | tech house | |
| deck_a | No | ||
| deck_b | No | ||
| end_bpm | No | ||
| operation | Yes | ||
| start_bpm | No | ||
| energy_curve | No | build_peak_cool | |
| duration_minutes | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose meaningful behavior: it uses ctx.sample() for autonomous reasoning and falls back to rule-based execution when sampling is unavailable. However, it says nothing about permissions, whether perform_transition mutates live deck state irreversibly, or any rate/availability constraints, which matters for a tool that executes transitions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The layout is well-organized and front-loaded, with the core purpose stated first, followed by an operation list and compact examples. It is slightly verbose with the header labels, but every block adds navigational value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained, and the operation semantics are reasonably covered. But with eight parameters at 0% schema coverage and no annotations for a tool that executes live transitions, the definition leaves real gaps an agent would need filled.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain all eight parameters, yet the examples only demonstrate style, duration_minutes, deck_a, and deck_b. start_bpm, end_bpm, and energy_curve are never mentioned, and their semantics (e.g. 'build_peak_cool') are left entirely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific tool ('AI Autonomous Mix Agent') and enumerates four concrete operations (plan, suggest_next, perform_transition, review_set) with one-line meanings, so the agent knows exactly what it does. It does not, however, explicitly differentiate itself from similar siblings such as mixx_set or mixx_transition, so the AI/non-AI boundary is only implied.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The operation list implies when each mode is appropriate and the examples show invocation patterns, which is useful guidance. But there is no explicit when-to-use/when-not-to-use against the closely related siblings mixx_set and mixx_transition, leaving the routing decision to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mixx_analyzeB
Audio analysis engine using librosa.
PORTMANTEAU PATTERN: Consolidates audio analysis operations.
SUPPORTED OPERATIONS:
track: Analyze a single audio file. Returns BPM, key, Camelot, energy, structure.
batch_status: Show how many tracks are analyzed vs pending.
suggest_cues: Suggest hotcue positions based on track structure.
Returns: Dict with analysis results
Examples: mixx_analyze("track", path="C:/Music/track.mp3") mixx_analyze("batch_status")
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ||
| limit | No | ||
| operation | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden: it discloses no side effects. Crucially, 'suggest_cues' may persist hotcues to the track (as 'suggest' implies), yet it is not stated whether this mutates the library or is purely advisory, and no cost/weight warning is given for heavy librosa analysis. It does confirm outputs and operation scoping, which is partial credit, but the mutation ambiguity is a real gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Sectioned into pattern, operations, returns, and examples, so the agent can scan operation options quickly and examples are front-loaded for the core use case. The 'Returns: Dict with analysis results' line is filler given an output schema exists, a minor waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values needn't be explained, and per-operation result fields are summarized well. However, for a 3-operation portmanteau with 3 shared parameters, the missing operation-to-parameter mapping and the undisclosed write behavior of suggest_cues leave meaningful ambiguity for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It covers the operation enum thoroughly via SUPPORTED OPERATIONS and demonstrates the path argument in examples, but omits `limit` entirely (which presumably bounds batch_status/suggest_cues) and never states which parameters apply to which operation, leaving the path default and limit scope undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete domain (audio analysis via librosa) and enumerates three distinct operations with the outputs each produces (BPM, key, Camelot, energy, structure), so an agent knows exactly what the tool computes. It does not, however, explicitly differentiate itself from sibling introspection tools like mixx_library or mixx_stems.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
By listing operations with result summaries, the description implies which operation fits which need, but it gives no explicit when-to-use/when-not guidance and never states how this differs from siblings that also touch track metadata. The examples show invocation shape but not selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mixx_controllerB
DJ controller auto-detection and mapping management.
SUPPORTED OPERATIONS:
detect: Scan USB for connected DJ controllers
install: Install a Mixxx mapping for a detected controller
list: List all installed Mixxx controller mappings
status: Show current controller configuration
download: Download community mappings from GitHub
Returns: Dict with operation result
Examples: mixx_controller("detect") mixx_controller("list") mixx_controller("install", mapping_name="Pioneer-DDJ-400")
| Name | Required | Description | Default |
|---|---|---|---|
| pid | No | ||
| vid | No | ||
| operation | Yes | ||
| mapping_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It hints at network access ('Download community mappings from GitHub') but says nothing about permissions, whether 'install' overwrites existing mappings, or side effects of download/install. For a tool with mutating operations, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose followed by a structured operations list and examples; most sentences earn their place. Slightly verbose in the Returns/Examples block but well organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained, and the examples aid invocation. But with zero annotations and 0% parameter coverage, the definition leaves 'pid'/'vid' and mutation-side-effect behavior unaddressed, so it is only adequate for a mutation-capable tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, yet it never explains what 'pid' and 'vid' mean or how they relate to detect/install. The example only implicitly shows 'mapping_name', leaving half the parameters undocumented in both schema and prose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('DJ controller auto-detection and mapping management') and enumerates all five operations with one-line definitions. An agent can immediately tell this is the controller-management tool, distinct from deck/mixer/effects siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The per-operation blurbs imply when each mode applies (detect before install, download for community mappings), giving contextual guidance. However, there is no explicit when-to-use-this-vs-alternatives guidance against the many mixx_* siblings, and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mixx_crateA
Smart crate management for Mixxx.
PORTMANTEAU PATTERN: Consolidates crate creation and management.
SUPPORTED OPERATIONS:
create: Create a crate from a natural language prompt (requires name, prompt)
list: List all crates in the library
delete: Delete a crate by name (requires name)
add_track: Add currently playing track on deck to a crate (requires name, deck)
create_agentic: Create a self-curating crate with an LLM rule (requires name, rule) Rules: "126-132 BPM, Dm or Em, 4+ stars, genre:tech house" The crate auto-updates based on the rule when the server starts.
Return Format
{"success": bool, "message": str, "data": dict}
Examples
mixx_crate("create", name="Peak Time", prompt="tech house 124-128 BPM D minor")
mixx_crate("list")
mixx_crate("add_track", name="Favorites", deck=1)
mixx_crate("create_agentic", name="Morning Warmup",
rule="126-132 BPM, Dm or Em, 4+ stars, genre:tech house")| Name | Required | Description | Default |
|---|---|---|---|
| deck | No | ||
| name | No | ||
| rule | No | ||
| prompt | No | ||
| update | No | manual | |
| operation | Yes | ||
| max_tracks | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose a genuinely useful behavioral trait — create_agentic crates auto-update on server start — and lists the return shape, but it never warns that delete is destructive/irreversible, nor mentions permissions or side effects on the running library.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well structured with headers, front-loaded by the portmanteau pattern, and every operation line earns its place. Slight redundancy in stating both a per-operation requirement list and full example invocations keeps it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter portmanteau with an output schema (so return values need not be explained), the description covers operations, required args, rule syntax, and examples. The gaps are the undocumented update/max_tracks parameters and the absence of any delete-safety warning.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it does explain name, prompt, deck, rule, and the operation enum through the per-operation requirements. However, update (default 'manual') and max_tracks (default 50) are undocumented in both schema and description, leaving two parameters opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (crates) and enumerates five concrete operations with their required inputs, so an agent knows exactly what the tool does. It does not, however, differentiate itself from plausible siblings like mixx_library or mixx_ai_set, which is the only thing separating it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Each operation carries its own routing context (e.g., add_track needs a deck, create_agentic needs a rule), which effectively tells the agent which mode to pick. There is no explicit 'use X instead of Y' guidance relative to sibling tools, so it stops short of 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mixx_dawA
Cross-connection between Mixx-DJ-MCP and DAWs (Fairlight, Reaper).
PORTMANTEAU PATTERN: Consolidates DAW export operations.
SUPPORTED OPERATIONS:
export_stems: Copy stem WAVs to a DAW project directory
export_session: Write a session metadata JSON for DAW import
send_to_fairlight: Send stems to DaVinci Resolve's Fairlight page via REST API
send_to_reaper: Send stems to Reaper via reaper-mcp REST API (POST /api/v1/project/import_media)
resolume_sync: Send deck BPM to Resolume via OSC (canonical composition addresses, port 7000)
visuals_connect: Start continuous audio-reactive visual sync to Resolume
visuals_trigger: Fire a one-shot visual effect (strobe, pulse, color_cycle, wave, particles)
Returns: Dict with export result and file paths
Examples: mixx_daw("export_stems", output_dir="D:/Projects/Gig/Stems") mixx_daw("export_session", session_name="Friday Gig", source_dir="D:/Stems") mixx_daw("send_to_fairlight", source_dir="D:/Stems", session_name="Friday Gig")
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | auto | |
| stems | No | ||
| deck_a | No | ||
| deck_b | No | ||
| effect | No | ||
| intensity | No | ||
| operation | Yes | ||
| output_dir | No | ||
| source_dir | No | ||
| target_bpm | No | ||
| session_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does meaningfully disclose behavior beyond the schema: transport mechanisms (REST endpoints, OSC on port 7000), the contrast between continuous sync (visuals_connect) and one-shot effects (visuals_trigger), and that exports copy files to disk. It stops short of stating overwrite behavior, required permissions, or whether DAW targets must be running.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is front-loaded with the purpose, then a scannable operation list, returns, and examples. Section headers keep it navigable for a 7-operation tool, though the 'PORTMANTEAU PATTERN' line adds little value and the Returns sentence is redundant given the output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a consolidated tool with 11 parameters, 7 operations, and no annotations, the critical missing piece is a per-operation parameter mapping that tells the agent which inputs are required for each branch. Output schema existence excuses the brief Returns note, but the lack of usage guidance and sibling differentiation leaves the definition only partially complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 11 parameters, so the description must compensate. It clarifies output_dir, source_dir, and session_name through examples and implicitly maps deck/BPM/effect parameters to the Resolume and visuals operations, but leaves mode, stems, deck_a, deck_b, effect, and intensity undefined and never states which parameters apply to which operation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete domain (bridging Mixx-DJ-MCP to DAWs) and enumerates all seven operations with a specific effect for each, so an agent knows exactly what the tool can do. It does not, however, distinguish itself from siblings like mixx_stems, which may overlap on stem handling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the operation list and three examples hint at when each branch is used, but there is no explicit when-to-use/when-not-to-use guidance and no routing to sibling tools such as mixx_stems for stem extraction. The agent must infer selection criteria from the operation names and examples.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mixx_deckA
Comprehensive deck control for Mixxx.
PORTMANTEAU PATTERN: Consolidates all deck playback and transport controls.
SUPPORTED OPERATIONS:
play_pause: Toggle play/pause on deck
stop: Stop playback completely
load: Load a track to deck (requires track_path)
cue_set: Set cue point at current position
cue_play: Play from cue point
loop_activate: Toggle loop on/off (requires enable)
loop_beat: Set loop of specified beats (requires beats)
beatloop: Same as loop_beat
rate_set: Set playback rate/BPM adjustment (requires value, -1.0 to 1.0)
rate_temp: Temporary pitch bend (requires value, seconds)
sync_enable: Toggle sync lock (requires enable)
sync_leader: Set deck as sync leader (requires enable)
seek: Seek to position in seconds (requires value)
scratch: Enable/disable scratch mode (requires enable)
hotcue_activate: Activate hotcue by number (requires hotcue)
quantize: Toggle quantize mode (requires enable)
keylock: Toggle keylock (requires enable)
video_enable: Toggle video playback for deck (requires enable)
video_fullscreen: Toggle video fullscreen output (requires enable)
Returns: Dict with operation result
Examples: mixx_deck("play_pause", deck=1) mixx_deck("load", deck=1, track_path="C:/Music/track.mp3") mixx_deck("rate_set", deck=1, value=0.05) mixx_deck("loop_beat", deck=1, beats=8) mixx_deck("sync_enable", deck=2, enable=True) mixx_deck("hotcue_activate", deck=1, hotcue=3)
| Name | Required | Description | Default |
|---|---|---|---|
| deck | No | ||
| beats | No | ||
| value | No | ||
| enable | No | ||
| hotcue | No | ||
| operation | Yes | ||
| track_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the full burden. It discloses parameter requirements per operation (e.g., load requires track_path, loop_activate requires enable) and a value range for rate_set (-1.0 to 1.0), which adds useful behavioral context. However, it omits side effects (e.g., whether load replaces the current track), permissions, and reversibility of mutations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with front-loaded purpose, a portmanteau note, a complete operation list, a return note, and examples. The operation list is long but necessary given 0% schema coverage; every section earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a complex 19-operation tool with no annotations and 0% schema coverage, the description covers operations and required params thoroughly, and an output schema covers returns. Gaps remain in deck parameter semantics and behavioral safety, but overall it is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description bears the burden. It compensates well by listing required parameters for each operation, but misses describing the deck parameter (default 1, likely deck number) and leaves value semantics ambiguous for rate_temp ('requires value, seconds').
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Comprehensive deck control for Mixxx' and 'Consolidates all deck playback and transport controls.' Enumerates 19 supported operations, making it immediately clear what the tool does and distinguishing it from siblings like mixx_mixer and mixx_effects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Does not explicitly state when to use this tool versus alternatives like mixx_mixer or show_deck_status_card. The operation list implies it is the canonical deck-control tool, but no when-not-to-use, prerequisites, or alternative routing is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mixx_effectsB
Effect chain control for Mixxx.
PORTMANTEAU PATTERN: Consolidates all effect rack and chain operations.
SUPPORTED OPERATIONS:
list_effects: List available effects for a rack/unit
chain_load: Load an effect chain by name (requires effect)
chain_clear: Clear the effect chain on a rack/unit
parameter_set: Set a specific effect parameter (requires parameter, value)
meta_set: Set meta/param knob value (requires value, 0.0-1.0)
quick_effect_set: Set quick effect for deck (requires deck, effect)
effect_enable: Enable/disable an effect unit (requires enable)
Returns: Dict with operation result
Examples: mixx_effects("chain_load", rack=1, unit=1, effect="Flanger") mixx_effects("parameter_set", rack=1, unit=1, parameter=2, value=0.75) mixx_effects("effect_enable", rack=1, unit=1, enable=True)
| Name | Required | Description | Default |
|---|---|---|---|
| deck | No | ||
| rack | No | ||
| unit | No | ||
| value | No | ||
| effect | No | ||
| enable | No | ||
| operation | Yes | ||
| parameter | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It reveals destructive-looking operations like chain_clear only by name and never states side effects, reversibility, persistence across sessions, or whether live playback is disrupted — meaningful gaps for a mutation-heavy control surface.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is header-segmented (operations, returns, examples) and front-loaded with the scope statement before the detail. It is slightly longer than necessary — the "PORTMANTEAU PATTERN" line and the Returns section add little — but there is no real filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so not explaining return values is acceptable, and the operation/example coverage makes invocation possible. Given seven mutating operations and zero annotations, though, the absence of any side-effect or state-safety information leaves the definition short of complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it partially does: it maps parameters to operations and gives the value range for meta_set (0.0-1.0) plus three worked examples. It still never explains rack vs unit semantics, the default rack/unit=1, the meaning of the parameter index, or deck selection, leaving several of the eight parameters opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a concrete verb+resource ("Effect chain control for Mixxx") and enumerates the seven supported operations, so an agent immediately knows the domain is effect racks/units/chains. It does not, however, explicitly distinguish itself from siblings like mixx_deck or mixx_mixer, which also touch deck-level state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The operation list implies which call to make for a given task and flags required arguments per operation (e.g. "requires effect", "requires deck, effect"), which is useful routing within the tool. But there is no guidance on when to prefer this tool over siblings or when an operation is inappropriate, so usage remains implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mixx_historyC
DJ play history, analytics, and personal style profiling.
PORTMANTEAU PATTERN: Consolidates analytics and history.
SUPPORTED OPERATIONS:
plays: Recent play history
transitions: Recent transition log
profile: Personal DJ style profile (BPM range, key preferences, transition style)
suggest: Tracks you haven't played recently
log_play: Manually log a track play (auto-called by deck ops)
log_transition: Manually log a transition
Examples: mixx_history("profile") mixx_history("suggest", limit=10) mixx_history("plays", limit=20)
| Name | Required | Description | Default |
|---|---|---|---|
| deck | No | ||
| limit | No | ||
| to_deck | No | ||
| from_deck | No | ||
| operation | Yes | ||
| track_path | No | ||
| track_title | No | ||
| track_artist | No | ||
| transition_type | No | filter_sweep |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. For a tool with six operations including mutations (log_play, log_transition), it says nothing about side effects, reversibility, permissions, or whether logging requires an existing track. The 'suggest' and 'profile' operations are opaque in terms of behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Structured as a header, portmanteau note, bulleted operations, and examples. Front-loaded and scannable. The 'PORTMANTEAU PATTERN' line is slightly jargon-y but short, and the operation list earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be explained, which helps. But with no annotations and 0% parameter coverage, the description leaves key behaviors (side effects of logging operations, permissions, parameter meanings) undocumented, which is inadequate for a 9-param, 6-operation tool with mutations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and 9 parameters exist. The description mentions 'limit' in examples and ties some operations to decks implicitly, but never explains deck, to_deck, from_deck, track_path, track_title, track_artist, or transition_type semantics. With a low-coverage schema, the description had an obligation to compensate and largely does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'DJ play history, analytics, and personal style profiling' with an explicit operation list. Distinguishes itself from siblings like mixx_library or mixx_transition by consolidating history/analytics, though sibling differentiation is implicit rather than named.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The operation list implies when each mode applies, and mention that log_play is 'auto-called by deck ops' hints at manual vs automatic use. But there's no explicit when-not-to-use guidance or routing to sibling tools for overlapping concerns.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mixx_libraryB
Library management for Mixxx.
PORTMANTEAU PATTERN: Consolidates all library browsing and track info tools.
SUPPORTED OPERATIONS:
search: Search the library for tracks (requires query)
browse_crate: Browse tracks in a crate (requires crate)
browse_playlist: Browse tracks in a playlist (requires playlist)
load_selected: Load highlighted/selected track to deck
get_track_info: Get metadata for current track on deck (requires deck)
get_bpm: Get BPM of track on deck (requires deck)
get_key: Get musical key of track on deck (requires deck)
get_replay_gain: Get replay gain values for track on deck (requires deck)
Returns: Dict with operation result
Examples: mixx_library("search", query="Daft Punk") mixx_library("load_selected", deck=1) mixx_library("get_track_info", deck=1)
| Name | Required | Description | Default |
|---|---|---|---|
| deck | No | ||
| crate | No | ||
| query | No | ||
| playlist | No | ||
| operation | Yes | ||
| track_index | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, yet it discloses almost nothing: 'Returns: Dict with operation result' is all. The 'load_selected' operation mutates deck state and mixes are stateful, but no side effects, permission needs, or reversibility are described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Organized with labeled sections and bulleted operations, and the core purpose is front-loaded. The repetition between the operation list and the examples adds some length but mostly earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be detailed, and the per-operation parameter requirements cover the main invocation needs. But for an eight-mode tool with 0% param coverage and a stateful mutation mode, the lack of behavioral detail leaves real gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it partially does by mapping which parameter each operation requires. It still leaves track_index, the deck default, and the meaning of several enum values (e.g., get_replay_gain) unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (Mixxx library) and enumerates eight concrete operations, so an agent knows exactly what it does. It identifies itself as a portmanteau but does not differentiate from overlapping siblings like mixx_crate or mixx_history, leaving ambiguity for browsing crates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states per-operation requirements ('requires query', 'requires crate', 'requires deck') and gives three invocation examples, which implies how to use each mode. However, there is no guidance on when to prefer this tool over siblings such as mixx_crate or mixx_history, so alternative-selection guidance is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mixx_mixerA
Mixer control for Mixxx.
PORTMANTEAU PATTERN: Consolidates all mixer and channel strip operations.
SUPPORTED OPERATIONS:
crossfader_set: Set crossfader position (requires value, -1.0 to 1.0)
crossfader_curve: Set crossfader curve (requires value, 0.0-1.0)
gain_set: Set deck gain/pregain (requires value, 0.0-5.0)
eq_set: Set EQ band for deck (requires eq_band, value 0.0-1.0)
volume_set: Set channel volume (requires value, 0.0-1.0)
headphone_cue: Toggle headphone cue for deck (requires enable)
talkover: Toggle talkover / microphone
mic_gain: Set microphone gain (requires value, 0.0-1.0)
Returns: Dict with operation result
Examples: mixx_mixer("crossfader_set", value=0.0) mixx_mixer("gain_set", deck=1, value=0.85) mixx_mixer("eq_set", deck=1, eq_band="low", value=0.5) mixx_mixer("headphone_cue", deck=1, enable=True)
| Name | Required | Description | Default |
|---|---|---|---|
| deck | No | ||
| value | No | ||
| enable | No | ||
| eq_band | No | ||
| operation | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It usefully exposes per-operation value ranges and toggle semantics (headphone_cue, talkover), but says nothing about state side effects, playback prerequisites, error behavior, or whether any operation is destructive/reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The portmanteau pattern is front-loaded, then organized into clearly labeled Operations, Returns, and Examples sections. Ordering is logical and the operation list carries genuine disambiguating detail rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return-value explanation is unnecessary and the brief 'Returns: Dict with operation result' is acceptable. Given the eight-operation portmanteau and 0% parameter coverage, the description is reasonably complete, though it omits sibling routing and side-effect context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it largely does: for each operation it names the required parameters (value, eq_band, enable, deck) and gives numeric ranges. It does not document the deck default or the operation enum semantics beyond the op names themselves, but the mapping is strong for a 0%-coverage schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource ('Mixer control for Mixxx') and enumerates all eight consolidated operations with their required arguments, so the agent knows exactly what the tool covers. It does not, however, explicitly differentiate itself from siblings like mixx_deck or mixx_effects, leaving the boundary to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'consolidates all mixer and channel strip operations' framing implies you use it for mixer work, and the examples demonstrate invocation patterns. But there is no when-to-use vs alternatives guidance or any exclusions relative to the many sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mixx_recordingA
Record, replay, and export DJ sets.
PORTMANTEAU PATTERN: Consolidates set recording and replay.
SUPPORTED OPERATIONS:
start: Begin recording OSC commands (name: set name)
stop: Stop recording and save
list: List recorded sets
replay: Replay a recorded set's OSC commands
export: Export set as JSON for external tools
status: Show current recording state
Examples: mixx_recording("start", name="Club Night 2026-07-24") mixx_recording("stop") mixx_recording("list") mixx_recording("replay", set_id="...", replay_speed=0.5)
| Name | Required | Description | Default |
|---|---|---|---|
| loop | No | ||
| name | No | ||
| set_id | No | ||
| operation | Yes | ||
| replay_speed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden; it does disclose that export produces JSON, that replay re-emits OSC commands, and that stop saves the recording, which is useful. However, it omits whether recording persists across sessions, permission/authentication needs, or the destructive implications of overwriting an existing set – gaps that matter for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is well front-loaded: purpose first, then the operation contract, then runnable examples. Every block earns its place, though the "PORTMANTEAU PATTERN" line is largely meta-commentary that adds little for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and the operation enumeration plus examples make the tool callable for most paths. The remaining gap is the undocumented loop parameter and the absence of sibling routing, which keep it from being fully complete for a six-operation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must supply parameter meaning. It partially compensates, showing by example that name is the set name for start and that set_id and replay_speed belong to replay. But the loop parameter is entirely undocumented and defaults for all parameters remain unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb trio and resource ("Record, replay, and export DJ sets") and enumerates six concrete operations, so an agent knows exactly what the tool covers. It does not, however, differentiate itself from plausible siblings like mixx_history, mixx_set, or mixx_ai_set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Each operation is briefly annotated (e.g., "start: Begin recording OSC commands", "export: Export set as JSON for external tools"), which implies when each sub-operation applies. But it never states when to choose this tool over siblings such as mixx_history for past sets, and gives no exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mixx_setB
AI-assisted set sequencing and analysis.
PORTMANTEAU PATTERN: Consolidates set planning and analysis.
SUPPORTED OPERATIONS:
sequence: Generate an optimized track order from a crate (requires crate) Uses local Ollama (llama3.2:3b) for harmonic mixing, energy curve, and phrase-aligned transitions.
record: Start/stop session recording via OSC
analyze_set: Analyze a recorded session or mix for BPM transitions, energy, etc.
Returns: Dict with ordered track list and reasoning
Examples: mixx_set("sequence", crate="Peak Time", name="Friday Gig") mixx_set("record") mixx_set("analyze_set", name="Last Saturday", analyze_type="recording")
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| crate | No | ||
| operation | Yes | ||
| analyze_type | No | recording | |
| energy_curve | No | build_peak_cooldown |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose meaningful traits: sequence uses local Ollama (llama3.2:3b) for harmonic mixing, energy curve, and phrase-aligned transitions; record operates via OSC and can start or stop a session (a side effect). It stops short of stating OS/permission prerequisites or error/limitation behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with a one-line purpose, then well-labeled PORTMANTEAU/OPERATIONS/RETURNS/EXAMPLES sections that make the multi-op tool easy to scan. The 'Returns' block is partly redundant given an output schema exists, but overall the structure is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a portmanteau tool with 5 params, 0% schema coverage, and no annotations, the description is only partially complete: operations are well covered and returns are covered by the output schema, but undocumented parameters (energy_curve) and no alternative-routing leave gaps for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description barely compensates. It clarifies that 'crate' is required for sequence and demonstrates 'name' and 'analyze_type="recording"' in examples, but it never explains 'energy_curve' (a defined parameter with default build_peak_cooldown) or the semantics/defaults of 'name' across operations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb+resource ('AI-assisted set sequencing and analysis') and enumerates its three operations with the action each performs. It does not, however, differentiate itself from a close sibling like mixx_ai_set, leaving the agent to infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Per-operation context exists ('sequence... requires crate', 'record: Start/stop', 'analyze_set: Analyze a recorded session') and the examples show expected call shapes. But there is no explicit when-to-use vs when-not-to-use guidance and no routing to alternatives such as mixx_analyze or mixx_ai_set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mixx_skinA
Skin browser and manager for Mixxx.
PORTMANTEAU PATTERN: Consolidates skin discovery and management.
SUPPORTED OPERATIONS:
list: List all available skins from the curated manifest
search: Search skins by name, author, or tag (requires query or tags)
install: Install a skin from the manifest to the Mixxx user skins dir
uninstall: Remove an installed skin (requires skin_id)
preview: Show information about a skin (requires skin_id)
create_video_skin: Copy LateNight and add VideoWidget entries for video-DJ workflows
create_skin: Generate a new skin by cloning LateNight and recoloring SVGs via inkscape-mcp (requires name and prompt; optional base_skin defaults to latenight)
patch_scheme: Apply a bundled color scheme to Mixxxxx Video Daylight QSS (scheme defaults to daylight-v2; target=installed|source)
Returns: Dict with operation result and list of skins
Examples: mixx_skin("list") mixx_skin("search", tags="video-ready,dark") mixx_skin("install", skin_id="tara") mixx_skin("create_video_skin") mixx_skin("create_skin", name="cyberpunk", prompt="dark purple with cyan accents, neon waveform") mixx_skin("patch_scheme", scheme="daylight-v2", target="installed")
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| tags | No | ||
| query | No | ||
| prompt | No | ||
| scheme | No | daylight-v2 | |
| target | No | installed | |
| skin_id | No | ||
| base_skin | No | latenight | |
| operation | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and largely meets it: install writes to the 'Mixxx user skins dir', uninstall removes an installed skin, create_video_skin 'copies LateNight and adds VideoWidget entries', create_skin clones LateNight and recolors SVGs 'via inkscape-mcp', and patch_scheme targets installed|source. Destructive/creation consequences are disclosed, though permissions, reversibility, and side effects are not addressed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is front-loaded with the purpose, followed by clearly labeled sections (PATTERN, OPERATIONS, Returns, Examples) that make scanning easy. It is somewhat verbose for a single tool, but each operation bullet carries distinct information and the examples reinforce correct invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an eight-operation portmanteau tool this is close to complete: operations, prerequisites, defaults, and examples are all present, and an output schema exists so return details need not be elaborated. The main gap is the absence of any guidance on choosing this tool over its many siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate for nine undocumented parameters, and it does substantially: it maps query/tags to search, skin_id to uninstall/preview, name+prompt to create_skin, base_skin default 'latenight', scheme default 'daylight-v2', and target=installed|source. A couple of parameters (e.g. exact semantics of 'name' vs 'base_skin') remain lightly defined, but coverage is far above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource and role ('Skin browser and manager for Mixxx') and enumerates all eight sub-operations with distinct verbs (list, search, install, uninstall, preview, create_video_skin, create_skin, patch_scheme). An agent can distinguish this from siblings like mixx_library or mixx_effects without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The per-operation breakdown implies when each operation applies and notes prerequisites ('requires query or tags', 'requires skin_id'), which gives reasonable routing within the tool. However, it never states when to reach for mixx_skin versus surrounding siblings, and offers no explicit when-not guidance beyond the implied operation preconditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mixx_stemsA
Stem separation and sampler control using Demucs.
PORTMANTEAU PATTERN: Consolidates stem separation, sampler loading, and stem-aware mixing operations for Mixxx.
SUPPORTED OPERATIONS:
separate: Run Demucs stem separation. Requires a track loaded on the deck (uses bridge state to detect).
status: Check if Demucs is available and list sampler slot assignments.
load_stems: Load previously separated stems to Mixxx sampler decks via OSC.
transition: Stem-aware crossfader transition - mutes vocals + other on outgoing deck.
mute: Mute or unmute a sampler (requires enable).
volume: Set sampler volume level (requires value, 0.0-1.0).
Returns: Dict with operation result
Examples: mixx_stems("separate", deck=1, output_dir="C:/stems/out") mixx_stems("status") mixx_stems("load_stems", deck=1) mixx_stems("mute", sampler=1, enable=True) mixx_stems("volume", sampler=2, value=0.5) mixx_stems("transition", deck_a=1, deck_b=2)
| Name | Required | Description | Default |
|---|---|---|---|
| deck | No | ||
| stem | No | vocals | |
| value | No | ||
| deck_a | No | ||
| deck_b | No | ||
| enable | No | ||
| sampler | No | ||
| operation | Yes | ||
| output_dir | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden. It adds useful behavioral context (Demucs dependency, bridge-state detection of a loaded deck, OSC delivery to sampler decks), but omits side effects, reversibility, dry-run behavior, and failure modes for a tool that mutates sampler/deck state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose, then clean labelled sections for operations, returns, and examples. Every line earns its place, though the 'PORTMANTEAU PATTERN' boilerplate slightly inflates length without adding call-relevant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter, 6-operation tool with no annotations, the description covers operations, prerequisites, examples, and confirms an output schema exists (so return details need not be restated). The main remaining gap is that prerequisites are not tied to failure behavior, but overall an agent has enough to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it largely does: it maps each operation to the parameters it needs (deck, enable, sampler, value with range 0.0-1.0, output_dir, deck_a/deck_b) and the examples demonstrate expected values. The 'stem' parameter and its default are never explained, leaving a minor gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening line names a specific verb and resource ('Stem separation and sampler control using Demucs') and the SUPPORTED OPERATIONS list enumerates exactly what each mode does. It is clear what the tool is, though it does not distinguish itself from siblings like mixx_transition or mixx_deck by name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Per-operation prerequisites are stated ('Requires a track loaded on the deck', 'requires enable', 'requires value, 0.0-1.0'), which is genuine usage guidance. However there is no explicit guidance on when to pick this tool over sibling tools such as mixx_transition for transitions, so the routing logic is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mixx_transitionB
AI-powered transitions between decks.
PORTMANTEAU PATTERN: Consolidates creative transition effects.
SUPPORTED OPERATIONS:
suggest: Ask LLM to suggest best transition for the two loaded tracks
apply: Apply a specific transition effect between decks
auto_crossfader: Enable/disable AI-assisted crossfader (auto-picks transitions)
Available effects: echo_out, filter_sweep, stem_swap, hard_cut, spin_back, flanger, reverb_kill, long_blend
Returns: Dict with transition result
Examples: mixx_transition("suggest", deck_a=1, deck_b=2) mixx_transition("apply", deck_a=1, deck_b=2, effect="filter_sweep") mixx_transition("auto_crossfader", enable=True)
| Name | Required | Description | Default |
|---|---|---|---|
| style | No | any | |
| deck_a | No | ||
| deck_b | No | ||
| effect | No | ||
| enable | No | ||
| operation | Yes | ||
| duration_beats | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral disclosure burden. It reveals that suggest invokes an LLM, apply applies a named effect, and auto_crossfader toggles AI assistance, plus lists available effects. But it omits critical mutation details: whether apply is real-time or destructive, whether it affects playback state, error behavior, or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear headings (SUPPORTED OPERATIONS, Available effects, Returns, Examples) and is front-loaded with purpose. It is appropriately sized for a multi-operation tool, though the 'PORTMANTEAU PATTERN' line is internal jargon that adds little value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters, 0% schema description coverage, no annotations, and a mutation-oriented tool, the description leaves gaps: it does not explain style or duration_beats, nor side effects or prerequisites for apply/auto_crossfader. The output schema covers return values, so the minimal 'Dict with transition result' is acceptable, but overall completeness is only moderate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains the operation enum, lists valid effect values, describes enable for auto_crossfader, and shows deck_a/deck_b via examples. However, it entirely omits style and duration_beats, and gives no defaults or format guidance for those parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific capability: AI-powered transitions between decks with three supported operations (suggest, apply, auto_crossfader) and a list of effects. It distinguishes itself from general effects or mixer tools by focusing on transitions between decks, though it does not explicitly contrast with siblings like mixx_effects or mixx_mixer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists each operation and what it does, which implies when to use suggest, apply, or auto_crossfader. However, it offers no explicit when-to-use guidance relative to alternatives (e.g., mixx_effects), no when-not scenarios, and no prerequisites or ordering constraints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mixx_vinylA
Vinyl record catalog and search tool.
PORTMANTEAU PATTERN: Consolidates all vinyl collection management.
SUPPORTED OPERATIONS:
catalog: Run OCR pipeline on a directory of vinyl photos (requires directory)
search: Search the vinyl database by query, genre, and era
gig_pick: Natural language query to pick records for a gig (requires query)
crossref: Find matching digital copy in Plex (requires vinyl_id)
stats: Summary of the vinyl collection
Return Format
{"success": bool, "message": str, "data": dict}
Examples
mixx_vinyl("catalog", directory="D:/Vinyl/inbox") mixx_vinyl("search", query="techno", genre="techno", limit=10) mixx_vinyl("gig_pick", query="dark warehouse techno set", count=5) mixx_vinyl("crossref", vinyl_id=1) mixx_vinyl("stats")
| Name | Required | Description | Default |
|---|---|---|---|
| era | No | ||
| count | No | ||
| genre | No | ||
| limit | No | ||
| query | No | ||
| vinyl_id | No | ||
| directory | No | ||
| operation | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full behavioral burden, and it only partially does so: it discloses the return envelope and that 'catalog' runs an OCR pipeline over a directory, implying file ingestion and database writes. It says nothing about permissions, whether cataloging is idempotent or destructive to existing rows, or rate/time costs for a batch pipeline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose, then operations, then return shape, then examples — a sensible priority order with headers that make it skimmable. The examples are useful rather than padding, though the statement of the return format is somewhat redundant given an output schema exists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter, 5-operation portmanteau with no sibling-level annotation help, the definition covers purpose, per-operation intent, required arguments, and call examples, which is enough to invoke it correctly. The remaining gaps — no safety profile for the OCR/write path and no clarification of count vs limit — are real but secondary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it largely does: it binds directory to catalog, query to gig_pick/search, vinyl_id to crossref, and genre/era/limit to search. It leaves ambiguity on two parameters — the distinction between count (gig_pick) and limit (search) is never explained, and the accepted format of era is undefined.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource combination ('Vinyl record catalog and search tool') and enumerates the five operations it consolidates, so an agent knows exactly what domain it covers. It does not explicitly distinguish itself from plausible siblings like mixx_library or mixx_crate, which is the only thing keeping it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The SUPPORTED OPERATIONS block functions as routing guidance: 'catalog' for ingesting a photo directory, 'search' for query/genre/era lookup, 'gig_pick' for natural-language selection, 'crossref' for Plex matching, 'stats' for a summary, each with a 'requires X' precondition. This is clear when-to-use-which-operation context, but it offers no exclusions or comparison against the sibling vinyl/library/crate tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_deck_status_cardA
Show live deck status as a rich Prefab card.
Displays play state, BPM, key, volume, loop status, and sync state for the specified deck with data-testid attributes for CUA/Playwright testing.
| Name | Required | Description | Default |
|---|---|---|---|
| deck | No | Deck number (1-4, default: 1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full load. It usefully discloses that the output is a rich Prefab card carrying data-testid attributes for automated testing, which is non-obvious behavioral context, but it never states that the operation is read-only/side-effect free or whether a live deck session is required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the core action and then the rendered contents. No filler, though the testing-attribute clause is somewhat tacked on rather than integrated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial one-optional-param display tool with no output schema, the description covers what is shown and why the card structure matters. Only the read-only nature and any session prerequisite are left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single deck parameter is fully documented in the schema (range 1-4, default 1). The description only says "the specified deck," adding no format, range, or default information beyond what the schema already provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ("Show live deck status") and enumerates the fields rendered (play state, BPM, key, volume, loop, sync). The deck-vs-mixer-vs-library distinction against siblings like show_mixer_status_card and show_library_status_card is conveyed via the resource but never made explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied from the fact that it renders a card for a specified deck; there is no statement of when to reach for this versus the other status-card siblings, and no prerequisites. The mention of CUA/Playwright testing hints at a context but is not framed as guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_library_status_cardB
Show library connection and search status as a Prefab card.
Reports whether the OSC bridge is connected to Mixxx and any active search or crate context.
Returns: PrefabApp card with library KPIs
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose that the output is a rendered Prefab card reporting OSC-bridge connection and active search/crate context, which implies a non-mutating read. However it never explicitly states that it is safe/non-destructive or whether it has side effects on the UI.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short lines, front-loaded with the action, and the 'Returns' block clearly separates output from purpose. Every sentence is relevant, though the output line is slightly redundant with the first sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless, annotation-free read tool with no output schema, the description covers purpose, scope and the shape of the return value (PrefabApp card with library KPIs). This is sufficient for correct invocation, with only safety/behavioral wording left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters and schema coverage is 100%, so there is nothing for the description to compensate for. Baseline 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource ('Show library connection and search status as a Prefab card') and the domain ('library') clearly separates it from siblings like show_deck_status_card and show_mixer_status_card. It stops short of explicitly naming the alternatives, so it lands at 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no reference to the sibling status cards. The agent must infer that this is the tool to call when it wants a readout of library/OSC state.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_mixer_status_cardB
Show live mixer status as a rich Prefab card.
Displays crossfader position, master gain, and per-deck levels with data-testid attributes for automated testing.
Returns: PrefabApp card with mixer KPIs
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full behavioral burden. It discloses that the tool returns a PrefabApp card with KPIs and uses data-testid attributes for testing, which is useful, but it does not state permissions, whether it connects live to hardware/software, or any side effects. For a read-only display tool this is adequate but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Short and front-loaded: the core action and display fields come first, followed by testing context and return type. The 'Returns' line is slightly redundant with the first sentence but still brief and informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple status-card tool with no input parameters and no output schema, the description covers what is shown, how it is rendered, testing attributes, and the return type. It lacks sibling differentiation, but otherwise contains what an agent needs to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the schema is already complete. The description correctly adds no parameter detail because there is none to add, matching the baseline for parameter-less tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb 'Show' and resource 'live mixer status', and lists exactly what is displayed (crossfader position, master gain, per-deck levels). It clearly differs from the deck-status sibling by resource, but does not explicitly name or rule out any alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, when-not-to-use, or alternative guidance is provided. The description only implies it is for viewing mixer status; it does not help an agent choose between this and show_deck_status_card or the mixx_mixer family.
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.
19 tool updates
v0.2.0- First observed
mixx_ai_set - First observed
mixx_analyze - First observed
mixx_controller - First observed
mixx_crate - First observed
mixx_daw - First observed
mixx_deck - First observed
mixx_effects - First observed
mixx_history - First observed
mixx_library - First observed
mixx_mixer - First observed
mixx_recording - First observed
mixx_set - First observed
mixx_skin - First observed
mixx_stems - First observed
mixx_transition - First observed
mixx_vinyl - First observed
show_deck_status_card - First observed
show_library_status_card - First observed
show_mixer_status_card
TDQS
Scored across 19 tools
Most tools are cleanly scoped by domain (deck, mixer, effects, library, crates), but the AI-set trio—mixx_set, mixx_ai_set, and mixx_transition—overlap heavily on set planning and transition suggestion/execution, and mixx_stems also exposes a 'transition' op. mixx_analyze and mixx_library both surface track BPM/key metadata. Descriptions help, but boundaries require careful reading.
The bulk of tools follow a consistent 'mixx_<domain>' snake_case pattern that maps cleanly to their domain. The three 'show_<x>_status_card' tools deviate from that prefix convention, introducing a second pattern, but it remains readable and predictable overall.
19 tools is on the higher side, but the portmanteau design means each tool represents a genuine distinct domain (deck, mixer, effects, stems, vinyl, recording, etc.), so each earns its place. Slightly heavy but well justified for a full DJ control surface.
Coverage is broad and deep—transport, mixing, effects, library, crates, skins, stems, transitions, recording, history, and even DAW export. Minor gaps exist (e.g., beatgrid/sample editing, finer controller mapping edits), but core workflows and lifecycle operations are well covered.
Maintenance
Related MCP Connectors
MCP server for Producer/Riffusion AI music generation
AI image, video, voice and music generation over MCP, routed to Veo 3.1, Seedance 2.5 and more.
Remote MCP for AI video, image, music and speech generation.
Generate game-ready 3D models, textures, and audio from natural language, over MCP.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to control and monitor Bitwig Studio in real-time using natural language commands through MCP and OSC.-
- AlicenseCqualityAmaintenanceA comprehensive MCP server that enables AI assistants to control REAPER DAW for mixing, mastering, MIDI composition, and full music production workflows with 130 tools.177614 PyPI68MIT
- AlicenseNot gradedqualityFmaintenanceMCP server for Mixxx DJ software that enables AI agents to control transport, mixing, EQ, loops, hotcues, and effects in real time through MIDI and OSC.MIT
- FlicenseNot gradedqualityFmaintenanceAI-powered control for Apple Logic Pro via MCP, enabling transport, tracks, plugins, MIDI, project, and mixer control through natural language.5-