Skip to main content
Glama

Scythe MCP - REAPER Integration

AI-powered music composition and control for REAPER DAW via Model Context Protocol.

Features

  • OSC Control: Transport, tempo, volume, pan, mute/solo

  • MIDI Generation: Create tracks, items, and notes programmatically

  • execute_lua: Full REAPER control via ReaScript

  • Music Theory: Scales, chords, progressions, rhythm patterns

  • Generators: Drums, basslines, and melodies

Related MCP server: ReaperMCP

Quick Start

1. Install Python dependencies

cd /path/to/scythe_mcp_reaper
uv sync

2. Configure REAPER OSC

  1. Preferences > Control/OSC/Web > Add

  2. Select OSC (Open Sound Control)

  3. Configure:

    • Mode: Local port

    • Port: 8000

    • Local IP: 127.0.0.1

3. Load the Lua script

  1. Copy scythe_mcp/reascript/scythe_poller.lua to REAPER Scripts folder

  2. Actions > Load ReaScript > Select the file

  3. Run the script (it will poll for commands in the background)

4. Add to MCP config

Add to your MCP client configuration (e.g., Claude Desktop, Cursor, etc.):

{
  "mcpServers": {
    "scythe": {
      "command": "uv",
      "args": ["run", "scythe-mcp"],
      "cwd": "/path/to/scythe_mcp_reaper"
    }
  }
}

Available Tools

Tool

Description

play, stop, record

Transport control

set_tempo(bpm)

Change project tempo

create_track(name)

Create new track with name

insert_midi_item(track, start, length)

Create MIDI item on track

add_notes(track, item, notes)

Insert MIDI notes

set_track_volume(track, vol)

Set volume (0-1)

mute_track, solo_track

Mute/solo toggle

execute_lua(code)

Run any Lua code in REAPER

trigger_action(id)

Trigger REAPER action by ID

Project Structure

scythe_mcp/
├── server/
│   ├── main.py           # MCP server with tool definitions
│   └── reaper_bridge.py  # OSC + file-based command bridge
├── reascript/
│   ├── scythe_poller.lua # REAPER Lua polling script
│   └── install.md        # Setup guide
├── music_theory/
│   ├── scales.py         # 15+ scales and modes
│   ├── chords.py         # Chord parsing and construction
│   ├── progressions.py   # Genre-specific chord progressions
│   └── rhythm.py         # Time signatures, note values
└── generators/
    ├── drums.py          # Drum pattern generation
    ├── basslines.py      # Bass line generation
    └── melodies.py       # Melody generation

Bridge Architecture

The system uses a file-based command bridge between Python and REAPER:

  1. Python writes commands to %TEMP%/scythe_mcp/command.json

  2. Lua script polls this file every 100ms

  3. Lua executes the command and writes result to response.json

  4. Python reads the response

This approach bypasses REAPER's limited OSC capabilities for complex operations like MIDI note insertion.

Known Limitations

  • Melody generator produces harmonically correct but not necessarily musical results

  • PPQ timing assumes 960 ticks per quarter note (standard for most REAPER projects)

  • The Lua polling script must be running in REAPER for commands to execute

Example Usage

from scythe_mcp.server.reaper_bridge import ReaperBridge

bridge = ReaperBridge()
bridge.set_tempo(120)
res = bridge.create_track("My Track")
track_idx = res["track_index"]
bridge.insert_midi_item(track_idx, 0, 16)  # 16 beats
bridge.add_notes(track_idx, 0, [
    {"pitch": 60, "start": 0, "duration": 1, "velocity": 100},
    {"pitch": 64, "start": 1, "duration": 1, "velocity": 90},
])

License

MIT

Available Tools

17 tools
add_notesA
Add MIDI notes to an existing MIDI item.

Args:
    track_number: Track number (1-based)
    item_index: Index of the MIDI item (0-based)
    notes: List of note dictionaries with:
        - pitch: MIDI note number (0-127, middle C = 60)
        - start: Start position in beats (relative to item)
        - duration: Duration in beats
        - velocity: Velocity (1-127, default 100)
