Filopastry
Enables AI-powered live coding music generation through Strudel.cc, a web-based environment inspired by TidalCycles, providing tools for pattern generation, music theory operations, audio analysis, and real-time performance across multiple genres including techno, house, drum & bass, ambient, and jazz.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Filopastrygenerate a techno pattern with a driving bassline"
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.
Filopastry
AI-powered live coding music generation through Strudel.cc
An MCP (Model Context Protocol) server that enables AI agents to generate, manipulate, and perform algorithmic music using Strudel.cc — a web-based live coding environment inspired by TidalCycles.
Overview
Filopastry bridges the gap between AI and live-coded music. It provides 46+ tools for pattern generation, music theory operations, audio analysis, and AI-powered composition — all accessible through the Model Context Protocol.
The server automates a headless Chromium browser running Strudel.cc, allowing AI agents to write patterns, control playback, analyze audio in real-time, and generate music across multiple genres.
Key Capabilities
Pattern Generation: Create complete tracks in techno, house, drum & bass, ambient, trap, jungle, jazz, and experimental styles
Music Theory Engine: Generate scales, chord progressions, Euclidean rhythms, and polyrhythms
Real-time Audio Analysis: FFT spectrum analysis, tempo detection, key detection
AI Integration: Natural language pattern generation via DeepSeek API (optional)
Session Management: Save, load, and organize patterns with tags
Undo/Redo: Full editing history for pattern manipulation
Related MCP server: Strudel MCP Server
Prerequisites
Node.js 18.0.0 or higher
npm 9.0.0 or higher
Chromium (installed automatically by Playwright)
Installation
# Clone the repository
git clone https://github.com/youwenshao/filopastry.git
cd filopastry
# Install dependencies
npm install
# Install Playwright browsers
npx playwright install chromium
# Build the project
npm run buildConfiguration
config.json
The server reads configuration from config.json in the project root:
{
"headless": false,
"strudel_url": "https://strudel.cc/",
"patterns_dir": "./patterns",
"audio_analysis": {
"fft_size": 2048,
"smoothing": 0.8
},
"deepseek": {
"model": "deepseek-chat",
"max_tokens": 2048,
"temperature": 0.7,
"base_url": "https://api.deepseek.com"
}
}Option | Description | Default |
| Run browser without GUI (set |
|
| Strudel.cc instance URL |
|
| Directory for saved patterns |
|
| FFT window size for audio analysis |
|
| Spectrum smoothing factor (0-1) |
|
DeepSeek API (Optional)
For AI-powered pattern generation, set the DEEPSEEK_API_KEY environment variable:
export DEEPSEEK_API_KEY="your-api-key-here"Get an API key from the DeepSeek Platform.
When the API key is not configured, AI tools fall back to static pattern generation using the built-in PatternGenerator.
Usage
Running the MCP Server
# Start the server
npm start
# Or run in development mode with hot reload
npm run devValidating the Server
Test that the MCP protocol is working:
npm run validateThis sends a tools/list request and displays the available tools.
Integration with Cursor IDE
Add Filopastry to your Cursor MCP configuration:
macOS/Linux: ~/.cursor/mcp.json
Windows: %APPDATA%\Cursor\mcp.json
{
"mcpServers": {
"filopastry": {
"command": "node",
"args": ["/path/to/filopastry/dist/index.js"],
"env": {
"DEEPSEEK_API_KEY": "your-api-key-here"
}
}
}
}Restart Cursor after updating the configuration.
Tool Reference
Filopastry provides 46+ tools organized into categories:
Core Control (10 tools)
Tool | Description |
| Initialize Strudel in browser |
| Write pattern to editor |
| Append code to current pattern |
| Insert code at specific line |
| Replace pattern section |
| Start playing pattern |
| Pause playback |
| Stop playback |
| Clear the editor |
| Get current pattern code |
Pattern Generation (10 tools)
Tool | Description |
| Generate complete pattern from style (techno, house, dnb, ambient, trap, jungle, jazz) |
| Generate drum pattern |
| Generate bassline |
| Generate melody from scale |
| Generate scale notes |
| Generate chord progression |
| Generate Euclidean rhythm |
| Generate polyrhythm |
| Generate drum fill |
| Create pattern variations |
Pattern Manipulation (6 tools)
Tool | Description |
| Transpose notes by semitones |
| Reverse pattern |
| Time stretch pattern |
| Quantize to grid |
| Add human timing variation |
| Apply scale to notes |
Effects & Processing (5 tools)
Tool | Description |
| Add effect to pattern |
| Remove effect |
| Set BPM |
| Add swing to pattern |
| Validate pattern with runtime error checking |
Audio Analysis (5 tools)
Tool | Description |
| Complete audio analysis |
| FFT spectrum analysis |
| Rhythm analysis |
| BPM detection |
| Key detection |
Session Management (5 tools)
Tool | Description |
| Save pattern with metadata |
| Load saved pattern |
| List saved patterns |
| Undo last action |
| Redo action |
AI-Powered Tools (7 tools)
Requires DEEPSEEK_API_KEY environment variable for full functionality.
Tool | Description |
| Generate pattern from natural language description |
| Enhance or modify current pattern |
| Get explanation of what current pattern does |
| Get style detection, complexity assessment, suggestions |
| Generate AI-suggested variations |
| Check if DeepSeek AI is configured |
| Test DeepSeek API connection |
Performance Monitoring (2 tools)
Tool | Description |
| Get performance metrics and bottlenecks |
| Get current memory usage statistics |
Architecture
┌─────────────────────────────────────────────────────────────┐
│ MCP Protocol Layer │
│ EnhancedMCPServerFixed (46+ tools) │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────┼─────────────────────┐
▼ ▼ ▼
┌───────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ MusicTheory │ │PatternGenerator │ │ DeepSeekService │
│ (scales, │ │ (genres, drums │ │ (AI patterns, │
│ chords) │ │ bass, melody) │ │ enhancement) │
└───────────────┘ └─────────────────┘ └─────────────────┘
│
┌─────────────────────┼─────────────────────┐
▼ ▼ ▼
┌───────────────┐ ┌─────────────────┐ ┌─────────────────┐
│StrudelController│ │ AudioAnalyzer │ │ PatternStore │
│ (Playwright, │ │ (FFT, tempo, │ │ (JSON storage, │
│ browser) │ │ key detect) │ │ tags, cache) │
└───────────────┘ └─────────────────┘ └─────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Strudel.cc │
│ (Web Audio, Live Coding) │
└─────────────────────────────────────────────────────────────┘Component Overview
Component | Purpose |
EnhancedMCPServerFixed | MCP protocol handling, tool registration and routing |
StrudelController | Browser automation via Playwright, editor manipulation |
AudioAnalyzer | Real-time FFT analysis, tempo/key detection algorithms |
MusicTheory | Scale generation, chord progressions, music theory calculations |
PatternGenerator | Genre-specific pattern generation, Euclidean rhythms |
DeepSeekService | AI integration for natural language pattern generation |
PatternStore | JSON-based pattern persistence with tagging |
Troubleshooting
Browser won't launch
# Install Playwright browsers
npx playwright install chromiumBuild fails
# Clean and rebuild
npm run clean
npm run build"Browser not initialized" errors
Always run the init tool before using browser-dependent tools:
Use the init tool first, then generate_pattern, then play.Audio analysis not working
Ensure audio is actually playing (
playtool)Wait a moment for the audio context to connect
Try
analyzetool to verify connection
DeepSeek API errors
Verify API key is set: check
ai_statustool outputTest connection: use
ai_test_connectiontoolCheck API key validity at DeepSeek Platform
Pattern validation errors
The server includes safety checks for dangerous patterns (extreme gain values, eval blocks). Use validate_pattern_runtime to test patterns before playing.
Performance issues
Use performance_report to identify bottlenecks. Common optimizations:
Set
headless: truein config.json for faster operationPatterns are cached with 100ms TTL to reduce browser calls
Example Patterns
The patterns/examples/ directory contains genre-specific pattern templates:
patterns/examples/
├── ambient/
│ ├── dark-ambient.json
│ └── drone.json
├── dnb/
│ ├── liquid-dnb.json
│ └── neurofunk.json
├── house/
│ ├── deep-house.json
│ └── tech-house.json
├── jazz/
│ ├── bebop.json
│ └── modal-jazz.json
├── jungle/
│ ├── classic-jungle.json
│ └── ragga-jungle.json
├── techno/
│ ├── hard-techno.json
│ └── minimal-techno.json
└── trap/
├── cloud-trap.json
└── modern-trap.jsonPerformance
Operation | Typical Latency |
Browser initialization | 1.5-2s |
Pattern write | 50-80ms |
Pattern read (cached) | 10-15ms |
Play/Stop | 100-150ms |
Audio analysis | 10-15ms |
Tempo detection | <100ms |
Key detection | <100ms |
AI pattern generation | 2-5s (network dependent) |
Author
Youwen Shao
GitHub: @youwenshao
Email: youwenshao@gmail.com
Acknowledgments
Strudel.cc — The live coding music platform that makes this possible
TidalCycles — The inspiration behind Strudel's pattern language
Model Context Protocol — The protocol enabling AI agent integration
DeepSeek — AI capabilities for natural language pattern generation
Available Tools
50 toolsadd_effectC
Add effect to pattern
| Name | Required | Description | Default |
|---|---|---|---|
| effect | Yes | Effect name | |
| params | No | Effect parameters |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a mutation (adding an effect) but fails to disclose behavioral details such as side effects, permission requirements, or state changes. With no annotations, the description should provide more transparency about what happens when the tool is used.
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 very concise, using only four words. While it is front-loaded and straightforward, it may be overly terse. Given the simplicity of the tool, this conciseness is acceptable, but a little more context could improve it without losing efficiency.
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?
Considering the absence of annotations, output schema, and nested objects, the description is too brief to provide complete context. It does not explain the effect of adding an effect, valid values, or what happens to the pattern, leaving significant gaps for an AI 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 100% description coverage for both parameters ('effect' and 'params'). The description 'Add effect to pattern' does not add further meaning beyond what the schema already provides, so a baseline score of 3 is appropriate.
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 effect' and the target 'pattern', effectively conveying the tool's purpose. It distinguishes from its sibling 'remove_effect'. However, it lacks specificity about what constitutes an effect or which pattern is modified, 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?
No guidance is provided on when to use this tool versus alternatives like 'remove_effect' or other effect-related tools. There are no conditions, prerequisites, or context for usage, making it difficult for an AI agent to decide when to invoke this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_swingC
Add swing to pattern
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Swing amount (0-1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full responsibility for disclosing behavioral traits. It fails to state whether the tool modifies the current pattern in place, generates a new pattern, or has side effects. The brief description does not convey any behaviors 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 at one sentence with no wasted words. However, it may be too brief to be genuinely helpful, but it meets the criteria for concise structure.
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 low complexity (one parameter, no output schema, no annotations), the description is insufficient. It does not explain what swing does to the pattern, how the amount affects the result, or any context about the operation's effect.
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 100% coverage, describing the 'amount' parameter as a number between 0 and 1. The description adds no additional meaning beyond what the schema provides. Per guidelines, baseline 3 is appropriate.
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 'Add swing to pattern' indicates the action and resource, but 'swing' is a musical term that may not be universally understood by an AI agent. It is a verb+noun but lacks specificity about what swing modifies, and it does not differentiate from sibling tools like humanize or quantize.
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 (e.g., humanize, quantize). The description does not mention prerequisites, context, or conditions for invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai_analyze_patternB
Get AI analysis of the pattern including style detection, complexity assessment, and improvement suggestions
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but lacks behavioral details. It mentions 'AI analysis' but doesn't disclose traits like processing time, rate limits, authentication needs, or what 'improvement suggestions' entail. This is inadequate for a tool with potential complexity and no structured safety hints.
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 a single, efficient sentence that front-loads the core purpose ('Get AI analysis of the pattern') and lists key components. It's appropriately sized with no wasted words, though it could be slightly more structured for clarity.
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 (AI-based analysis with multiple outputs like style detection and suggestions), no annotations, and no output schema, the description is incomplete. It lacks details on return values, error conditions, or behavioral constraints, making it insufficient for reliable agent use.
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 inputs. The description doesn't need to add parameter details, and it correctly avoids redundancy. Baseline is 4 for zero-parameter tools, as no compensation is required.
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 verbs ('Get AI analysis') and resources ('pattern'), detailing what it analyzes (style detection, complexity assessment, improvement suggestions). It distinguishes from siblings like 'ai_explain_pattern' (likely explanation-focused) and 'analyze' (generic), but doesn't explicitly contrast them.
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 explicit guidance on when to use this tool versus alternatives is provided. The description implies usage for pattern analysis, but doesn't specify prerequisites, timing, or exclusions relative to siblings like 'analyze' or 'ai_explain_pattern', leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai_enhance_patternC
Enhance or modify the current pattern using AI suggestions
| Name | Required | Description | Default |
|---|---|---|---|
| enhancement_type | Yes | Type of enhancement: variation, complexity, simplify, style-transfer, fill | |
| target_style | No | Target style for style-transfer enhancement | |
| intensity | No | Intensity of the enhancement (0-1) |
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 AI suggestions but doesn't disclose behavioral traits like whether this is a read-only or mutating operation, what happens to the original pattern, authentication requirements, rate limits, or expected response format. The description is too vague about the actual behavior 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 a single, efficient sentence that gets straight to the point without unnecessary words. It's appropriately sized for a tool with three parameters and clear schema documentation. However, it could be slightly more front-loaded with key differentiators.
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 tool with no annotations, no output schema, and parameters that control AI-based pattern modification, the description is insufficient. It doesn't explain what 'current pattern' refers to, what happens after enhancement, error conditions, or performance characteristics. The context signals show this is a mutation tool (implied by 'modify'), but the description lacks critical behavioral details.
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 100%, so parameters are fully documented in the schema. The description adds no additional parameter semantics beyond implying that parameters control the enhancement process. It doesn't explain relationships between parameters (e.g., how 'target_style' interacts with 'enhancement_type') or provide usage examples.
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 ('enhance or modify') and resource ('current pattern') with the mechanism ('using AI suggestions'). It distinguishes from siblings like 'ai_generate_pattern' (creates new) and 'ai_suggest_variations' (specific enhancement type). However, it doesn't specify what constitutes a 'pattern' in this context, 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?
No explicit guidance on when to use this tool versus alternatives. While it implies usage when AI-based pattern enhancement is needed, it doesn't mention when to choose specific enhancement types or how it differs from siblings like 'generate_variation' or 'ai_suggest_variations'. The description provides no exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai_explain_patternB
Get an AI-generated explanation of what the current pattern does
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool 'gets' an explanation, implying a read-only operation, but doesn't specify if it requires AI processing time, has rate limits, or what 'current pattern' refers to in context. This leaves gaps in understanding its 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 a single, clear sentence that efficiently conveys the core purpose without any wasted words. It's front-loaded and appropriately sized for a simple tool.
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 no annotations, no output schema, and a simple input schema, the description is minimal. It explains what the tool does but lacks details on behavior, output format, or how it integrates with siblings like 'ai_analyze_pattern'. For an AI tool in a complex server, this is insufficient.
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, and schema description coverage is 100%, so no parameter information is needed. The description doesn't add param details, which is appropriate, but it could hint at implicit context like 'current pattern' being inferred from state. Baseline is 4 for zero params.
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 ('Get an AI-generated explanation') and the target ('what the current pattern does'), which is specific and understandable. However, it doesn't differentiate from sibling tools like 'ai_analyze_pattern' or 'ai_enhance_pattern', which might also involve AI analysis of patterns, so it lacks sibling distinction.
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, such as 'ai_analyze_pattern' or 'analyze', which could offer similar insights. There's no mention of prerequisites, context, or exclusions, leaving usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai_generate_patternC
Generate a Strudel pattern from natural language description using DeepSeek AI
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Natural language description of the desired pattern (e.g., "create a dark ambient drone with slow evolving textures") | |
| style | No | Optional music style hint (techno, house, dnb, ambient, jazz, etc.) | |
| key | No | Optional musical key (C, Am, F#, etc.) | |
| bpm | No | Optional tempo in BPM |
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 mentions using 'DeepSeek AI' but doesn't explain key behavioral traits: whether this is a read-only or mutating operation, potential rate limits, authentication needs, or what the output looks like (e.g., a pattern string or error handling). For an AI-based generation tool, this lack of detail is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence: 'Generate a Strudel pattern from natural language description using DeepSeek AI.' It is front-loaded with the core purpose, has zero wasted words, and is appropriately sized for the tool's complexity. Every part of the sentence earns its place by specifying the action, resource, input type, and method.
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 complexity of an AI-based generation tool with no annotations and no output schema, the description is incomplete. It doesn't explain the return value (e.g., a Strudel pattern string or error messages), behavioral aspects like rate limits or costs, or how it differs from sibling tools. For a tool that likely involves external AI services, more context is needed to guide effective use.
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 100%, so the input schema already documents all parameters (prompt, style, key, bpm) with clear descriptions. The tool description adds no additional parameter semantics beyond what's in the schema, such as examples or constraints. This meets the baseline of 3, as the schema does the heavy lifting, but the description doesn't compensate or enhance understanding.
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: 'Generate a Strudel pattern from natural language description using DeepSeek AI.' It specifies the verb ('generate'), resource ('Strudel pattern'), and method ('using DeepSeek AI'), making the function unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'generate_pattern' or 'ai_enhance_pattern,' which prevents a perfect 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. It doesn't mention sibling tools such as 'generate_pattern' (which might generate patterns without AI) or 'ai_enhance_pattern' (which might modify existing patterns), leaving the agent without context for selection. Usage is implied only through the tool's name and description, but no explicit when/when-not instructions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai_statusB
Check if DeepSeek AI features are available and configured
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions checking 'availability and configuration' but doesn't disclose behavioral traits like what 'available' means (e.g., online status, API keys), response format, error conditions, or rate limits. For a diagnostic tool with zero annotation coverage, this leaves significant gaps.
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 a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized for a simple tool and front-loaded with the core functionality.
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 output schema, no annotations), the description is minimally adequate but incomplete. It covers the basic purpose but lacks details on what 'available and configured' entails, response expectations, or integration with sibling AI tools. For a diagnostic tool, more context would be helpful.
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 baseline is 4. The description appropriately doesn't discuss parameters since none exist, avoiding redundancy with the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as checking availability and configuration of DeepSeek AI features, using specific verbs ('check', 'available', 'configured'). However, it doesn't distinguish this from sibling tools like 'ai_test_connection' or 'ai_analyze_pattern', which appear related to AI functionality but serve different purposes.
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 differentiate it from sibling tools like 'ai_test_connection' that might serve similar diagnostic purposes. Usage is implied but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai_suggest_variationsC
Generate AI-suggested variations of the current pattern
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of variations to generate (default: 3, max: 5) |
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 the tool generates variations but does not explain what 'AI-suggested' entails (e.g., based on machine learning models), potential limitations, or output format. For a tool with no annotations, this leaves significant gaps in understanding its behavior and constraints.
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 a single, efficient sentence that directly states the tool's function without unnecessary words. It is front-loaded and wastes no space, 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 complexity of AI-based generation and the lack of annotations and output schema, the description is incomplete. It does not explain what 'variations' entail, how they are generated, or what the output looks like, leaving the agent with insufficient context to use the tool effectively beyond basic parameter input.
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 100% description coverage, with the 'count' parameter documented as 'Number of variations to generate (default: 3, max: 5)'. The description does not add any additional meaning beyond this, such as explaining what 'variations' are or how they are generated. Baseline 3 is appropriate since the schema adequately covers the parameter.
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 'generate' and the resource 'AI-suggested variations of the current pattern', making the purpose understandable. However, it does not explicitly differentiate from sibling tools like 'generate_variation' or 'ai_generate_pattern', which could cause confusion about when to use this specific AI-suggested variation tool versus others.
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 such as 'generate_variation' or 'ai_generate_pattern', nor does it mention prerequisites like needing an existing pattern. It lacks explicit context or exclusions, leaving usage unclear in the broader toolset.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai_test_connectionA
Test DeepSeek API connection with a simple request to diagnose connection issues
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses the tool's diagnostic purpose and simple request behavior, but lacks details on what constitutes a 'simple request,' expected response format, error handling, or any rate limits. It adequately describes the core behavior but misses operational specifics.
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 a single, efficient sentence that front-loads the purpose ('Test DeepSeek API connection') and immediately provides usage context. Every word earns its place with zero redundancy or wasted phrasing.
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 (0 parameters, no output schema, no annotations), the description is reasonably complete for a diagnostic utility. It covers purpose and usage context well, but could benefit from mentioning expected output format or success/failure indicators to fully guide the 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 tool has 0 parameters with 100% schema description coverage. The description adds no parameter information (as none exist), which is appropriate. Baseline for 0 parameters is 4, as no compensation is needed for missing parameter 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 specific verb ('test') and resource ('DeepSeek API connection'), with explicit purpose ('diagnose connection issues'). It distinguishes itself from all sibling tools, which are music/pattern-related, by focusing on API connectivity testing.
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 explicitly states when to use this tool: 'to diagnose connection issues.' It implies when not to use it (for actual music/pattern operations) by contrasting with sibling tools, and provides clear context for troubleshooting scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyzeD
Complete audio analysis
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as side effects, authorization needs, or output format. It is completely opaque.
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 short (3 words), lacking sentence structure. It is concise but at the cost of informativeness.
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 zero parameters, no output schema, and no annotations, the description is severely incomplete. It does not convey what audio is analyzed, what the result is, or any side effects.
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 zero parameters and schema coverage is 100% trivially. While the baseline for 0 params is 4, the description fails to explain how the tool operates without parameters, reducing its value to 3.
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 'Complete audio analysis' is vague and does not specify what kind of analysis, input, or output is involved. It does not distinguish from sibling tools like analyze_rhythm or analyze_spectrum.
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 vs. alternatives. The agent has no basis to decide between analyze and other analysis tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_rhythmD
Rhythm analysis
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description must disclose behavior, but it says nothing about side effects, permissions, or what the tool actually does. The agent has no insight into tool 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 under-specified rather than concise; two words do not earn their place when they provide no useful information. Proper conciseness requires informative brevity.
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 no output schema and no annotations, the description is completely inadequate. It does not explain return values, behavior, or any preconditions needed for using the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema coverage is 100% due to zero parameters, the description adds no semantic value. It does not explain what 'rhythm analysis' entails or what the tool processes.
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 'Rhythm analysis' is a tautology that merely restates the tool name without specifying any action or scope. It fails to distinguish from sibling tools like 'analyze_spectrum' or 'analyze'.
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 such as 'detect_tempo' or 'generate_pattern'. The description lacks any context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_spectrumA
FFT spectrum analysis
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, and the description only states 'FFT spectrum analysis' without disclosing behavioral traits such as whether it is read-only, latency expectations, or potential side effects. The agent must infer that it is a read 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 (three words) with no unnecessary information. Every word is meaningful.
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 zero parameters and no output schema, the description is minimally sufficient but lacks details about the output format (e.g., frequency bins, amplitude values). Among many sibling analysis tools, more context 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 input schema has zero parameters with 100% schema description coverage (empty schema). With no parameters, the description does not need to add parametric detail. Baseline 4 is appropriate.
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 'FFT spectrum analysis' uses a specific verb ('analyze') and resource ('spectrum') with a clear method ('FFT'). It distinguishes from siblings like 'analyze' (generic) and 'analyze_rhythm' (rhythm-focused).
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 on when to use this tool versus alternatives like 'analyze', 'analyze_rhythm', or 'detect_key'. The description does not mention prerequisites, context, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
appendC
Append code to current pattern
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Code to append |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose any behavioral traits such as side effects, requirements (e.g., pattern must exist), or return behavior. The burden is on the description but it offers only the bare 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 very short (one sentence) and front-loaded. While concise, it could include more useful context without becoming overly long.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with no output schema, the description omits crucial context: what happens after append, persistence, pattern state requirements. It feels incomplete for effective use.
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 100% for the single parameter 'code'. The description repeats the schema's intent without adding new meaning (e.g., what kind of code, format). Baseline score of 3 is appropriate.
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 (append) and the resource (code to current pattern). It is specific enough to distinguish from siblings like 'insert' or 'write', though it does not explicitly differentiate.
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 on when to use this tool versus alternatives such as 'insert' or 'replace'. The description lacks context about prerequisites or suitable scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_scaleC
Apply scale to notes
| Name | Required | Description | Default |
|---|---|---|---|
| scale | Yes | Scale name | |
| root | Yes | Root note |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full burden. It lacks disclosure of mutability, side effects, or whether it modifies notes in place or returns new data.
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?
Extremely concise (4 words) but under-specified; it prioritizes brevity over informativeness, leaving the agent with too little context.
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 no output schema and no annotations, the description fails to explain the tool's effect or outcome, making it insufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both 'scale' and 'root', so the description adds no extra meaning beyond what the schema already provides.
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 'Apply scale to notes' is a verb+resource but vague; it doesn't specify what 'apply' means (e.g., constrain, quantize, or transpose). It does not distinguish from siblings like 'transpose' or 'quantize'.
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 given on when to use this tool versus alternatives like 'quantize' or 'transpose'. There is no context for prerequisites or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clearC
Clear the editor
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must disclose behavior. 'Clear the editor' does not indicate whether the operation is destructive, reversible, or requires confirmation. This is insufficient for a potentially destructive 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 only three words, which is terse but lacks necessary detail. Under-specification is penalized, as it fails to earn its place without adding sufficient value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description must be complete. 'Clear the editor' provides almost no context about what is cleared, side effects, or state changes, making it inadequate.
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?
There are no parameters, so the description cannot add parameter-level meaning beyond the schema. Per guidelines, 0 parameters gives a baseline of 4. The description does not contradict this.
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 'Clear the editor' specifies a verb and resource, but 'the editor' is vague and does not distinguish between clearing the entire session, current pattern, or selection. Compared to siblings like 'replace' or 'undo', the scope is unclear.
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 'undo' or 'replace'. The agent is left to infer usage context without explicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
detect_keyC
Key detection
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral aspects (e.g., whether it's read-only, what it returns, or side effects). The tool is completely opaque beyond its name.
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 (two words) and front-loaded. However, it may be too terse, sacrificing clarity for brevity. A slightly longer description would improve value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, no output schema, and no annotations, the description is insufficient. It lacks any behavioral details, making it incomplete for an agent to understand what the tool does or expects.
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?
There are zero parameters, and the schema coverage is trivially 100%. The description adds no additional meaning, but the baseline for zero parameters is 4. No further parameter information 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 'Key detection' clearly identifies the verb (detect) and resource (key), distinguishing it from siblings like 'detect_tempo'. However, it doesn't specify the scope of detection (e.g., current audio or pattern), which slightly reduces clarity.
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 on when to use this tool versus alternatives. Siblings like 'analyze' or 'detect_tempo' might provide similar information, but the description lacks any context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
detect_tempoC
BPM detection
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description fails to disclose any behavioral traits such as what state is read, whether the tool is idempotent, or what side effects occur. With annotations absent, the description must carry the burden, and it does not.
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?
Extremely concise (one phrase), but too brief to earn a score of 5. It is adequately sized given the lack of parameters, but misses the opportunity to add context like output or prerequisites.
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?
Despite low complexity (no params, no output schema), the description is too minimal. It does not explain what BPM detection entails, e.g., whether it uses current audio or pattern, or what the output format is.
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?
There are zero parameters and the schema is fully covered (100%). Per guidelines, baseline is 4 for 0-param tools, so this score is appropriate.
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?
Description 'BPM detection' is tautological, restating the tool's name 'detect_tempo' without adding new information. It does not distinguish this tool from siblings like 'set_tempo' or 'analyze'.
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 on when to use this tool versus alternatives like 'analyze' or 'set_tempo'. Missing any context about prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_basslineD
Generate bassline
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Musical key | |
| style | Yes | Bass style |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits, but it does not. It fails to mention whether the tool is destructive, what it returns, or any side effects.
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?
At only two words, the description is extremely concise but severely under-specified. It sacrifices necessary information for brevity.
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 absence of annotations, output schema, and the minimal description, the tool definition is grossly incomplete. An AI agent lacks the context needed to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with each parameter having a basic description. The tool description adds no extra meaning beyond the schema, so a baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Generate bassline' provides a verb and resource but is too generic and does not differentiate from sibling tools like generate_drums, generate_melody, or generate_pattern. It barely rises above a tautology.
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 given on when to use this tool versus alternatives such as generate_chord_progression or generate_fill. The context of use is entirely implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_chord_progressionD
Generate chord progression
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Key | |
| style | Yes | Style (pop/jazz/blues/etc) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations and a bare description, there is no disclosure of behavioral traits such as whether the tool uses AI, constraints on chord patterns, or repeatability of results.
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 short but under-specified, not concise. It fails to convey essential information in a structured manner.
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 moderate complexity (2 parameters, no output schema), the description is completely inadequate. It lacks any explanation of output format, expected behavior, or usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with basic descriptions for key and style, but the tool description adds no additional meaning beyond what the schema already provides. Baseline of 3 is appropriate.
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 'Generate chord progression' is a tautology, restating the tool name without adding any specificity about what type of progression is generated or how it differs from similar 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?
No guidance is provided on when to use this tool versus alternatives like generate_bassline or generate_melody, nor any context about prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_drumsC
Generate drum pattern
| Name | Required | Description | Default |
|---|---|---|---|
| style | Yes | Drum style | |
| complexity | No | Complexity (0-1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavioral traits, but it only states 'Generate drum pattern' without indicating side effects, whether it modifies state, or what gets returned. This is a critical gap for a generative 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 very concise but under-specified. It earns its place stating the purpose, yet lacks required detail. Better to expand with key behavioral info while maintaining brevity.
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 high number of sibling generation tools and no output schema or annotations, the description is incomplete. It does not clarify what the tool returns, how it interacts with the session, or how it differs from similar tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is at 100%, so the baseline is 3. The description adds no extra meaning beyond the schema's minimal parameter descriptions ('Drum style', 'Complexity (0-1)'), failing to elaborate on acceptable values or usage hints.
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 'Generate drum pattern' clearly states the verb and resource, distinguishing it from sibling tools like generate_melody or generate_bassline. However, it lacks specifics about the nature of the drum pattern (e.g., MIDI, audio) or further differentiation.
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 generate_pattern or generate_fill. The description does not mention contexts, prerequisites, or exclusions, leaving the AI agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_euclideanC
Generate Euclidean rhythm
| Name | Required | Description | Default |
|---|---|---|---|
| hits | Yes | Number of hits | |
| steps | Yes | Total steps | |
| sound | No | Sound to use |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states 'Generate Euclidean rhythm' without explaining side effects, return format, or prerequisites. The agent lacks information on whether this modifies state, returns data, or just outputs sound.
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 a single sentence, avoiding any fluff. However, under-specification is penalized in other dimensions.
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 many sibling generation tools and no output schema, the description is incomplete. It does not explain the result type, how it interacts with other tools, or what a Euclidean rhythm is, leaving gaps for effective AI use.
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 100% coverage with descriptions for each parameter (hits, steps, sound), so the baseline is 3. The tool description adds no extra meaning beyond the schema, so no bonus.
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 names the action 'generate' and the resource 'Euclidean rhythm', specifying the type of tool. However, it does not differentiate from siblings like generate_drums or generate_melody, leaving ambiguity for the AI agent.
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 usage guidelines are provided. The description fails to indicate when to use this tool versus other rhythm or pattern generation tools, requiring the AI agent to infer based solely on the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_fillC
Generate drum fill
| Name | Required | Description | Default |
|---|---|---|---|
| style | Yes | Fill style | |
| bars | No | Number of bars |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It fails to disclose any behavioral traits such as whether the tool is destructive, requires an existing pattern, or how it interacts with the session 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?
At three words, the description is extremely short but this is under-specification rather than efficient conciseness. It omits crucial context needed for correct tool selection.
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 complexity of the domain (drum generation among many similar 'generate_' tools) and the lack of output schema, the description is incomplete. It provides no information on output format, expected behavior, or relation to other tools.
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 100%, so baseline applies. The description adds no additional meaning beyond the schema's param descriptions and field names, resulting in neither harm nor extra value.
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 verb and resource ('Generate drum fill'), providing a basic purpose. However, it does not distinguish this tool from siblings like generate_drums or generate_pattern, leaving ambiguity about what a 'drum fill' specifically entails.
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 given on when to use this tool versus alternatives. There is no mention of prerequisites, context, or when to avoid it, leaving the agent without decision-making support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_melodyC
Generate melody from scale
| Name | Required | Description | Default |
|---|---|---|---|
| scale | Yes | Scale name | |
| root | Yes | Root note | |
| length | No | Number of notes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behaviors like determinism, state changes, or output format. It only says 'generate melody' with no additional behavioral context.
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 a single sentence with no waste, but it omits important details that could be added without loss of conciseness. Front-loaded but too terse.
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 3 parameters, no output schema, and many sibling tools, the description lacks context about return values, parameter constraints, or how this tool fits into a workflow. Inadequate for its complexity.
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?
Input schema has 100% coverage; descriptions like 'Scale name' suffice. The tool description adds no new meaning beyond the schema, so baseline 3 is appropriate.
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 (generate) and resource (melody) with a source (scale), but does not distinguish from sibling tools like generate_bassline or generate_drums. It is clear but lacks differentiation.
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 generate_melody versus alternatives, nor any prerequisites or constraints (e.g., scale format, root note conventions).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_patternC
Generate complete pattern from style
| Name | Required | Description | Default |
|---|---|---|---|
| style | Yes | Music style (techno/house/dnb/ambient/etc) | |
| key | No | Musical key | |
| bpm | No | Tempo in BPM |
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. While 'generate' implies creation, it doesn't specify what 'complete pattern' means in terms of output format, whether it's a one-time generation or iterative, what happens with the generated pattern (saved, played, returned), or any constraints like computational requirements. For a generation tool with zero annotation coverage, this is insufficient.
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 at just 4 words ('Generate complete pattern from style'), with no wasted words. It's front-loaded with the core action and resource. Every word earns its place by establishing the tool's fundamental purpose efficiently.
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 complexity of pattern generation, no annotations, no output schema, and many similar sibling tools, the description is incomplete. It doesn't explain what constitutes a 'complete pattern', how the output is structured or returned, or how this differs from other generation tools. For a creative generation tool in a crowded namespace, more context is needed.
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 100%, so the schema already documents all three parameters (style, key, bpm) with clear descriptions. The description mentions 'style' but doesn't add any semantic context beyond what the schema provides about how these parameters influence pattern generation. With high schema coverage, the baseline score of 3 is appropriate.
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 'Generate complete pattern from style', specifying the verb 'generate' and the resource 'complete pattern'. It distinguishes from siblings like 'generate_bassline' or 'generate_drums' by indicating it creates a full pattern rather than specific components. However, it doesn't explicitly contrast with 'ai_generate_pattern' or other pattern-related 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 no guidance on when to use this tool versus alternatives. With many sibling tools like 'generate_bassline', 'generate_drums', 'ai_generate_pattern', and 'get_pattern', there's no indication of when this specific pattern generation tool is appropriate versus those other options. The description simply states what it does without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_polyrhythmD
Generate polyrhythm
| Name | Required | Description | Default |
|---|---|---|---|
| sounds | Yes | Sounds to use | |
| patterns | Yes | Pattern numbers |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations and the description gives no behavioral details, such as side effects, return values, or whether it modifies existing 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?
Extremely short but lacks substance; under-specification rather than concise clarity.
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 complexity of polyrhythm generation and no output schema, the description fails to provide essential context about functionality or results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with minimal descriptions ('Sounds to use', 'Pattern numbers'), but the tool description adds no further meaning or relationship between parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description 'Generate polyrhythm' is a tautology repeating the tool name. It does not indicate what a polyrhythm is or differentiate from siblings like generate_drums or generate_pattern.
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 information on when to use this tool versus alternatives; no prerequisites or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_scaleC
Generate scale notes
| Name | Required | Description | Default |
|---|---|---|---|
| root | Yes | Root note | |
| scale | Yes | Scale type |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description provides no behavioral disclosure (e.g., side effects, return format, required permissions). For a generation tool, significant gaps exist.
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?
Extremely concise at three words, no wasted text. However, possibly too minimal for adequate guidance.
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?
Lacks output schema and does not explain what 'scale notes' means or what the tool returns. For a simple tool, more context about the output format is needed.
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 covers 100% of parameters with descriptions. The tool description adds no additional meaning beyond the schema, so baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it generates scale notes with the tool name reinforcing this. Distinguishes itself from sibling tools like generate_melody or generate_bassline, though it lacks specificity on what exactly is generated.
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 on when to use this tool compared to alternatives like generate_pattern or suggest_pattern_from_audio. No prerequisites or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_variationC
Create pattern variations
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Variation type (subtle/moderate/extreme/glitch/evolving) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only says 'create pattern variations'. It fails to disclose side effects, dependencies, or whether it modifies an existing pattern. No behavioral traits are revealed.
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 (two words), but this comes at the cost of clarity. It's not structured to convey essential information efficiently.
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 lack of output schema and annotations, the description is insufficient. It doesn't explain return values, prerequisites, or the concept of 'pattern variations'. More context is needed for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter, and its description lists variation types. The tool description adds no extra semantic value beyond what the schema provides, earning the baseline score.
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 'Create pattern variations' includes a verb and resource, but lacks specificity. It's unclear whether it creates variations of an existing pattern or generates standalone variations. Compared to siblings like generate_bassline or generate_melody, the purpose is vague and doesn't differentiate.
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 on when to use this tool versus alternatives such as generate_pattern, refine, or humanize. It doesn't specify prerequisites like a loaded pattern or session, leaving the agent without usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_patternA
Get current pattern code
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a non-destructive read operation through the verb 'Get', but it does not explicitly state that it makes no modifications. Since no annotations are provided, the description carries the full burden, and while adequate, it could be more explicit.
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 at four words with no unnecessary information. Every word is essential and earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (no parameters, no output schema), the description is mostly complete. It clearly tells the agent what the tool does, though a brief note on the meaning of 'pattern code' would enhance 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?
With zero parameters, the input schema is fully covered. The description correctly omits parameter details, and per the rubric, the baseline score for no 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 'Get current pattern code' clearly states the action (get) and the resource (current pattern code). It distinguishes from sibling tools like 'generate_pattern' and 'validate_pattern_runtime' by focusing on retrieval of the existing pattern.
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, such as 'list_history' or 'load'. There is no mention of prerequisites or context for using this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
humanizeB
Add human timing variation
| Name | Required | Description | Default |
|---|---|---|---|
| amount | No | Humanization amount (0-1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It only says 'Add human timing variation' without disclosing whether the operation is destructive, reversible, or what elements it affects. This is insufficient for understanding side effects.
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 a single, concise phrase with no wasted words. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description is minimal but somewhat adequate. However, it lacks any behavioral context (e.g., effect on existing patterns, repeatability) that would make it more 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?
The input schema has 100% description coverage for the single parameter 'amount', with the description 'Humanization amount (0-1)'. The main description adds no extra meaning beyond what the schema provides, so baseline score of 3 is appropriate.
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 'Add human timing variation' clearly states the action (add) and the resource (human timing variation), but does not explicitly differentiate from siblings like 'add_swing' or 'quantize'. It is sufficiently clear for a simple tool.
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 usage guidance is provided. There is no mention of when to use this tool versus alternatives or any prerequisites. A single sentence with no 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.
initB
Initialize Strudel in browser
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as side effects, required permissions, or state changes. 'Initialize' implies setup but lacks specifics.
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 a single, concise sentence that is front-loaded. It avoids verbosity, but could benefit from a bit more context without sacrificing conciseness.
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 no parameters, the description is minimally complete. However, the absence of output schema and annotations means the agent gains little insight into what initialization entails, which is a gap for a potentially impactful action.
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 no parameters, so schema coverage is 100%. The description adds no parameter information but is not required to; baseline of 4 is appropriate.
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 'Initialize' and the resource 'Strudel', indicating it sets up the Strudel environment. However, it does not differentiate from sibling tools like 'session' or 'browser_window' which might have overlapping functionality.
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. The description lacks context about prerequisites or typical usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
insertC
Insert code at specific line
| Name | Required | Description | Default |
|---|---|---|---|
| position | Yes | Line number | |
| code | Yes | Code to insert |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description does not disclose behavioral traits such as whether insertion modifies in-place, is destructive, or requires an active session. Minimal beyond name.
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?
Single sentence, no fluff, front-loaded. However, could be expanded with useful context without losing conciseness.
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?
Adequate for a simple insert operation with full schema coverage, but lacks details on side effects, return values, and usage context given no output schema and no annotations.
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 has 100% description coverage for both parameters (position: 'Line number', code: 'Code to insert'). Description adds no extra semantics beyond what schema already provides.
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?
Description clearly states verb (insert), resource (code), and location (at specific line). It distinguishes from siblings like 'append' (add to end) and 'replace' (overwrite), but does not explicitly differentiate.
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 on when to use this tool versus alternatives like 'append' or 'replace'. Missing context about prerequisites or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listC
List saved patterns
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | Filter by tag |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavior, but it merely states the action without mentioning read-only nature, result format, or side effects. This is insufficient for an AI agent to understand the tool's 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 extremely concise (three words), but it sacrifices context. It is not overly verbose, yet it could be better structured with more detail to aid understanding without becoming lengthy.
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 (one optional parameter, no annotations, no output schema), the description is incomplete. It does not explain what 'saved patterns' are, the output format, or any behavioral details, leaving gaps for an AI 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 100% coverage with a single parameter 'tag' described as 'Filter by tag'. The description adds no additional meaning beyond what the schema provides, meeting the baseline expectation.
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 'List saved patterns' clearly indicates the tool's action (list) and resource (saved patterns). It is specific enough to distinguish from sibling tools like 'list_history' or 'list_sessions', though it does not explicitly differentiate itself.
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 such as 'list_history', 'list_sessions', or 'get_pattern'. The description lacks context for appropriate invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
loadC
Load saved pattern
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Pattern name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must reveal behavioral traits. It states 'Load saved pattern' but does not disclose whether the operation is destructive (overwrites current pattern), requires permissions, or has side effects like modifying session 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 extremely concise (2 words), which is efficient but lacks necessary details. While it avoids verbosity, the brevity comes at the cost of completeness.
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 (1 param, no output schema), the description is still too sparse. It fails to explain the operation's effect on the current pattern or session, leaving the agent uncertain about behavior.
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 has 100% coverage with one parameter 'name' described as 'Pattern name'. The description adds no extra meaning beyond the schema, so a baseline score of 3 is appropriate.
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 'Load saved pattern' uses a clear verb and resource, indicating the tool loads a previously saved pattern. However, it does not elaborate on what 'load' entails (e.g., replacing current pattern, merging, or selecting), and lacks differentiation from siblings like 'get_pattern' which retrieves pattern data.
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 such as 'get_pattern', 'save', or 'list'. The agent receives no context about prerequisites (e.g., pattern must exist) or whether loading clears the current session.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_usageA
Get current memory usage statistics
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description accurately describes a read-only retrieval of statistics, with no destructive or complex behaviors implied.
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 a single, concise sentence that front-loads the purpose with no 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?
For a parameterless tool with no output schema, the description adequately informs the agent. It could optionally detail what 'statistics' includes, but the current version is sufficient.
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?
No parameters exist, so the description need not add parameter details. The input schema has 100% coverage (empty), and the description is fine.
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 'Get current memory usage statistics' clearly indicates the action (get) and what's retrieved (memory usage statistics). It distinguishes from sibling tools which are mostly music generation/audio, making it unique.
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 for checking memory usage; no when-not-to-use or alternatives are needed given the tool's simplicity and distinct purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pauseA
Pause playback
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior. It states 'Pause playback', implying temporary suspension, but lacks details on state, side effects, or reversibility. Minimal but acceptable for a simple command.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two words, perfectly concise. No wasted text.
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 zero parameters, no output schema, and a straightforward action, the description is sufficiently complete. Sibling tools like 'stop' have similar minimal descriptions, so no extra context is missing.
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?
No parameters exist, and schema coverage is 100%. The description adds no parameter information, but baseline 4 is appropriate as no additional value 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 'Pause playback' uses a specific verb ('Pause') and resource ('playback'), clearly indicating the action. It distinguishes itself from sibling tools like 'play' and 'stop'.
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 on when to use this tool versus alternatives like 'stop' or 'play'. The description does not provide any usage context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
performance_reportB
Get performance metrics and bottlenecks
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must fully explain behavioral traits. It only states that the tool retrieves data, but omits details such as side effects, latency, output format, or whether the tool is safe to call frequently. This is insufficient for informed 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 a single, short sentence that is immediately clear and free of unnecessary words. It is efficiently front-loaded with the core purpose.
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 tool with no parameters and no output schema, the description is minimal but arguably sufficient for basic understanding. However, given the large number of sibling tools with similar descriptions, more context on what specific metrics and bottlenecks are included 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?
With zero parameters and 100% schema coverage, the baseline is 4. The description adds no param-specific meaning, but no parameters exist to document. This is acceptable for a parameterless tool.
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 'Get performance metrics and bottlenecks' clearly states the action and resource, indicating the tool retrieves performance data. However, it does not distinguish it from sibling tools like 'diagnostics', 'analyze', or 'memory_usage', which may overlap in purpose.
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 lacks context on prerequisites, exclusions, or suggested use cases, leaving the agent without decision criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
playC
Start playing pattern
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description gives no information about side effects, state changes, or required authorizations. The agent has no way to know if starting playback is destructive or what state it leaves the system in.
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 very short, but lacks necessary detail. It is concise, but at the expense of completeness.
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 lack of output schema and annotations, the description is the sole source of information. It is insufficient to fully understand the tool's behavior, especially in the context of many sibling tools.
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?
There are zero parameters and schema coverage is 100%, so the baseline score is 3. The description adds no additional meaning beyond what is already obvious from the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Start playing pattern' indicates a verb and resource but is overly vague. It does not specify what 'play' means in context (e.g., playback of an existing pattern), and with many sibling tools like 'generate_pattern' and 'compose', the purpose is not clearly distinguished.
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 'pause', 'stop', or 'generate_pattern'. There is no mention of prerequisites, context, or conditions for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quantizeC
Quantize to grid
| Name | Required | Description | Default |
|---|---|---|---|
| grid | Yes | Grid size (e.g., "1/16") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description fails to disclose any behavioral traits such as whether quantization is destructive, affects all tracks, or can be undone. This is a critical gap 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 brief (4 words) and lacks necessary context. It is under-specified rather than concise, as it fails to explain what is being quantized or the tool's scope.
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?
Despite being a simple tool with one parameter, the description omits essential details such as the effect on the current pattern or session, and there is no output schema to clarify return values. The description is inadequate for proper agent usage.
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 100% with the parameter 'grid' having a clear example. The tool description adds no additional meaning beyond what the schema already provides, resulting in a baseline score.
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 'Quantize to grid' clearly states the verb (quantize) and resource (grid), making the basic purpose understandable. However, it does not distinguish this tool from siblings like 'humanize' or 'stretch', which are also editing functions.
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. There is no mention of prerequisites, selection requirements, or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redoC
Redo action
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description fails to disclose any behavioral traits, such as side effects, redo stack depth, or whether it applies to all undoable actions.
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?
Extremely concise at two words, but earns its place by stating the core function. Could be slightly improved with more detail without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple redo with no parameters, the description is minimally acceptable. However, it does not specify return value or behavior when no action to redo, leaving 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?
No parameters exist, so baseline is 4, but description adds no explanation that no input is needed. Schema coverage is trivial (100%), so a score of 3 is appropriate.
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?
Description 'Redo action' clearly indicates the tool redoes a previous action, distinguished from sibling 'undo'. However, it lacks specificity about which action is redone.
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 on when to use this tool vs alternatives like 'undo' or other operations. Agent must infer that it follows a previous undo.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_effectC
Remove effect
| Name | Required | Description | Default |
|---|---|---|---|
| effect | Yes | Effect to remove |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided and the description gives no behavioral context (e.g., reversibility, dependencies).
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?
Extremely concise but lacks structure; one sentence is sufficient but it's minimal.
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 many sibling tools and no output schema, the description is insufficient for an agent to understand the tool's full effect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a description for the parameter, so the description adds no extra semantics.
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 'Remove effect' clearly states the action and resource, and it distinguishes from sibling 'add_effect'.
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 on when to use this tool versus alternatives, e.g., replacing an effect.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replaceC
Replace pattern section
| Name | Required | Description | Default |
|---|---|---|---|
| search | Yes | Text to replace | |
| replace | Yes | Replacement text |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It only says 'Replace pattern section', which hints at mutation but lacks details on side effects, state requirements, or what happens to the pattern. The description is too brief to be transparent.
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 short, which could be seen as concise, but it lacks sufficient information to be helpful. It is not front-loaded with key details and does not earn its place as a complete communication.
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 tool with 2 simple parameters and no output schema, the description should provide basic context. It does not explain what constitutes a 'pattern section' or how the replacement operates, leaving the agent to infer from the schema alone.
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 100%, so the parameters are already documented in the schema. The description does not add any additional meaning or context beyond the schema, so baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb 'Replace' and resource 'pattern section', but it is ambiguous what a pattern section is. It does not distinguish from sibling tools like append, insert, or update that also modify patterns.
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 on when to use this tool over alternatives. There is no mention of prerequisites, constraints, or when not to use it, leaving the agent without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reverseB
Reverse pattern
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description 'Reverse pattern' is insufficient to disclose behavioral traits. It does not explain what 'reverse' means (e.g., reversing note order, time, or pitch) or what effect it has. No safety or side-effect information is given.
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 at two words. While it meets conciseness, it lacks structure (e.g., no front-loading of key information). Every word is earned, but more detail could be added without harming conciseness.
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 simplicity (no parameters, no output schema) and many sibling tools, the description is minimally complete. It states the basic action but does not explain what pattern is affected (e.g., the current pattern) or what the reversal entails. Additional context would improve usability.
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 zero parameters, so the baseline is 4 as per instructions. The description adds no parameter-specific meaning, but there are no parameters to describe. The schema coverage is 100%, and the description does not bring additional value.
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 'Reverse pattern' clearly identifies the action (reverse) and the resource (pattern). It is specific and distinguishes the tool from siblings like 'generate_pattern' or 'apply_scale', though it lacks additional context that would earn a higher 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?
No usage guidance is provided. The description does not mention when to use this tool versus alternatives, nor does it state any prerequisites or conditions for its use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
saveC
Save pattern with metadata
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Pattern name | |
| tags | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but provides minimal behavioral info. It implies a mutation (save) but doesn't disclose side effects (overwriting, required state, validation) or return value.
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?
Extremely short (4 words), but this brevity sacrifices clarity. Useful details about scope, persistence, and behavior are omitted, making it under-specified rather than concise.
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 complexity (many sibling tools, no output schema), the description fails to provide adequate context. It doesn't explain what 'save' means in this environment or how the pattern is retrieved later.
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 describes 'name' (Pattern name) but 'tags' lacks description. The description's 'with metadata' hints at tags' role but adds little value. With 50% schema coverage, the tool should compensate more.
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 'Save pattern with metadata' identifies the action (save) and resource (pattern), but it's vague on what saving entails (persistence location, session context). It distinguishes from 'load' but not from 'write', a sibling with potentially overlapping functionality.
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 explicit guidance on when to use this tool versus siblings like 'write' or 'export_midi'. The description does not state prerequisites (e.g., active session) or expected context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_tempoC
Set BPM
| Name | Required | Description | Default |
|---|---|---|---|
| bpm | Yes | Tempo in BPM |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description fails to disclose any behavioral traits like valid BPM range, side effects, or persistence; completely opaque.
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?
Extremely concise with two words, no wasted text; however, this brevity comes at the cost of completeness.
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 no output schema and no annotations, the description is far too minimal; critical context like valid BPM range, effect on playback, and error conditions are missing.
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 no value beyond the schema which already describes 'bpm' as 'Tempo in BPM'; the tool name itself already conveys the same 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 'Set BPM' clearly states the action (set) and the resource (BPM/tempo), which is specific and distinguishes it from sibling tools like 'detect_tempo'.
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 on when to use this tool versus alternatives such as 'detect_tempo' or other tempo-related operations; lacks context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stopC
Stop playback
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description should disclose behavior but only says 'Stop playback'. It does not specify side effects (e.g., whether it resets to beginning) or safety profile.
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?
Extremely concise (two words) but lacks a complete sentence structure. It could be slightly more descriptive without adding length.
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 no output schema and no annotations, the description is minimal. For a simple stop action, it may be adequate but lacks context about state changes.
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?
No parameters exist, so schema coverage is 100%. The description is unnecessary for parameters, earning a baseline 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 clearly states the action (stop) and resource (playback). It is easily understood and distinguishable from siblings like 'pause' and 'play'.
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 on when to use this tool versus alternatives such as 'pause'. The description does not mention any prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stretchD
Time stretch pattern
| Name | Required | Description | Default |
|---|---|---|---|
| factor | Yes | Stretch factor |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry full burden. It does not disclose whether the operation is destructive, reversible, or how the factor parameter affects the pattern.
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 only two words, which is under-specified rather than concise. It fails to provide enough information for an agent to use the tool correctly.
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 schema (one param) and no output schema, the description is still incomplete. An agent cannot determine what 'time stretch' means or how to set the factor.
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 has 100% coverage with a basic description for 'factor', but the tool description adds no meaning beyond that. It doesn't explain what the factor represents (e.g., >1 stretches out, <1 compresses).
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 'Time stretch pattern' vaguely names the action and resource but fails to define what time stretching does (e.g., lengthen/shorten duration). It doesn't distinguish from sibling tools like 'reverse' or 'quantize'.
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 on when to use this tool versus alternatives. Sibling list includes many pattern modifiers, but description gives no context for choosing this over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transposeC
Transpose notes by semitones
| Name | Required | Description | Default |
|---|---|---|---|
| semitones | Yes | Semitones to transpose |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description is minimal. It does not disclose whether the operation is destructive, if it modifies the pattern in place or returns a new one, or any side effects. The description assumes the user knows the behavior, which is insufficient.
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 very concise, only one sentence with no fluff. However, it could be expanded slightly to include basic behavioral info without losing conciseness.
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 lack of output schema and minimal description, the tool context is incomplete. The description does not explain what happens after transposition (e.g., effect on existing pattern, boundaries on semitones), which is necessary for correct usage.
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 100% coverage, with the parameter described as 'Semitones to transpose'. The description adds no additional meaning beyond the schema, so a baseline of 3 is appropriate.
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 (transpose), the resource (notes), and the parameter (by semitones), making the purpose obvious. However, it does not differentiate from sibling tools like apply_scale or quantize, which could overlap in function.
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 such as apply_scale or shift_mood. It lacks information on context, prerequisites, or conditions for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
undoB
Undo last action
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose important behavioral traits, such as whether the operation is destructive, what happens if there is no action to undo, or if it only affects the current session.
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 at three words, with no wasted information. It is appropriately front-loaded and easy to understand.
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 simplicity of the tool (no parameters, no output schema), the description is adequate but lacks details on edge cases, such as behavior when no previous action exists or how 'last action' is defined.
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?
There are no parameters, so the schema covers all. The description adds no parameter information, but that is acceptable given the baseline of 4 for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Undo last action' clearly states the action (undo) and the resource (last action). It is distinct from sibling tools like 'redo' or 'clear'.
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 given on when to use this tool versus alternatives like 'restore_history' or 'clear'. The description assumes the agent knows when to invoke undo.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_pattern_runtimeB
Validate pattern with runtime error checking (monitors Strudel console for errors)
| Name | Required | Description | Default |
|---|---|---|---|
| pattern | Yes | Pattern code to validate | |
| waitMs | No | How long to wait for errors (default 500ms) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully convey behavioral traits. It mentions monitoring the console for errors, implying execution of the pattern, but does not disclose whether the tool modifies state, requires an active session, or has any side effects. This is insufficient for a tool that likely runs code.
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 a single sentence, front-loaded with verb and resource, and includes a parenthetical that explains the unique feature. Every word adds value, and it is highly concise without omitting critical purpose.
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?
The description lacks information about prerequisites (e.g., does a session need to exist?), return values (e.g., success/failure, error messages?), and how the tool integrates with other tools. Given the complexity of a validation tool and the absence of an output schema, the description is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The tool description adds the context of monitoring the console, which ties the waitMs parameter to error detection, but the schema descriptions already cover the parameters adequately. No significant extra value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Validate' and the resource 'pattern', adding 'runtime error checking' which distinguishes it from any potential static validation. There are no sibling tools with similar names, so the purpose is unique and specific.
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, nor does it mention preconditions or exclusions. The agent has no information about scenarios where this tool is appropriate or inappropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
writeC
Write pattern to editor
| Name | Required | Description | Default |
|---|---|---|---|
| pattern | Yes | Pattern code |
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 implies a write/mutation operation ('Write'), but doesn't disclose behavioral traits such as whether this overwrites existing content, requires specific editor state, has side effects, or what happens on success/failure. For a mutation tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's front-loaded with the core action, though it could be more informative. It earns a 4 for being concise, but loses a point for under-specification rather than true brevity.
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 complexity implied by sibling tools (e.g., pattern manipulation in an editor), no annotations, no output schema, and a mutation operation, the description is incomplete. It doesn't explain the editor context, return values, error conditions, or how it integrates with other tools, leaving significant gaps for 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?
Schema description coverage is 100%, with the single parameter 'pattern' documented as 'Pattern code'. The description adds no meaning beyond this, as it doesn't explain what constitutes a 'pattern' or provide examples. Baseline is 3 since the schema handles parameter documentation adequately.
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 'Write pattern to editor' states a verb ('Write') and resource ('pattern to editor'), but it's vague about what 'editor' refers to and doesn't distinguish from siblings like 'append', 'insert', or 'replace'. It provides a basic purpose but lacks specificity about the editor context or how this differs from similar 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?
No guidance is provided on when to use this tool versus alternatives. With siblings like 'append', 'insert', and 'replace' that might modify patterns in different ways, the description offers no context, prerequisites, or exclusions to help an agent choose appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
50 tool updates
v2.2.0- First observed
add_effect - First observed
add_swing - First observed
ai_analyze_pattern - First observed
ai_enhance_pattern - First observed
ai_explain_pattern - First observed
ai_generate_pattern - First observed
ai_status - First observed
ai_suggest_variations - First observed
ai_test_connection - First observed
analyze - First observed
analyze_rhythm - First observed
analyze_spectrum - First observed
append - First observed
apply_scale - First observed
clear - First observed
detect_key - First observed
detect_tempo - First observed
generate_bassline - First observed
generate_chord_progression - First observed
generate_drums - First observed
generate_euclidean - First observed
generate_fill - First observed
generate_melody - First observed
generate_pattern - First observed
generate_polyrhythm - First observed
generate_scale - First observed
generate_variation - First observed
get_pattern - First observed
humanize - First observed
init - First observed
insert - First observed
list - First observed
load - First observed
memory_usage - First observed
pause - First observed
performance_report - First observed
play - First observed
quantize - First observed
redo - First observed
remove_effect - First observed
replace - First observed
reverse - First observed
save - First observed
set_tempo - First observed
stop - First observed
stretch - First observed
transpose - First observed
undo - First observed
validate_pattern_runtime - First observed
write
TDQS
Scored across 50 tools
Multiple tools have overlapping or unclear boundaries, such as 'analyze' (complete audio analysis) vs. 'analyze_rhythm' and 'analyze_spectrum' (more specific analyses), 'generate_pattern' (complete pattern from style) vs. 'ai_generate_pattern' (pattern from natural language), and 'append', 'insert', 'replace', and 'write' all manipulating pattern code with ambiguous distinctions. This overlap increases the risk of agent misselection.
Most tools follow a consistent verb_noun or verb-only snake_case pattern, such as 'add_effect', 'analyze_rhythm', 'generate_melody', and 'set_tempo'. However, there are minor deviations like 'ai_status' (noun_verb) and 'init' (abbreviated verb), which slightly break the consistency but do not severely impact readability.
With 50 tools, this server is overloaded for a Strudel pattern generation and editing domain. Many tools could be consolidated or omitted without losing functionality, such as the multiple AI-related tools or redundant analysis functions. This high count likely overwhelms agents and complicates tool selection.
The tool set provides comprehensive coverage for Strudel pattern manipulation, including creation (e.g., 'generate_pattern', 'ai_generate_pattern'), editing (e.g., 'append', 'transpose'), analysis (e.g., 'analyze', 'detect_tempo'), playback control (e.g., 'play', 'pause'), and utility functions (e.g., 'save', 'undo'). There are no obvious gaps that would hinder agent workflows in this domain.
Maintenance
Related MCP Connectors
ABC sheet music + Strudel live coding studio with ext-apps widgets, harmony tools, and share links.
Deterministic music theory for agents: analyze, voice, reharmonize, conduct — computed, not guessed
The media memory layer for AI agents and their humans. Your AI client gets 29 tools to search your collection, add items, update ratings, preview music, and find patterns across everything you've read, watched, and listened to.
AI music, video, image, and voice tools callable by agents with USDC payments via x402 on Base.
Related MCP Servers
- AlicenseAqualityAmaintenanceEnables AI-powered music generation and live coding by providing direct control over Strudel.cc through browser automation. Supports pattern creation, audio analysis, and pattern storage for TidalCycles/Strudel music patterns.2738 npm237AGPL 3.0
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to work with Strudel live coding patterns for music creation, including parsing mini notation, generating rhythmic patterns, accessing music theory (scales/chords), and applying pattern transformations.5 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to generate MIDI clips from natural language descriptions and export them for import into digital audio workstations. Wraps Scribbletune to provide music composition tools for creating riffs, chords, and arpeggios with scale-aware progressions, rhythmic patterns, and genre-specific parameters.MIT
- AlicenseNot gradedqualityDmaintenanceEnables LLMs to interact with Strudel, a JavaScript live coding music environment, by executing patterns, retrieving states, and accessing documentation.2AGPL 3.0