Scythe MCP REAPER
The Scythe MCP REAPER server enables AI-powered control and music composition within REAPER DAW through the Model Context Protocol, allowing programmatic interaction via OSC, MIDI, Lua scripting, and music theory tools.
Transport & Playback Control: Start/stop playback and recording, set project tempo (20-999 BPM), and navigate to specific timeline positions in seconds
Track Management: Create named tracks, adjust volume (0.0-1.0) and pan (-1.0 to 1.0), mute/solo/arm tracks for recording, and select tracks by number
MIDI Composition: Create MIDI items on tracks with specified position and length (in beats), add MIDI notes with precise control over pitch (0-127), timing, duration, and velocity
Advanced REAPER Control: Execute arbitrary Lua code for full ReaScript API access and trigger built-in REAPER actions (save, undo, redo, zoom, etc.)
Music Theory Integration: Access scales, chords, progressions, and rhythm patterns with built-in generators for drums, basslines, and melodies
Session Monitoring: Retrieve REAPER session information to confirm connectivity and status
File-Based Bridge: Uses a polling system where Python writes commands to a file and a Lua script in REAPER executes them, bypassing OSC limitations for complex operations
Enables execution of Lua scripts in REAPER DAW via ReaScript, allowing full programmatic control of the digital audio workstation through the execute_lua tool.
Provides tools for creating MIDI tracks, items, and notes programmatically in REAPER, including generation of drum patterns, basslines, melodies, and chord progressions with music theory support.
Click on "Install 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., "@Scythe MCP REAPERcreate a lo-fi beat at 85 BPM with jazzy chords and dreamy melody"
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.
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 sync2. Configure REAPER OSC
Preferences > Control/OSC/Web > Add
Select OSC (Open Sound Control)
Configure:
Mode: Local port
Port: 8000
Local IP: 127.0.0.1
3. Load the Lua script
Copy
scythe_mcp/reascript/scythe_poller.luato REAPER Scripts folderActions > Load ReaScript > Select the file
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 |
| Transport control |
| Change project tempo |
| Create new track with name |
| Create MIDI item on track |
| Insert MIDI notes |
| Set volume (0-1) |
| Mute/solo toggle |
| Run any Lua code in REAPER |
| 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 generationBridge Architecture
The system uses a file-based command bridge between Python and REAPER:
Python writes commands to
%TEMP%/scythe_mcp/command.jsonLua script polls this file every 100ms
Lua executes the command and writes result to
response.jsonPython 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 toolsadd_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)
| Name | Required | Description | Default |
|---|---|---|---|
| track_number | Yes | ||
| item_index | Yes | ||
| notes | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| track_number | Yes | ||
| armed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| track_number | Yes | ||
| position | No | ||
| length | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New Track |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 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.
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.
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.
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.
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.
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)")
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| seconds | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| track_number | Yes | ||
| muted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| track_number | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| tempo | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| track_number | Yes | ||
| pan | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| track_number | Yes | ||
| volume | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| track_number | Yes | ||
| solo | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| action_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
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.
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.
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.
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
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
Convert projects between Logic, Ableton, FL Studio and REAPER; generate, separate, transcribe
Generate AI music via the Lacuna Music API from MCP clients like Claude Desktop & Code.
MCP server for Producer/Riffusion AI music generation
Create, co-edit, analyze, publish, and export collaborative step-sequencer sessions through MCP.
Related MCP Servers
- AlicenseBqualityBmaintenanceA Model Context Protocol server that enables AI agents to create fully mixed and mastered tracks in REAPER DAW, supporting project management, MIDI composition, audio recording, and mixing automation.58125MIT
- AlicenseBqualityAmaintenanceConnects AI assistants to REAPER for music production, enabling full control over tracks, MIDI, mixing, mastering, and audio analysis through 153 tools across 24 modules.17559Apache 2.0
- AlicenseCqualityAmaintenanceEnables AI assistants to control REAPER DAW via the Model Context Protocol, including track, FX, MIDI, and audio operations.4781MIT
- AlicenseNot gradedqualityAmaintenanceA comprehensive MCP server that enables AI assistants to control REAPER DAW for mixing, mastering, MIDI composition, and full music production workflows with 130 tools.45MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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