ParametersJSON Schema
NameRequiredDescriptionDefault
track_numberYes
item_indexYes
notesYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the write operation ('Add MIDI notes') but lacks critical behavioral details: it doesn't mention whether this operation is destructive (e.g., overwrites existing notes), what permissions are required, error handling, or the response format. The description provides some context about note structure but misses broader behavioral traits needed for safe invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded with the core purpose in the first sentence. The parameter explanations are structured clearly with bullet points, though the formatting could be slightly more concise. Every sentence adds value, with no redundant information.

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

Completeness4/5

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

Given the tool's moderate complexity (3 parameters, no annotations, but with an output schema), the description is reasonably complete. It covers parameter semantics thoroughly and states the purpose clearly. Since an output schema exists, the description doesn't need to explain return values, but it could benefit from more behavioral context (e.g., mutation effects, error cases) to be fully comprehensive.

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

Parameters5/5

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

The description adds substantial meaning beyond the input schema, which has 0% description coverage. It explains all three parameters in detail: 'track_number' as 1-based, 'item_index' as 0-based, and 'notes' as a list of dictionaries with specific fields (pitch, start, duration, velocity) including value ranges and defaults. This fully compensates for the schema's lack of documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Add MIDI notes') and target resource ('to an existing MIDI item'), making the purpose immediately understandable. It distinguishes from siblings like 'create_midi_item' by specifying it works on existing items rather than creating new ones. However, it doesn't explicitly differentiate from all possible note-related operations that might exist in other contexts.

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

Usage Guidelines3/5

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

The description implies usage context by specifying 'to an existing MIDI item,' suggesting this tool should be used when you have an existing item to modify rather than creating a new one. However, it doesn't provide explicit guidance on when to use this versus alternatives like 'create_midi_item' or other note manipulation tools, nor does it mention prerequisites or exclusions.

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

arm_trackA
Arm or disarm a track for recording.

Args:
    track_number: Track number (1-based)
    armed: True to arm, False to disarm
ParametersJSON Schema
NameRequiredDescriptionDefault
track_numberYes
armedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only states the basic action. It doesn't disclose behavioral traits like whether arming affects other tracks, requires specific session states, has side effects, or what the output indicates. This is inadequate for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose, followed by clear parameter explanations in a structured format. Every sentence earns its place with zero waste, making it highly efficient.

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

Completeness3/5

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

Given the tool's moderate complexity (mutation with 2 params) and no annotations, the description is minimally complete but lacks behavioral context. The presence of an output schema helps, but more detail on effects and usage would improve completeness.

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

Parameters4/5

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

The description adds crucial meaning beyond the schema's 0% coverage: it explains that track_number is 1-based and armed controls arming/disarming. This compensates well for the lack of schema descriptions, though it could note default values or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Arm or disarm') and resource ('a track for recording'), distinguishing it from siblings like mute_track, solo_track, or record. It precisely defines the tool's function without ambiguity.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like record, mute_track, or solo_track. The description lacks context about prerequisites, timing, or exclusions, leaving usage decisions unclear.

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

create_midi_itemB
Create a MIDI item on a track.

Args:
    track_number: Track number (1-based)
    position: Start position in beats
    length: Length in beats (default: 4 = 1 bar in 4/4)
ParametersJSON Schema
NameRequiredDescriptionDefault
track_numberYes
positionNo
lengthNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('Create') but doesn't mention whether this requires specific permissions, what happens if the track doesn't exist, whether the creation is reversible, or any side effects. The description lacks crucial behavioral context for a mutation operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately concise with a clear purpose statement followed by parameter explanations. The parameter documentation is well-structured with brief but informative explanations. No wasted words, though the formatting with 'Args:' could be slightly cleaner.

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

Completeness3/5

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

