Guitar Tone Assistant
This server lets an MCP client act as a guitar tone design assistant, searching gear catalogs, recommending signal chains, troubleshooting tones, comparing captures, and generating TONE3000 plugin presets.
Search live TONE3000 tone packs and cabinet IRs with filters for gain, category, architecture, speaker, size, and character.
Resolve TONE3000 tone IDs/URLs and classify captures as amp, amp-cab, or cab/IR.
Search the full 435-model AmpliTube 5 MAX v2 catalog by gear type, amp family, gain class, or keywords.
Recommend TONE3000-focused, AmpliTube-only, or hybrid rigs with starting settings, signal chains, cab advice, and gain staging.
Troubleshoot fizz, mud, thinness, harshness, boom, over-compression, and weak attack with prioritized exact changes.
Compare two to four TONE3000 captures by gain, EQ, cab requirement, flexibility, and likely use.
Create verified native .t3kpreset files from selected TONE3000 tone/model IDs.
Read and save optional local user rig profiles.
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., "@Guitar Tone AssistantFind a high-gain amp capture and a matching 4x12 cab IR for metal"
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.
Guitar Tone Assistant
Guitar Tone Assistant is a local Model Context Protocol (MCP) server that helps a compatible AI assistant design and deliver practical guitar tones using the TONE3000 plugin, Neural Amp Modeler (NAM), cabinet impulse responses, and AmpliTube 5 MAX.
The MCP server is the tone-design brain. It interprets the player's goal and rig, chooses the most useful workflow, and can return either a ready-to-load TONE3000 plugin preset, AmpliTube build instructions, or an adjustable AmpliTube amp paired with a TONE3000 cabinet IR. It does not process guitar audio itself.
This repository is an early local MVP. Use the stdio transport on a trusted computer. The HTTP transport binds to loopback by default but has no caller authentication, so it must not be exposed through a public tunnel, shared network, or public deployment.
What it can and cannot do
Guitar Tone Assistant can:
Search live TONE3000 tone packs and cabinet IRs when an API credential is configured.
Explain whether a capture includes an amp, an amp and cabinet, or only a cabinet IR.
Decide between TONE3000-plugin, AmpliTube-only, and hybrid delivery based on the player's software and priorities.
Compile exact selected TONE3000 tone/model IDs into a verified native
.t3kpresetfile.Return a local file path over stdio or a localhost download link over the HTTP transport.
Search the complete, versioned 435-model AmpliTube 5 MAX v2 inventory, with richer tone-design metadata for the core recommendation set.
Suggest starting settings and adjust them for guitar, pickup type, and tuning.
Troubleshoot fizz, mud, harshness, boom, thinness, excessive compression, and weak pick attack.
Compare two to four TONE3000 captures.
Store an optional local description of the user's rig.
It does not:
Listen to, analyze, transform, or play guitar audio.
Load, install, or execute the generated preset or model files for the user.
Control a DAW or AmpliTube.
Create AmpliTube preset files.
Reproduce a recorded artist tone exactly.
Automatically apply a saved user profile to every recommendation.
Artist and album references are treated as useful starting points, not claims about exact studio equipment or settings.
Related MCP server: MusicMCP.AI MCP Server
Who this is for
The current MVP is aimed at guitarists who already use, or want to experiment with:
TONE3000 for NAM captures and impulse responses.
The official TONE3000 plugin for ready-to-load multi-block presets, or another NAM-compatible player for manual chains.
AmpliTube 5 MAX for adjustable amp, cabinet, microphone, and effects chains.
A DAW or plugin host capable of arranging multiple plugins.
ChatGPT desktop, Codex CLI, the Codex IDE extension, or another MCP client.
Developers can also use the project as a starting point for a more complete guitar-tone MCP server.
The routing concepts that matter
Result | What it represents | What normally follows it |
| A fixed snapshot of an amplifier without cabinet coloration | Cabinet simulator or IR loader |
| A fixed snapshot containing both amplifier and cabinet coloration | Post-EQ, delay, or reverb; no additional cab by default |
| Cabinet and microphone coloration | Use after an amp-only NAM capture or amp simulation |
AmpliTube amp model | A continuously adjustable amp simulation | AmpliTube cabinet/microphone section or another compatible cab stage |
Applying a cabinet to an amp-cab capture usually creates a muffled or phase-heavy double-cab sound. The server calls out this risk when the TONE3000 metadata is clear enough.
NAM captures are fixed snapshots. Turning a post-EQ control is not the same as changing the captured amplifier's original gain, tone stack, or master volume.
How to use the three workflows
TONE3000-focused
The assistant selects exact TONE3000 tone/model IDs and can ask the bundled compiler adapter to produce a native .t3kpreset file. The user then loads that file in the TONE3000 plugin. A typical internal chain is:
Guitar -> Audio interface -> TONE3000 plugin
[Gate/boost as captured or hosted] -> Amp capture -> Cab/IR when required -> Tone EQIf the selected capture is amp-cab, the assistant skips a separate cabinet by default to avoid double-cab coloration. Preset compilation requires exact TONE3000 IDs; recommendations remain separate from compilation so the assistant can explain the choice before creating a file.
AmpliTube-only
Typical chain inside AmpliTube:
Guitar -> Gate/boost -> AmpliTube amp -> AmpliTube cabinet and microphones -> Rack effectsThis workflow offers continuously adjustable amp controls and does not require a NAM player.
Hybrid
The default hybrid keeps AmpliTube's amp controls adjustable while using a TONE3000 cabinet IR in AmpliTube's IR Loader:
Guitar -> AmpliTube gate/boost -> AmpliTube amp
-> AmpliTube IR Loader with a TONE3000 .wav cabinet IR
-> AmpliTube post-EQ, delay, and reverbDisable AmpliTube's normal cabinet block while the external IR is active. A NAM amp capture is not an impulse response and cannot be loaded into the IR Loader. More advanced multi-plugin NAM/AmpliTube routing is still possible, but it is no longer what hybrid means by default.
Example requests
“Find a tight 5150-style TONE3000 amp capture and pair it with a cabinet IR.”
“Give me a TONE3000-only, AmpliTube-only, and hybrid version of this tone.”
“Choose the best TONE3000 captures, then create a mono preset I can load in the plugin.”
“I use a Les Paul with humbuckers in Drop C. Give me a modern metal starting point.”
“This amp-and-cab capture sounds fizzy through my current chain. What should I change first?”
“Compare these three TONE3000 links and tell me which one is most flexible.”
“Give me a clean American combo-style tone.”
The returned knob values are starting points on a 0–10 scale. They are not guaranteed to match the labels or ranges of every physical or AmpliTube model.
Included MCP tools
Tool | Purpose |
| Search and rank live TONE3000 tone packs with direct page links. |
| Resolve an ID or URL, classify the capture, and list model metadata and download URLs. |
| Find cabinet IRs by speaker, size, and character. |
| Search and paginate through all 435 official AmpliTube 5 MAX v2 entries by category, name, alias, hardware basis, and curated tone metadata. |
| Choose a primary delivery workflow and return the relevant TONE3000, AmpliTube, and hybrid approaches. |
| Compile exact selected tone/model IDs into a verified |
| Give prioritized changes for common tone problems. |
| Compare capture requirements, gain/EQ clues, flexibility, and likely uses. |
| Read an optional local rig profile. |
| Replace an optional local rig profile. |
Every tool has Zod input/output schemas and MCP annotations. The schemas describe the tool contract; the current TONE3000 client does not yet perform full runtime validation of every upstream response.
Requirements
Node.js 20 or newer.
npm.
Git with submodule support.
Python 3.8 or newer for native TONE3000 preset compilation.
A compatible MCP client.
A TONE3000 account and secret key for live TONE3000 tools.
A NAM-compatible player and DAW/plugin host to use downloaded NAM models.
AmpliTube 5 MAX only if you want to build the suggested AmpliTube chains.
Local AmpliTube search, recommendations, and troubleshooting can work without a TONE3000 credential. Live TONE3000 tools will return a configuration error, and recommendations will state that live candidates are unavailable.
Install and verify
git submodule update --init --recursive
npm install
Copy-Item .env.example .envOpen TONE3000 settings, generate API credentials, and put the secret key in .env:
TONE3000_SECRET_KEY=t3k_cs_replace_meThe secret key is a server-only Bearer credential. Never place it in browser code, a public repository, MCP tool output, logs, or a publicly reachable server.
Build and run the automated tests:
npm run build
npm testIf the submodule is missing, discovery and recommendation tools still build, but create_tone3000_plugin_preset returns a setup error until the builder is initialized.
Native TONE3000 preset delivery
create_tone3000_plugin_preset is intentionally a write tool: it creates a recipe and one or more preset artifacts under .cache/generated-presets. Discovery, recommendation, comparison, and troubleshooting tools remain read-only.
The tool accepts exact tone IDs and optional model-name regular expressions. It delegates compilation to the pinned external builder, checks the T3KB file signature, runs the builder's verifier, and only then returns the artifact. The current TONE3000 server credential is passed through the child process environment and is never placed on the command line or in tool output.
Presentation depends on the MCP transport:
Stdio: the tool returns the absolute local path to each
.t3kpresetfile.HTTP: it also returns a link such as
http://127.0.0.1:8787/presets/{artifactId}/{fileName}. That link is available only while the local HTTP server is running and only from the same computer by default.
The output folder can be changed with PRESET_OUTPUT_PATH. The server creates files but does not copy them into the TONE3000 plugin's preset directory or open the plugin.
Run locally with stdio
Stdio is the recommended transport for this MVP because it does not open a network listener:
npm run build
node dist/src/index.jsConnect to Codex or ChatGPT desktop
Codex CLI, the Codex IDE extension, and ChatGPT desktop can use locally configured MCP servers. Add the built stdio server with the CLI:
codex mcp add guitar-tone-assistant --env TONE3000_SECRET_KEY=t3k_cs_replace_me -- node C:\absolute\path\to\Tone3000mcp\dist\src\index.jsAlternatively, create a project-scoped .codex/config.toml in a trusted project:
[mcp_servers.guitar-tone-assistant]
command = "node"
args = ["C:/absolute/path/to/Tone3000mcp/dist/src/index.js"]
cwd = "C:/absolute/path/to/Tone3000mcp"
env_vars = ["TONE3000_SECRET_KEY"]Do not put the secret value directly in config.toml; forward it from the local environment. Run codex mcp list or enter /mcp in a supported client to verify the connection.
See the official ChatGPT and Codex MCP configuration guide for current client instructions.
HTTP transport: local development only
The repository also includes a stateless Streamable HTTP transport:
npm run build
node dist/src/http.jsThe endpoint is http://127.0.0.1:8787/mcp, and GET / returns a credential-safe health response. It can be inspected locally with:
npx @modelcontextprotocol/inspector@latestSelect Streamable HTTP and enter http://127.0.0.1:8787/mcp.
The HTTP implementation binds to127.0.0.1 by default and does not emit a wildcard CORS origin. It still has no MCP caller authentication and exposes local profile and preset-creation tools. Do not change HOST, expose it with a tunnel or port forwarding, or deploy it publicly without adding authentication and authorization.
A shareable or published version must first authenticate MCP callers, verify authorization on every request, restrict its network and CORS policy, and replace the single shared TONE3000 credential with an appropriate per-user flow. OpenAI documents OAuth 2.1 as the expected authorization pattern for authenticated plugin MCP servers: OpenAI MCP authentication.
TONE3000 API behavior and publishing constraints
Verified against the official documentation on 2026-09-07:
API v1 base:
https://www.tone3000.com/api/v1.A secret key is a server-only Bearer credential.
User-facing integrations should use OAuth 2.0 with PKCE.
Search uses
GET /tones/search; detail usesGET /tones/{id}; models useGET /models?tone_id={id}.A tone's API-provided
urlis returned rather than guessing a public page route.Model
model_urldownloads require the Bearer credential.The default limit is 100 requests per minute, while search is more heavily restricted.
TONE3000 recommends its Select OAuth flow for production browsing.
Free and commercial integrations have different endpoint and review requirements.
Review the current TONE3000 API documentation, design requirements, and commercial terms before publishing or monetizing an integration. The current global-secret search implementation is intended for trusted local evaluation, not a shared public service.
Preset Builder credit and update model
Native .t3kpreset compilation is powered by TONE3000 Preset Builder, created by Thomas Lennon and licensed under the MIT License. It is included as a Git submodule at vendor/tone3000-preset-builder, currently pinned to commit 0862e02f772657e4203d3f98164d851dc0ff63a0. See THIRD_PARTY_NOTICES.md and the builder's own license file for the full notice.
No compiler source was copied into this project. src/preset-builder/client.ts is a narrow adapter around the builder's public command-line interface. This separation means upstream fixes can be adopted by changing the Git submodule reference instead of copying files:
git -C vendor/tone3000-preset-builder fetch origin
git -C vendor/tone3000-preset-builder checkout <reviewed-commit-or-tag>
git add vendor/tone3000-preset-builder
npm run build
npm testReview upstream changes and test generated files before advancing the pin. Consumers receive the reviewed version with git submodule update --init --recursive; they do not silently track the builder's latest branch.
AmpliTube catalog scope
The runtime catalog at src/data/amplitube5max.json contains all 435 models in IK Multimedia's AmpliTube 5 MAX v2 inventory, document version 5.10.4, updated 2025-03-27:
Category | Count |
Stomp | 111 |
Amp | 111 |
Cabinet | 106 |
Speaker | 33 |
Microphone | 18 |
Rack | 48 |
Room | 8 |
Official membership comes from IK's AmpliTube 5 MAX v2 gear inventory. Every runtime record carries the inventory version, source URL, category, and PDF page. The source-only extraction is stored in docs/research/amplitube-max-v2-inventory.json.
The v2 catalog was reconciled against the earlier 420-item research rather than replacing it blindly. The reconciliation matched 417 records, added 18, removed 3, and identified 3 renames. See docs/research/amplitube-max-v2-reconciliation.json and the earlier evidence set:
Inventory coverage and tone-depth coverage are deliberately distinguished. All 435 models are searchable, and 315 currently have a researched hardware basis. Detailed control lists, gain classifications, styles, and hand-tuned pairings are richer for the 19-record core recommendation set preserved in src/data/amplitube5max.curated.json. Empty tonal fields mean “not curated yet,” not “the model has no controls or uses.” Mapping states such as inferred, not-stated, and unresolved must not be presented as official hardware identities.
To rebuild after reviewing a newer official inventory, extract its factual name list and regenerate the merged catalog:
python scripts/extract-amplitube-inventory.py <official-inventory.pdf> docs/research/amplitube-max-v2-inventory.json
npm run catalog:build
npm run build
npm testOfficial product reference: IK Multimedia AmpliTube 5.
User profiles
Profiles are optional local JSON records for guitars, pickups, tunings, interface, favorite amps/IRs, AmpliTube ownership, and monitoring equipment.
Saving a profile does not automatically cause recommend_tone_chain to load it. An MCP client must currently read the profile and pass relevant guitar, pickup, tuning, or workflow information into a recommendation request.
The profile store is designed for one trusted local process. It is not suitable for concurrent or multi-user hosting.
Project structure
src/index.ts stdio entry point
src/http.ts Streamable HTTP development entry point
src/server.ts MCP tool definitions and schemas
src/tone3000/ TONE3000 API client, types, cache, and normalization
src/amplitube/ Local AmpliTube search and types
src/recommendation/ Recommendation, comparison, and troubleshooting rules
src/preset-builder/ Adapter and types for the external preset compiler
src/profile/ Local profile storage
src/data/amplitube5max.json Generated 435-record MAX v2 runtime catalog
src/data/amplitube5max.curated.json Rich metadata for the core recommendation set
tests/ Automated unit tests
docs/research/ Catalog research and repository review notes
scripts/ Repeatable inventory extraction and catalog merge
vendor/tone3000-preset-builder/ Pinned external compiler Git submoduleThe service is intentionally modular: TONE3000 access is isolated from the recommendation engine, and another gear platform can be added alongside src/amplitube.
Current limitations and roadmap
The main work required before a public release is:
Add MCP caller authentication and authorization for non-local use.
Implement TONE3000 per-user OAuth/Select rather than sharing one server credential.
Validate all upstream API responses before caching or processing them.
Make profile storage safe for reserved IDs and concurrent writes.
Enrich the full AmpliTube catalog with each model's real control names, ranges, channels, modes, and collection ownership metadata.
Generate settings from those model-specific controls instead of the shared starter control vocabulary.
Make saved profiles influence recommendations automatically.
Add DAW- and NAM-player-aware routing instructions.
Add an explicit preview/confirmation step that converts a recommendation into a preset recipe automatically.
Add HTTP, malformed-response, profile-concurrency, and catalog-update tests.
For detailed review evidence, see docs/research/code-review-2026-09-07.md.
Status
This repository is suitable for local experimentation and MCP development and now has authoritative, versioned inventory coverage of AmpliTube 5 MAX v2. It is not currently suitable for anonymous public hosting, multi-user profile storage, or model-perfect instructions for every control on all 435 models.
Available Tools
9 toolscompare_tonesCompare TONE3000 tonesARead-only
Compare two to four TONE3000 tone packs by gain clues, EQ clues, cab requirements, flexibility, and likely use. Uses metadata conservatively and returns direct links.
| Name | Required | Description | Default |
|---|---|---|---|
| tones | Yes | ||
| architecture | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| rows | Yes | |
| guidance | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the tool as read-only and non-destructive. The description adds useful behavioral context by noting it 'uses metadata conservatively and returns direct links,' which hints at output style and reliance on metadata. However, 'conservatively' is vague and the full behavioral implications are not developed.
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 two sentences with no redundancy. The primary purpose is front-loaded, and the second sentence efficiently adds behavioral detail about metadata usage and output format.
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 moderate-complexity tool with an output schema, the description covers the core comparison intent and output style. However, it omits guidance on when to use the tool versus siblings and leaves the architecture parameter unexplained, so the agent may not fully understand all inputs or selection criteria.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for parameter meaning. It does explain that tones are limited to two to four packs, but it does not clarify what the architecture parameter ('1', '2', 'custom') means, nor what types of identifiers are accepted in the tones array. This leaves a significant semantic gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Compare'), a precise resource ('two to four TONE3000 tone packs'), and the dimensions of comparison ('gain clues, EQ clues, cab requirements, flexibility, likely use'). This clearly distinguishes it from sibling tools like search, get, recommend, and troubleshoot.
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 the tool is for comparing a limited set of existing tone packs, which is useful context. However, it does not explicitly state when to prefer this over alternatives such as search_tone3000 or recommend_tone_chain, nor does it mention any exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tone3000_toneGet TONE3000 tone detailsARead-only
Resolve a TONE3000 tone ID or URL, classify its captured stages, and list its models and authenticated model download URLs.
| Name | Required | Description | Default |
|---|---|---|---|
| tone | Yes | ||
| architecture | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| tone | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, so the bar for additional disclosure is lower. The description adds useful behavioral context by noting that the tool 'classifies captured stages' and that download URLs are 'authenticated,' signaling output composition and auth expectations beyond the raw annotations.
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?
One compact sentence front-loads the primary action and avoids filler. It loses a point because 'classify its captured stages' is jargon-heavy and the optional architecture parameter is silently omitted.
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 core use case of resolving a tone by ID or URL and retrieving models/download URLs is covered, and the presence of an output schema reduces the need to describe return values. However, the optional architecture parameter is never addressed, and 'captured stages' is vague enough that an agent may not know what classification behavior to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description needed to explain both parameters, but it only glosses 'tone' as an ID or URL and never mentions the 'architecture' parameter. The enum values '1', '2', and 'custom' remain unexplained, leaving a meaningful semantic gap for agents deciding what to pass.
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 uses specific verbs tied to a concrete resource: 'Resolve a TONE3000 tone ID or URL,' and states three distinct outcomes (classify captured stages, list models, return authenticated download URLs). This clearly separates it from search-oriented siblings like search_tone3000, which focus on discovery rather than resolving a specific tone.
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 phrase 'Resolve a TONE3000 tone ID or URL' implies the tool is meant for cases where the agent already has a specific tone identifier. However, the description never explicitly says when to prefer this tool over search_tone3000 or other siblings, and it gives no exclusions or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_tone_profileGet local tone profileARead-only
Read an optional local profile containing guitars, pickups, tunings, interface, favorite amps/IRs, and monitoring device.
| Name | Required | Description | Default |
|---|---|---|---|
| profileId | No | default |
Output Schema
| Name | Required | Description |
|---|---|---|
| profile | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only and non-destructive behavior. The description adds useful context by noting the profile is optional and local, suggesting it may not exist and is not a remote/cloud search. No behavioral claims contradict the annotations.
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?
One tight sentence with the action and resource front-loaded; the content list is informative without padding. No redundant phrases.
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 one-optional-parameter read tool with readOnly annotations and an output schema, the description sufficiently conveys the tool's domain. Slight gap: it doesn't explain profileId selection, but the schema's default and pattern cover invocation correctness.
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 for the sole parameter is 0% and the description never mentions profileId, its default value, or when to pass a custom ID. The schema's name/default/pattern partially mitigate this, but the description itself adds no parameter-level meaning.
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 uses a specific verb ('Read') and a clearly scoped resource ('optional local profile') and lists its contents (guitars, pickups, tunings, interface, amps/IRs, monitoring device), making it distinguishable from the search-oriented sibling 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?
'Read an optional local profile' provides clear context for when to call this tool: retrieving a user's saved local tone setup. It does not name alternatives or exclusions, but the 'local' qualifier implicitly distinguishes it from the search_tone3000/AmpliTube siblings and save_user_tone_profile.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recommend_tone_chainRecommend a guitar tone chainBRead-only
Build a practical TONE3000-focused, AmpliTube-only, or hybrid rig with capture-aware routing, starting settings, cab advice, gain staging, and live TONE3000 candidates when configured.
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | ||
| tuning | No | ||
| guitarType | No | ||
| pickupType | No | ||
| desiredGain | No | ||
| preferredWorkflow | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| target | Yes | |
| caveats | Yes | |
| approaches | Yes | |
| interpretation | Yes | |
| tone3000Status | Yes | |
| preferredWorkflow | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and destructiveHint=false, so the safety profile needs no further explanation. The description adds useful behavioral detail beyond the annotations: the result depends on whether TONE3000 is 'configured,' routing is capture-aware, and the rig includes gain staging and cab advice. No contradiction with annotations.
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 compact sentence with the main verb and scope front-loaded. Each listed element adds information about what the recommendation will contain; there is no filler. The only weakness is jargon like 'capture-aware routing' and 'when configured' that compresses too much.
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 six parameters, a required target, and an output schema, the description is not complete enough to invoke correctly: it never explains what `target` means, what 'configured' refers to, or how this recommendation tool relates to the sibling search/troubleshoot tools. Although the output schema covers the return shape, input semantics and tool-selection context remain underspecified.
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 schema description coverage at 0%, the description carries the burden of explaining parameters, but it only hints at preferredWorkflow ('TONE3000-focused, AmpliTube-only, or hybrid') and starting settings. The required `target` parameter is never defined, and `tuning`, `guitarType`, `pickupType`, and `desiredGain` receive no added meaning.
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 a concrete action — 'Build a practical ... rig' — and enumerates what that rig includes: capture-aware routing, starting settings, cab advice, gain staging, and live TONE3000 candidates. It is clear that this is a recommendation/construction tool rather than a search, get, or troubleshoot tool, though it does not explicitly name a sibling to distinguish 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?
The wording makes it clear the tool is for assembling an entire rig, which implies use when a user wants a full recommendation rather than a component search. However, the description never provides explicit alternatives or when-not-to-use guidance, such as 'use search_tone3000 if you need a specific tone.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_user_tone_profileSave local tone profileA
Replace an optional local tone profile. This writes only to the server's local profile store and never sends profile data to TONE3000.
| Name | Required | Description | Default |
|---|---|---|---|
| profile | Yes | ||
| profileId | No | default |
Output Schema
| Name | Required | Description |
|---|---|---|
| profile | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description adds genuine behavioral value: it specifies the write scope ('only to the server's local profile store') and gives a privacy guarantee ('never sends profile data to TONE3000') that an agent can relay to a user. The 'Replace' wording discloses overwrite semantics. No contradiction with annotations.
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 sentences, roughly 25 words, with the core action front-loaded and the high-value privacy/scope note second. Every sentence earns its place and there is zero filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and the privacy/write-scope story is clear. However, for a write tool with a complex nested input and 0% schema coverage, the description leaves the agent to infer the expected profile structure and the meaning of profileId, making the input side under-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden for parameter meaning but does not compensate. The 9-field nested profile object (guitars, tunings, pickupTypes, favoriteAmps, etc.) and the profileId parameter (default 'default') are entirely unexplained; only the phrase 'local tone profile' vaguely gestures at the profile argument.
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 uses a specific verb ('Replace') with a clear resource ('local tone profile'), and the tool is readily distinguishable from read/search siblings like get_user_tone_profile and search_tone3000. Minor deductions: 'optional' is ambiguous since the profile parameter is actually required, and the title says 'Save' while the description says 'Replace,' a slight semantic mismatch.
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 privacy note ('never sends profile data to TONE3000') and 'local profile store' phrasing imply a local-only persistence use case, which is useful context. However, the description never names an alternative or states when-not-to-use it, and it doesn't contrast with the natural read sibling get_user_tone_profile.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_amplitube_gearSearch AmpliTube 5 MAX gearARead-only
Search the bundled, curated AmpliTube 5 MAX knowledge layer by gear type, amp family, gain level, or style. Mapping confidence is included so uncertain product identities are not presented as fact.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| gearType | No | ||
| keywords | No | ||
| ampFamily | No | ||
| gainClass | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes | |
| dataScope | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as read-only and non-destructive, so the bar for added behavior is lower. The description adds valuable transparency by stating that mapping confidence is included and that uncertain product identities are not presented as fact, and it clarifies that the source is a curated, closed layer (consistent with openWorldHint=false). It does not disclose pagination or result-count behavior, but that is secondary for a read-only search.
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 sentences with no filler: the first front-loads the action, resource, and filter dimensions; the second adds a meaningful caveat. Every sentence 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?
For a read-only search with an output schema and safe annotations, the description covers the core search dimensions and the confidence behavior. It is less complete on tool-selection context: it never tells the agent when to choose this tool over the Tone3000-focused siblings, and it omits the limit parameter. Overall, adequate but with clear routing gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It maps the main query dimensions (gearType, ampFamily, gainClass, and likely keywords via 'style'), but it does not mention limit or explicitly connect 'style' to the keywords parameter. The parameter names and enums are self-explanatory, which raises the baseline usefulness, but the description still leaves some parameter semantics to inference.
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 uses a specific verb ('Search') and identifies a bounded resource ('bundled, curated AmpliTube 5 MAX knowledge layer'), plus the main filter dimensions. It does not explicitly contrast itself with sibling search tools like search_tone3000, so it falls just short of full peer 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?
There is no statement about when to prefer this tool over siblings (e.g., search_tone3000 or search_tone3000_cabs) or when not to use it. The filter list implies usage scenarios, but the agent is left to infer the boundary between the AmpliTube knowledge layer and the Tone3000 catalogs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_tone3000Search TONE3000ARead-only
Search authenticated TONE3000 tone packs and rank results for an amp family, style, artist, song, tags, and required capture type. Returns direct tone-page links, not model downloads.
| Name | Required | Description | Default |
|---|---|---|---|
| gain | No | ||
| page | No | ||
| sort | No | best-match | |
| tags | No | ||
| query | Yes | ||
| ampMake | No | ||
| category | No | ||
| pageSize | No | ||
| architecture | No | ||
| artistOrStyleKeywords | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| page | Yes | |
| total | Yes | |
| results | Yes | |
| limitation | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool read-only and non-destructive. The description adds value by disclosing that it operates on 'authenticated' tone packs and returns links rather than downloads, which is behavior beyond the annotations. It does not mention rate limits or pagination, but the annotation bar is lower.
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 two sentences with no filler. The action and scope are front-loaded, and the second sentence adds a useful output clarification without drifting.
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 complex 10-parameter search tool with an output schema, the description captures the core behavior, key search criteria, and the nature of the return values. It does not detail pagination or how multiple parameters combine, but the output schema and self-explanatory parameter names fill many 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?
With 0% schema description coverage, the description must compensate. It maps several parameters to concepts ('amp family' to ampMake, 'tags' to tags, 'capture type' to architecture/category, 'rank' to sort), but leaves page, pageSize, gain, and the relationship between query and artistOrStyleKeywords unaddressed. This is partial compensation, not full.
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 uses a specific verb and resource ('Search authenticated TONE3000 tone packs') and clearly states the return type ('direct tone-page links, not model downloads'). This differentiates it from siblings like search_tone3000_cabs, which targets cabs rather than tone packs.
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 clearly frames the tool's context: finding tone packs by amp family, style, artist, song, tags, and capture type. It implies this is the go-to search for tone packs, but it does not explicitly name alternatives or state when-not-to-use, so it stops short of fully explicit routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_tone3000_cabsSearch TONE3000 cabinet IRsARead-only
Find TONE3000 cabinet/IR tone packs by speaker, cabinet size, and tonal character. Returns direct tone-page links.
| Name | Required | Description | Default |
|---|---|---|---|
| pageSize | No | ||
| character | No | ||
| cabinetSize | No | ||
| speakerType | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes | |
| limitation | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, covering the safety profile. The description adds a useful behavioral detail: the tool returns direct tone-page links rather than full tone data. It does not detail pagination or matching semantics, but this is acceptable for a read-only search tool with an output schema.
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 front-loaded sentence that states the core purpose, the search dimensions, and the return type. Every part earns its place, with no redundant wording.
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 read-only, optional-parameter search tool with an output schema, the description covers the essentials: what is searched, the main filters, and what is returned. It does not explicitly mention that all parameters are optional or how pageSize behaves, but the schema provides those details and they are not critical for a basic correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description needs to compensate. It gives practical meaning to speakerType, cabinetSize, and character by relating them to speaker, cabinet size, and tonal character. However, it does not explain pageSize or provide details about acceptable values or filtering behavior, so the compensation is only partial.
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 a specific verb ('Find'), a specific resource ('TONE3000 cabinet/IR tone packs'), and the search facets (speaker, cabinet size, tonal character). It clearly distinguishes this from the broader sibling search_tone3000 by focusing on cabinet/IR packs and by noting it returns direct tone-page links.
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 when to use it: when searching for TONE3000 cabinet/IR tone packs by speaker, cabinet size, or character. However, it does not explicitly say when not to use it or why it should be chosen over search_tone3000 or search_amplitube_gear, so the routing guidance is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
troubleshoot_toneTroubleshoot a guitar toneARead-only
Return prioritized, exact changes for fizzy, muddy, thin, harsh, boomy, over-compressed, or slow/soft attack problems while checking for accidental double-cab routing.
| Name | Required | Description | Default |
|---|---|---|---|
| problem | Yes | ||
| currentRig | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| problem | Yes | |
| warning | Yes | |
| currentRig | Yes | |
| adjustments | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavior beyond the readOnly and destructive annotations: the tool returns prioritized recommendations, does not apply changes, and actively checks for accidental double-cab routing. This clarifies the agent's expectations about output ordering and an embedded diagnostic. There is no contradiction with the annotations.
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 entire description is one compact, front-loaded sentence with zero filler. Every phrase contributes meaning: the call to action, the output nature, the problem scope, and the additional routing check.
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 two-parameter schema and the presence of annotations and an output schema, the description covers the main task and the notable diagnostic behavior. It does not need to restate return values because an output schema is available. The main remaining gap is richer guidance on composing currentRig, but overall the tool is adequately specified.
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 documentation coverage is 0%, so the description must compensate for both parameters. The listed tone problems give concrete meaning to the 'problem' parameter, and the double-cab routing check implies that currentRig should include signal chain/cab details. However, the description does not specify how detailed currentRig must be or the expected phrasing for the problem, leaving some ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Return') and names a concrete resource: prioritized, exact changes for guitar tone problems. It lists distinct issue categories (fizzy, muddy, thin, harsh, boomy, over-compressed, slow/soft attack) and a diagnostic check for double-cab routing, which differentiates it from the sibling search/recommend tools. However, it does not explicitly name a sibling or state what it is not, so it falls just short of perfect 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?
The phrase 'for fizzy, muddy, thin, harsh, boomy, over-compressed, or slow/soft attack problems' provides a clear context for when this tool is appropriate. The required currentRig and problem inputs further imply the intended use: diagnose an existing rig rather than search or recommend gear. It gives no explicit exclusions or alternative routing, but the context is clear enough for selection.
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.
9 tool updates
v0.1.0- First observed
compare_tones - First observed
get_tone3000_tone - First observed
get_user_tone_profile - First observed
recommend_tone_chain - First observed
save_user_tone_profile - First observed
search_amplitube_gear - First observed
search_tone3000 - First observed
search_tone3000_cabs - First observed
troubleshoot_tone
TDQS
Scored across 9 tools
Every tool targets a distinct operation: searching tone packs, cabs, or AmpliTube gear; resolving a specific TONE3000 tone; recommending; troubleshooting; comparing; and managing user profile. Although several tools start with 'search', their resource/noun suffixes and descriptions make misselection unlikely.
All tool names use snake_case and a consistent verb-first pattern: search_*, get_*, save_*, recommend_*, troubleshoot_*, and compare_*. The naming is predictable and readable even when targets are compound nouns like tone3000_tone or tone_chain.
Nine tools is solidly in the well-scoped range for an assistant server of this type. Each tool—search, resolution, cab search, AmpliTube search, recommendation, troubleshooting, comparison, and profile read/write—earns its place without bloat.
The set covers the full assistant workflow: searching TONE3000 tones and cabs, searching AmpliTube gear, resolving tone details and model URLs, recommending rigs, troubleshooting problems, comparing tones, and reading/writing user profile context. There are no dead ends; TONE3000 candidates flow from search/recommend/get into comparison and download-URL access.
Maintenance
Related MCP Connectors
AI music production assistant — audio profiling, AI mixing sessions, and service inquiries.
- mozonicOAuthcom.mozonic
AI mixing and mastering: analyze your mixes, run DSP autofix, render stems, and master tracks.
A personal RAG database you build from chat, so AI creates work that sounds like you.
Ask your security cameras anything and set up alert rules in a sentence. Built into Agent DVR.
Related MCP Servers
- AlicenseBqualityBmaintenanceConnects Ableton Live to AI through MCP, enabling prompt-assisted music production with extended tools and a 33-personality style system for generating parts in various artist styles.6226 PyPI4MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI-powered music generation through natural language commands, supporting inspiration and custom modes with dual song outputs.1MIT
- AlicenseBqualityBmaintenanceEnables AI-powered music production in Ableton Live through natural language, with tools for composition, arrangement, mixing, and sound design.52MIT
- AlicenseAqualityBmaintenanceEnables AI assistants to search, generate, and manipulate u-he synth presets through natural language, including browsing libraries, randomizing presets, and merging multiple presets.14232 npm32MIT