Scoring was not performed
All tool descriptions are under 100 characters and provide minimal actionable context. Most fail to answer WHAT the tool does, WHEN to use it, or WHAT it returns. Example: 'Create a new track in Reaper.' does not explain whether this affects the current project, whether tracks are 0-indexed, or what the return value represents.
Parameter descriptions are either absent or trivial. For example, 'color' in set_track_color only says 'Hex color code (e.g., "#FF0000")', it does not specify range, format requirements, or error behavior if invalid. Parameters like 'mute' in toggle_master_mute lack clarity on None semantics.
No output schemas are documented in any tool description. LLMs cannot plan downstream calls or extract data when they don't know what fields the response contains. For example, create_track returns an item ID, but this is not stated in the description or schema.
No error handling guidance is provided. Tools like delete_region and delete_marker are marked DESTRUCTIVE but descriptions do not mention recovery steps, dry-run options, or what errors to expect. LLMs have no guidance on whether to retry or escalate.
Numeric parameter ranges are not documented. set_master_volume accepts 'volume: number' but does not state the valid range (0.0 - 1.0 is mentioned in the param description, but not what happens outside that range). set_master_pan similarly lacks bounds documentation.
Positional/index parameters lack documentation of their origin or constraints. track_index and item_id are used throughout, but descriptions do not clarify whether indices are 0-based or 1-based, or what happens if an index is out of bounds.
Many tools lack clarity on whether they operate on the current project or a specific project. Descriptions do not explain project scope or whether a project must be loaded first.
Return value documentation is absent. For example, insert_audio_item returns an item ID (as seen in the code), but the description does not document this. get_item_properties describes the action but not the structure of the returned dict.
No pagination or result-limiting guidance for tools that return multiple items. get_selected_items and get_item_properties do not document how many items they return or whether results are paginated.
Some parameter type unions (e.g., item_id accepts 'integer | string') are not explained. When does an LLM know whether to pass an integer or string? What are the implications of each?
Descriptions of toggle tools (toggle_master_mute, toggle_master_solo) mention 'True to X, False to Y, None to toggle' but do not explain what the default is if the parameter is omitted, or whether None is a valid value in all calling contexts.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 27 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 38 | - | v1 |