Given that there's an output schema (which handles return values), no annotations, and 3 parameters with good semantic coverage in the description, the description is moderately complete. However, for a mutation tool in a complex domain like music production, more behavioral context (error conditions, dependencies, side effects) would be beneficial.

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

Parameters4/5

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

The description provides meaningful semantic information for all three parameters beyond what the schema offers (which has 0% description coverage). It explains that 'track_number' is 1-based, 'position' is in beats, and 'length' is in beats with a helpful default interpretation (4 = 1 bar in 4/4). This compensates well for the schema's lack of descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create a MIDI item') and the target ('on a track'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'add_notes' or 'create_track', which might have overlapping functionality in a music production context.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'add_notes' (which might add notes to an existing MIDI item) or 'create_track' (which creates a new track). There's no mention of prerequisites, dependencies, or contextual constraints.

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

create_trackB
Create a new track.

Args:
    name: Name for the new track
ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew Track

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states 'Create a new track' but doesn't explain what a 'track' is in this context, whether this requires specific permissions, if it's destructive to existing data, what the default properties are beyond the name, or how it integrates with other tools. This leaves significant gaps for an agent to understand the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise and well-structured: a clear purpose statement followed by a brief parameter explanation. Every sentence earns its place with no wasted words, making it easy to parse quickly.

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

Completeness3/5

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

Given the tool has an output schema (which handles return values) and only one parameter with low complexity, the description is minimally complete. However, for a creation tool with no annotations, it lacks details on behavioral aspects like side effects or error conditions, leaving room for improvement in context.

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

Parameters4/5

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

The description adds meaningful context for the single parameter by specifying that 'name' is the 'Name for the new track', which clarifies its purpose beyond the schema's basic title. With 0% schema description coverage and only one parameter, this adequately compensates, though it doesn't detail constraints like length or allowed characters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Create') and resource ('a new track'), making the purpose immediately understandable. However, it doesn't differentiate this tool from potential sibling tools like 'create_midi_item' or 'add_notes', which might also create audio-related elements in the same environment.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. Given sibling tools like 'create_midi_item' and 'add_notes', there's no indication of whether this is for audio tracks, MIDI tracks, or other types, nor any prerequisites or context for when creation is appropriate.

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

execute_luaA
Execute arbitrary Lua code in REAPER.

This gives full control over REAPER via ReaScript.
The code runs in REAPER's Lua environment with access to the reaper.* API.

Args:
    code: Lua code to execute

Example:
    execute_lua("reaper.ShowMessageBox('Hello from MCP!', 'Test', 0)")
ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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 discloses that the code runs in REAPER's Lua environment with access to the reaper.* API, which is useful behavioral context. However, it doesn't mention potential risks (e.g., destructive operations, performance impacts), error handling, or output format, leaving gaps in transparency for a powerful execution tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded: the first sentence states the core purpose, followed by essential context about the environment and API access. The Args and Example sections are structured efficiently, with every sentence adding value without redundancy.

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

Completeness4/5

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

Given the tool's complexity (executing arbitrary code), no annotations, and an output schema present, the description is reasonably complete. It covers the purpose, environment, and parameter semantics with an example. However, it lacks details on safety considerations or output interpretation, which could be beneficial despite the output schema.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It adds meaningful semantics by explaining that the 'code' parameter is 'Lua code to execute' and provides an example showing usage with the reaper.* API. This goes beyond the schema's basic type information, though it could elaborate more on code constraints or expected patterns.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verb ('Execute') and resource ('arbitrary Lua code in REAPER'), distinguishing it from sibling tools that perform specific REAPER operations like 'set_tempo' or 'create_track'. It explicitly mentions this gives 'full control over REAPER via ReaScript', establishing its unique capability among the available tools.

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

Usage Guidelines4/5

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

The description provides clear context about when to use this tool: for executing Lua code with access to REAPER's API. It doesn't explicitly state when not to use it or name alternatives, but the context is sufficiently clear given that sibling tools are specific operations, making this the tool for custom scripting.

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

get_session_infoB
Get information about REAPER. Note: OSC is primarily for sending commands.
Use this to confirm connection is working.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It mentions this is for confirming connection, which hints at a diagnostic/read-only behavior, but doesn't explicitly state whether this is a read operation, what permissions are needed, or what the output contains. The note about OSC adds some context but doesn't fully describe behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately concise with three short sentences that each add value: stating the purpose, providing a note about OSC, and giving usage guidance. It's front-loaded with the main purpose. There's minimal waste, though the structure could be slightly more polished.

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

Completeness3/5

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

Given the tool has 0 parameters, an output schema exists (so return values are documented elsewhere), and no annotations, the description is moderately complete. It covers purpose and usage but lacks details on what specific information is retrieved or behavioral aspects like error handling. For a simple diagnostic tool, this is adequate but has gaps.

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

Parameters4/5

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

The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the lack of inputs. The description doesn't need to add parameter semantics, and it correctly doesn't mention any parameters. Baseline for 0 parameters is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool 'Get information about REAPER' which provides a basic purpose (verb+resource), but it's vague about what specific information is retrieved. It doesn't clearly distinguish this from potential sibling tools that might also provide REAPER information, though the sibling list doesn't show direct alternatives.

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

Usage Guidelines4/5

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

The description provides clear context for when to use this tool: 'Use this to confirm connection is working.' This gives a specific use case. However, it doesn't explicitly state when not to use it or name alternatives (though the note about OSC being 'primarily for sending commands' implies this isn't for command execution).

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

goto_positionB
Move cursor to a specific position.

Args:
    seconds: Position in seconds
ParametersJSON Schema
NameRequiredDescriptionDefault
secondsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. While 'Move cursor' implies a navigation action, it doesn't specify whether this affects playback state, requires specific permissions, has side effects on other session elements, or what happens if the position is invalid. The description lacks crucial behavioral context for a navigation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly concise with zero wasted words. The first sentence states the core purpose, and the Args section cleanly documents the parameter. Every element serves a clear purpose without redundancy or unnecessary elaboration.

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

Completeness3/5

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

Given the simple single-parameter input schema and existence of an output schema (which handles return values), the description covers the basics adequately. However, as a navigation tool with no annotations, it should ideally mention behavioral aspects like whether this pauses playback or affects other session states to be fully complete.

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

Parameters3/5

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

With 0% schema description coverage, the description adds essential meaning by explaining that 'seconds' represents 'Position in seconds'. This clarifies the parameter's purpose beyond the schema's generic 'number' type. However, it doesn't provide additional context like valid ranges, units beyond seconds, or how the position relates to session timeline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Move cursor') and resource ('to a specific position'), making the purpose immediately understandable. It distinguishes from siblings like play, stop, or set_tempo by focusing on cursor positioning rather than playback or session settings. However, it doesn't explicitly differentiate from tools like select_track that might involve positioning indirectly.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, timing considerations, or how it relates to other positioning or playback tools like play or stop. Without any usage context, the agent must infer appropriate scenarios from the tool name alone.

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

mute_trackB
Mute or unmute a track.

Args:
    track_number: Track number (1-based)
    muted: True to mute, False to unmute
ParametersJSON Schema
NameRequiredDescriptionDefault
track_numberYes
mutedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states the action ('Mute or unmute') but doesn't describe effects (e.g., whether muting affects playback, recording, or monitoring), permissions needed, error conditions, or what the output schema returns. For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with zero wasted words. It opens with the core purpose, then lists parameters with brief explanations. Every sentence earns its place, and the structure (purpose first, then args) is logical and front-loaded for quick understanding.

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

Completeness3/5

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

Given 2 parameters with 0% schema coverage and no annotations, the description provides minimal but adequate context for basic use. The presence of an output schema means return values needn't be explained here. However, for a mutation tool affecting audio/DAW state, more detail on behavior, side effects, and error handling would improve completeness.

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

Parameters3/5

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

The description adds basic semantic context for both parameters ('track_number: Track number (1-based)' and 'muted: True to mute, False to unmute'), which is valuable since schema description coverage is 0%. However, it doesn't explain constraints (e.g., valid track number ranges), default behavior (muted defaults to true per schema), or interaction effects. This partially compensates for the schema gap but not fully.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Mute or unmute') and resource ('a track'), making the purpose immediately understandable. It distinguishes this from sibling tools like 'set_track_volume' or 'solo_track' by focusing specifically on muting functionality. However, it doesn't specify what type of track (audio, MIDI, etc.) or context (DAW session, media player), leaving some ambiguity.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., whether a track must exist or be selected), compare with similar tools like 'solo_track', or indicate typical use cases. The agent must infer usage from the tool name and parameters alone.

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

playB

Start playback.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. 'Start playback' implies a state-changing action but doesn't describe what happens (e.g., begins playback from current position, affects transport state), what permissions are needed, whether it's reversible, or what happens if playback is already active. It provides minimal behavioral context beyond the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise ('Start playback') - just two words that directly convey the core action. There's zero wasted language, and it's perfectly front-loaded with the essential information.

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

Completeness3/5

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

Given this is a simple action tool with zero parameters and an output schema exists, the description is minimally adequate. However, for a state-changing transport control in an audio/DAW context (inferred from sibling tools), it should ideally mention more about behavior, prerequisites, or relationship to other transport controls. The existence of an output schema means return values are documented elsewhere.

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

Parameters4/5

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

The tool has zero parameters (schema coverage 100%), so there are no parameters to document. The description appropriately doesn't discuss parameters, which is correct for a parameterless tool. Baseline is 4 when no parameters exist.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Start playback' clearly states the action (start) and target (playback), but it's somewhat vague about what exactly 'playback' refers to in this audio/DAW context. It doesn't distinguish this tool from sibling tools like 'record' or 'stop' beyond the basic verb difference.

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

Usage Guidelines2/5

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

The description provides no guidance about when to use this tool versus alternatives like 'record', 'stop', or 'goto_position'. There's no mention of prerequisites (e.g., requires a session to be loaded), context (e.g., playback from current position), or exclusions (e.g., cannot use while recording).

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

recordB

Start recording.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Start recording' implies a state-changing action, but it doesn't reveal if this requires specific conditions (e.g., an armed track), what happens upon invocation (e.g., overwrites existing recording), or any side effects like rate limits. This is a significant gap 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with just two words, 'Start recording,' which is front-loaded and wastes no space. Every word earns its place by directly stating the tool's action, making it highly efficient.

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

Completeness3/5

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

Given the tool has 0 parameters, 100% schema coverage, and an output schema exists, the description's minimalism is somewhat acceptable. However, as a mutation tool with no annotations, it lacks critical behavioral details (e.g., what gets recorded, effects on other tools), making it incomplete for safe and effective use by an agent.

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

Parameters4/5

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

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately doesn't mention parameters, which aligns with the schema, earning a baseline score of 4 for not adding unnecessary information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Start recording' clearly states the action (start) and the operation (recording), which is better than a tautology. However, it doesn't specify what exactly is being recorded (audio, video, session, etc.) or distinguish this tool from potential siblings like 'play' or 'stop', making it somewhat vague.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., whether a track must be selected first), exclusions, or related tools like 'stop' or 'play' from the sibling list, leaving the agent with minimal context for decision-making.

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

select_trackC
Select a track.

Args:
    track_number: Track number (1-based)
ParametersJSON Schema
NameRequiredDescriptionDefault
track_numberYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It fails to explain what 'selecting' entails—whether it changes UI state, affects subsequent operations, requires specific permissions, or has side effects. For a tool with no annotation coverage, this lack of detail leaves the agent guessing about its behavior and implications.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief and front-loaded with the core action ('Select a track'), followed by parameter details. There's no wasted text, but it could be more structured—e.g., separating usage notes from parameter explanations. The two-sentence format is efficient, though under-specified content limits its effectiveness.

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

Completeness2/5

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

Given the tool's moderate complexity (one parameter, no annotations, but with an output schema), the description is incomplete. It doesn't leverage the output schema to hint at return values or state changes. For a tool that likely interacts with a media session (inferred from siblings like 'play' and 'record'), it should explain the context of track selection, such as affecting playback or editing focus.

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

Parameters3/5

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

The description adds minimal semantics beyond the input schema: it specifies that 'track_number' is '1-based', which clarifies the indexing convention not evident from the schema alone. However, with 0% schema description coverage and only one parameter, this is a modest improvement. It doesn't explain valid ranges, what happens with invalid numbers, or how tracks are numbered (e.g., relative to existing tracks).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Select a track' is a tautology that essentially restates the tool name without adding meaningful specificity. It doesn't explain what 'selecting' means in this context (e.g., making it active for editing, highlighting it in a UI, or setting it as the current track for operations). While it mentions 'track' as the resource, the verb 'select' remains vague compared to sibling tools like 'mute_track' or 'solo_track' that clearly indicate their effects.

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

Usage Guidelines1/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing track), exclusions, or how it relates to sibling tools like 'create_track' or 'arm_track'. Without context, an agent might struggle to determine if this is for navigation, activation, or preparation for other operations.

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

set_tempoA
Set the project tempo in BPM.

Args:
    tempo: Tempo in beats per minute (20-999)
ParametersJSON Schema
NameRequiredDescriptionDefault
tempoYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('Set') but doesn't mention whether this is a destructive change, requires specific permissions, has side effects, or what the output schema might indicate. This leaves significant gaps in understanding the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise and well-structured, with a clear purpose statement followed by parameter details in a bullet-like format. Every sentence earns its place, and there is no wasted text, making it easy to parse and understand quickly.

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

Completeness4/5

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

Given the tool's low complexity (one parameter) and the presence of an output schema, the description is largely complete for basic use. However, it lacks behavioral context and usage guidelines, which are important for a mutation tool with no annotations, preventing a perfect score.

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

Parameters5/5

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

The description adds substantial meaning beyond the input schema, which has 0% description coverage. It specifies the parameter 'tempo' as 'Tempo in beats per minute (20-999)', providing units, a valid range, and context that the schema lacks entirely, fully compensating for the schema's deficiency.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('Set') and resource ('project tempo in BPM'), making it immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'set_track_volume' or 'set_track_pan', which also modify project settings, so it doesn't reach the highest score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives or any context for its application. It lacks information about prerequisites, such as whether a project must be open, or exclusions, leaving the agent to infer usage from the tool name alone.

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

set_track_panB
Set track pan position.

Args:
    track_number: Track number (1-based)
    pan: Pan position (-1.0 = full left, 0.0 = center, 1.0 = full right)
ParametersJSON Schema
NameRequiredDescriptionDefault
track_numberYes
panYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. While 'Set' implies a mutation operation, the description doesn't address whether this requires specific permissions, whether changes are immediate or require session save, what happens with invalid track numbers, or if there are rate limits. Some minimal context about pan range is provided, but key behavioral aspects are missing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely efficient with zero wasted words. The purpose is stated in the first sentence, followed by clear parameter documentation. Every sentence earns its place by providing essential information.

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

Completeness3/5

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

For a mutation tool with no annotations but an output schema, the description covers the basic operation and parameter semantics well. However, it lacks context about when to use it, error conditions, or behavioral constraints. The presence of an output schema means return values are documented elsewhere, but the description could better address the mutation's implications.

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

Parameters5/5

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

The description provides crucial semantic information not present in the schema. The schema only shows 'track_number' as integer and 'pan' as number, but the description clarifies that track numbers are 1-based and defines the pan scale (-1.0 = full left, 0.0 = center, 1.0 = full right). This is essential for correct usage given 0% schema description coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Set') and resource ('track pan position'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'set_track_volume' or 'mute_track' beyond the specific parameter being modified.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus alternatives. The description doesn't mention prerequisites, timing considerations, or relationships to sibling tools like 'set_track_volume' or 'mute_track' that might affect track audio properties.

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

set_track_volumeB
Set track volume.

Args:
    track_number: Track number (1-based, as shown in REAPER)
    volume: Volume level (0.0 = -inf dB, 1.0 = 0 dB)
ParametersJSON Schema
NameRequiredDescriptionDefault
track_numberYes
volumeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a mutation operation ('Set') but doesn't describe side effects, permissions needed, error conditions, or what happens if the track doesn't exist. The description lacks critical behavioral context for a tool that modifies system state.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly concise and well-structured. It starts with a clear purpose statement, then provides parameter explanations in a clean, bullet-like format. Every sentence earns its place by adding essential information without any wasted words.

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

Completeness3/5

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

Given that there's an output schema (which handles return values) and the description provides good parameter semantics, the description is adequate for a simple mutation tool. However, with no annotations and incomplete behavioral transparency, there are gaps in understanding the tool's full implications and error handling.

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

Parameters5/5

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

The description provides excellent parameter semantics that go well beyond the input schema. The schema has 0% description coverage (just titles and types), but the description explains that 'track_number' is 1-based as shown in REAPER and that 'volume' ranges from 0.0 (-inf dB) to 1.0 (0 dB), adding crucial context that the schema lacks.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('Set') and resource ('track volume'), making it immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'mute_track' or 'solo_track', which also affect track audio properties, so it doesn't reach the highest clarity level.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'mute_track' or 'solo_track', nor does it mention any prerequisites or context for usage. It simply states what the tool does without offering usage instructions.

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

solo_trackB
Solo or unsolo a track.

Args:
    track_number: Track number (1-based)
    solo: True to solo, False to unsolo
ParametersJSON Schema
NameRequiredDescriptionDefault
track_numberYes
soloNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure but offers minimal information. It states the action but doesn't describe what 'solo' means in this context (e.g., whether it mutes other tracks, affects routing, or has visual feedback), nor does it mention side effects, permissions needed, or error conditions. The description is functionally adequate but lacks depth for safe operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise and well-structured: a clear purpose statement followed by brief parameter explanations. Every sentence earns its place, with no redundant or vague language. The information is front-loaded, making it easy for an agent to parse quickly.

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

Completeness3/5

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

Given the tool's moderate complexity (2 parameters, no annotations, but has an output schema), the description is minimally complete. It covers the basic action and parameters but lacks context about the audio/mixing environment, sibling tool relationships, and behavioral details. The presence of an output schema means return values are documented elsewhere, so the description doesn't need to explain them, but it could benefit from more operational guidance.

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

Parameters4/5

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

The description adds meaningful context beyond the input schema, which has 0% description coverage. It clarifies that 'track_number' is 1-based (not 0-based) and that 'solo' is a boolean where True means solo and False means unsolo, with the default being True. This compensates well for the schema's lack of descriptions, though it doesn't explain parameter constraints or interactions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('solo or unsolo') and resource ('a track'), making the purpose immediately understandable. It distinguishes from siblings like 'mute_track' by specifying the solo/unsolo action rather than muting. However, it doesn't explicitly differentiate from other track manipulation tools beyond the core action.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'mute_track' or 'select_track'. There's no mention of prerequisites (e.g., needing an active session or track selection) or typical use cases (e.g., during mixing or live performance). The agent must infer usage from the tool name alone.

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

stopB

Stop playback.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states the action ('Stop playback'). It doesn't disclose behavioral traits such as whether this requires specific permissions, what happens to paused vs. playing media, if it's reversible, or any side effects. The description is minimal and lacks necessary context for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise ('Stop playback.') with zero wasted words, making it front-loaded and easy to parse. Every word earns its place by directly conveying the core function.

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

Completeness3/5

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

Given the tool's simplicity (0 parameters, no annotations, but has an output schema), the description is minimally complete. However, as a mutation tool with no annotations, it should ideally include more behavioral context (e.g., effects, prerequisites). The output schema reduces the need to explain return values, but the description remains sparse for a tool that likely alters system state.

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

Parameters4/5

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

The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the lack of inputs. The description doesn't add parameter details, but with no parameters, this is acceptable. Baseline is 4 for zero parameters as no additional explanation is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Stop playback' clearly states the tool's function with a specific verb ('Stop') and resource ('playback'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'play' or 'record' beyond the obvious semantic difference.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. While the name implies it stops ongoing playback, there's no mention of prerequisites (e.g., requires active playback), exclusions, or relationships to sibling tools like 'play' or 'record'.

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

trigger_actionB
Trigger a REAPER action by name.

Available actions:
- Transport: play, stop, pause, record, rewind, forward
- Project: save, save_as, new_project, undo, redo
- Tracks: insert_track, delete_track, duplicate_track
- View: zoom_fit, toggle_mixer

Args:
    action_name: Name of the action to trigger
ParametersJSON Schema
NameRequiredDescriptionDefault
action_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool triggers actions but doesn't explain what 'trigger' entails (e.g., immediate execution, side effects, error handling), permissions required, or response behavior. This leaves significant gaps for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and front-loaded with the core purpose, followed by categorized examples and parameter details. Every sentence adds value without redundancy, making it efficient and easy to scan.

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

Completeness3/5

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

Given the tool has an output schema (which handles return values), the description covers the basic purpose and parameter context adequately. However, as a mutation tool with no annotations, it lacks details on behavioral traits like side effects or error conditions, making it minimally complete but with clear gaps.

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

Parameters4/5

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

The schema description coverage is 0%, so the description must compensate. It adds meaningful context by listing available action categories and examples, which clarifies the 'action_name' parameter beyond the bare schema. However, it doesn't specify exact string values or validation rules, leaving some ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose as 'Trigger a REAPER action by name,' which is a specific verb+resource combination. However, it doesn't explicitly differentiate from siblings like 'play' or 'record' that might overlap in functionality, though it implies broader coverage through the categorized action list.

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

Usage Guidelines3/5

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

The description provides implied usage by listing available action categories and examples, suggesting this tool is for triggering various REAPER actions. However, it lacks explicit guidance on when to use this tool versus alternatives like 'play' or 'record' (which are listed as siblings), and doesn't mention prerequisites or exclusions.

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

TDQS

B3.4/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose with no ambiguity. Tools like add_notes, create_midi_item, and create_track handle different MIDI/track creation tasks, while transport controls (play, record, stop) and track controls (mute_track, solo_track, arm_track) are well-separated. Even execute_lua and trigger_action serve different automation purposes without overlap.

Naming Consistency5/5

All tools follow a consistent snake_case verb_noun pattern throughout. Examples include add_notes, arm_track, create_midi_item, get_session_info, and set_tempo. The naming is predictable and readable, with no deviations in style or convention.

Tool Count5/5

With 17 tools, the set is well-scoped for a DAW control server, covering essential operations like transport, track management, MIDI editing, and automation. Each tool earns its place without bloat, providing comprehensive control over REAPER's core functionalities in a manageable number.

Completeness5/5

The tool surface offers complete coverage for DAW operations, including CRUD for tracks and MIDI items, transport controls, track state management (mute/solo/arm/volume/pan), tempo setting, and advanced automation via execute_lua and trigger_action. There are no obvious gaps that would hinder agent workflows in this domain.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/yura9011/scythe_mcp_reaper'

If you have feedback or need assistance with the MCP directory API, please join our Discord server