boss-katana-mcp
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., "@boss-katana-mcpgive me a warm blues lead tone with long sustain and a bit of delay"
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.
Talk to your BOSS KATANA Gen 3 from Claude Code, Codex CLI or Gemini CLI. Describe a tone and the knobs in BOSS TONE STUDIO move live, as if you had turned them yourself.
Demo
"write a thrash metal tone"
"write blues tones with long sustain and delay"
Related MCP server: Stringhand
Install
You need: Windows 10/11 · a KATANA Gen 3 on USB · BOSS TONE STUDIO for KATANA Gen 3 (tested 1.1.0) · Node.js 24+ · Claude Code, Codex CLI or Gemini CLI.
1. Build
git clone https://github.com/dogakocak/boss-katana-mcp.git
cd boss-katana-mcp
npm install
npm run build2. Open BOSS TONE STUDIO's debug port (current user, no admin; read Security first)
powershell -ExecutionPolicy Bypass -File scripts\Enable-BossKatanaMcp.ps13. Register the MCP server as katana
claude mcp add katana -- node C:/path/to/boss-katana-mcp/dist/index.js # Claude Code
codex mcp add katana -- node C:/path/to/boss-katana-mcp/dist/index.js # Codex CLI
gemini mcp add katana node C:/path/to/boss-katana-mcp/dist/index.js # Gemini CLICodex asks before every tool call; add default_tools_approval_mode = "approve" under [mcp_servers.katana]
in config.toml to skip that.
4. Link the skill (a junction stays in sync with the repo)
# Claude Code
New-Item -ItemType Junction -Path "$env:USERPROFILE\.claude\skills\katana-tone" -Target "C:\path\to\boss-katana-mcp\skill\katana-tone"
# Codex CLI and Gemini CLI share .agents\skills
New-Item -ItemType Junction -Path "$env:USERPROFILE\.agents\skills\katana-tone" -Target "C:\path\to\boss-katana-mcp\skill\katana-tone"Restart your CLI, switch on the amp and ask for a tone. The agent opens BOSS TONE STUDIO and connects the amp itself.
> give me an 80s hard rock lead tone
> a bit less gain, more middle
> volume 12Changes are live edits of the current patch. PressWRITE in BOSS TONE STUDIO or on the amp to keep them.
How it works
The MCP server attaches to BOSS TONE STUDIO's WebView2 page and calls the app's own code, so the app stays the only
program talking to the amp. The katana-tone skill tells the agent how to turn a description into those changes.
Tool | What it does |
| App reachable? amp connected? patch name, active variation of each effect |
| Starts BOSS TONE STUDIO with the debug port and connects the amp |
| Reconnects an open BOSS TONE STUDIO to the amp |
| Reads the tone as friendly keys ( |
| Sets one or more parameters at once |
| Lists a section's keys, ranges and option names |
Symptom | Fix |
| Run |
| Check power and USB, then ask the agent to reconnect |
Values look like defaults ( | The patch hasn't loaded yet; wait for |
| Close BOSS TONE STUDIO and let the agent start it |
Port 9222 already in use | Close the other tool using it (e.g. a browser with remote debugging) |
npm test # unit tests (needs BOSS TONE STUDIO installed and started once)
npm run test:e2e # against a running BOSS TONE STUDIO with the amp connected
python assets/src/build.py # rebuild the README images (Pillow + Edge)Security
Enable-BossKatanaMcp.ps1 makes BOSS TONE STUDIO always open a DevTools port on 127.0.0.1:9222. While the
app is open, any local process can control it through that port. Run scripts\Disable-BossKatanaMcp.ps1 when you
don't need it.
Contributing
Issues and pull requests are welcome: tests on other KATANA Gen 3 models, better tone recipes for the skill, new skill evals, setup notes for other agents. See CONTRIBUTING.md to get started.
License
MIT © 2026 Doğa Koçak. A hobby project, made for fun and without any commercial intent.
Not affiliated with or endorsed by Roland / BOSS or Anthropic. "BOSS", "KATANA" and "BOSS TONE STUDIO" are trademarks of Roland Corporation; the mascot in the logo is Anthropic's Claude Code character. No Roland files are included in this repository.
Available Tools
6 toolskatana_connectA
Connect an already open BOSS TONE STUDIO to the KATANA (e.g. after the amp was switched off and on) and wait until the amp patch is loaded.
| 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 the full behavioral burden. It usefully discloses that BOSS TONE STUDIO must already be open and that the tool waits until the patch is loaded. However, it does not describe failure behavior, timeouts, or what happens if the prerequisite is not met.
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 definition is a single, front-loaded sentence with no wasted text. The prerequisite and the waiting behavior are stated efficiently, and the example is placed inline without disrupting 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?
For a zero-parameter connect action with no output schema, the description covers the essential prerequisite and the blocking wait for patch loading. It is nearly complete, though it could mention error conditions or timeout behavior for full transparency.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there are no parameter semantics to explain. The baseline for a parameterless tool is 4, and the description does not need to compensate 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 states a specific verb and resource: connect an already open BOSS TONE STUDIO to the KATANA. It also clarifies the state transition by mentioning waiting until the amp patch is loaded. The phrase 'already open' helps distinguish it from the sibling launch 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?
The description gives a clear use case: after the amp was switched off and on. This tells the agent when the tool is appropriate. It does not explicitly name when not to use it or point to alternatives, but the context is strong enough for correct selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
katana_getA
Read the current tone from BOSS TONE STUDIO as friendly keys (amp.volume, booster.type, ...). Effects show the active variation.
| Name | Required | Description | Default |
|---|---|---|---|
| sections | No | Limit to these sections; omit for all |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose two useful behavioral facts: the return format is friendly dotted keys, and effect sections report the active variation rather than raw state. It says nothing about needing an active BOSS TONE STUDIO connection, whether unsaved edits are included, or failure 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?
Two short sentences with zero filler; the purpose and return-shape lead, with the variation caveat as a second, genuinely useful clarification.
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 single-optional-param read tool with no output schema, the description usefully characterizes the return values (key naming and effect variation), which is the main thing an agent cannot get from structured fields. The remaining gap is connection prerequisites, which the sibling set hints at but the description never states.
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% and the sole 'sections' parameter is documented inline ('Limit to these sections; omit for all'). The description adds no additional meaning about the filter, so the baseline 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?
Specific verb (Read) plus specific resource (current tone from BOSS TONE STUDIO) and the shape of the result (friendly keys such as amp.volume, booster.type). The read/mutate split against sibling katana_set is inferable but the description never names the sibling explicitly.
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?
Usage is only implied by the word 'Read' - an agent can guess this is the inspection counterpart to katana_set, but there is no explicit when-to-use, no mention of prerequisites (katana_connect/katana_launch), and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
katana_launchA
Open BOSS TONE STUDIO with the debug port if it is not open yet, connect it to the KATANA (answers the "Connect with" dialog) and wait until the amp patch is loaded.
| 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 the full burden, and it does disclose two meaningful traits: it opens the app with a debug port (a side effect on the environment) and it blocks until the patch is loaded (synchronous, long-running). It does not say what happens on failure or timeout, whether it can attach to an already-open non-debug instance, or how success is signalled.
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?
A single sentence whose every clause carries information: the target app, the debug-port mode, the conditional relaunch guard, the dialog answer, and the wait-for-patch completion criterion. It is front-loaded with the action and has no 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?
The schema is empty and there is no output schema or annotation, so the description must cover both behavior and outcome. It covers the sequencing well but says nothing about what the tool returns or how the agent should verify that the launch actually succeeded before calling katana_get or katana_set.
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 takes zero parameters, so per the baseline there is nothing for the description to disambiguate. It correctly avoids inventing or restating parameter information; no penalty 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?
States a specific action chain: launch BOSS TONE STUDIO with the debug port, connect it to the KATANA, and wait for the patch to load. That is far more specific than the side-effecting launch of an app. It does not explicitly distinguish itself from the sibling katana_connect, leaving the agent to infer which tool establishes the app-level session versus the amp-level connection.
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 'if it is not open yet' gives a conditional trigger and implies idempotency, which is genuinely useful. But there is no guidance on when to call this versus katana_connect or katana_status, and no stated preconditions (e.g., that the amp must be powered on and reachable). Usage is implied rather than directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
katana_list_paramsB
List the keys of one section with their ranges and option names (for MOD/FX this includes every effect type's detail parameters).
| Name | Required | Description | Default |
|---|---|---|---|
| section | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'List' strongly implies a safe read operation, and it adds useful scope detail about MOD/FX detail parameters, but it does not explicitly state read-only behavior, permissions, or side-effect absence.
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?
It is a single, front-loaded sentence with no filler. The parenthetical adds useful scope without bloating the definition.
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-parameter listing tool, it explains what the output will contain, which is helpful since no output schema exists. However, it lacks usage routing and explicit read-only behavior, leaving meaningful gaps for an agent deciding whether to call it.
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 should compensate for the single `section` parameter. It only says 'one section' and does not explain the enum values or clarify that exactly one section must be supplied; the parameter information remains largely reliant on the schema enum.
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 and resource ('List the keys of one section') and clarifies the returned content (ranges and option names, including MOD/FX detail parameters). This distinguishes it reasonably from siblings like katana_get and katana_set, though it does not name those alternatives explicitly.
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?
It implies discovery usage by explaining what is listed, but never says when to call this instead of katana_get or katana_set. There are no explicit when-to-use or when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
katana_setA
Set one or more parameters live (edit buffer, not saved to a patch). The BOSS TONE STUDIO UI updates immediately. Keys like amp.volume, amp.type ("LEAD"), booster.on (true/false), delay.time; use katana_list_params for ranges. All-or-nothing validation, no clamping.
| Name | Required | Description | Default |
|---|---|---|---|
| changes | Yes | { "amp.volume": 12, "booster.type": "BLUES DRIVE" } |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the UI side effect ('BOSS TONE STUDIO UI updates immediately'), atomic validation ('all-or-nothing'), and the critical no-clamping rule, which tells the agent invalid values will be rejected rather than silently coerced. It stops short of describing error responses or whether a live connection is a prerequisite.
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?
Three sentences, each load-bearing: scope first, key conventions second, validation semantics last. No filler and the most decision-relevant fact (not saved to a patch) is front-loaded.
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 single-nested-object mutation tool with no output schema and no annotations, the description covers side effects, atomicity, key syntax, and where to discover valid values. The remaining gap is failure/connection behavior, which matters given sibling tools katana_connect and katana_launch imply a session prerequisite.
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, but the description earns more by giving the actual key naming convention with typed examples (amp.volume numeric, amp.type "LEAD", booster.on boolean, delay.time) that the schema's generic string-keyed object does not convey. It also points to katana_list_params for the full key/range vocabulary.
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?
States a specific verb and resource ('Set one or more parameters live') and immediately scopes it as an edit-buffer write that is not persisted to a patch, which separates it from any patch/save path. The key-format examples make the resource concrete enough that an agent knows exactly what it is mutating.
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?
Explicitly routes the agent to katana_list_params for valid ranges, which is real alternative-routing rather than implied guidance. The 'edit buffer, not saved to a patch' clause clarifies the use case, though it never states when not to use this tool or that a connection must already exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
katana_statusA
Check that BOSS TONE STUDIO is reachable, whether a KATANA Gen 3 is connected, the current patch name and which variation (green/red/yellow) each effect shows.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must carry the behavioral load; it conveys that this is a multi-part status probe rather than a mutation, but never says whether it is read-only, whether it fails or returns a not-reachable value, or whether it has side effects like prompting a connection. Adequate but incomplete for a zero-annotation 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?
One dense sentence, front-loaded with the primary check (reachability) and then the additional reported facts. It earns its length, though the trailing sub-clause about variation colors is slightly compressed and could be split for readability.
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, the description does the job of listing what is returned (reachability, connection state, patch name, effect variations). For a no-parameter diagnostic tool that is nearly sufficient, though error/unreachable outcomes are not described.
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 takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. No misleading parameter claims are made.
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 names a specific verb (Check) and spells out the concrete resources reported: BOSS TONE STUDIO reachability, KATANA Gen 3 connection, current patch name, and per-effect variation color. That is far more specific than the bare name katana_status and separates it from katana_get and katana_connect.
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?
Usage is only implied: it reads as a pre-flight/health diagnostic, so an agent can infer calling it before katana_connect or katana_get. But it never states when to prefer it over katana_get or katana_connect, nor any preconditions.
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.
6 tool updates
v0.1.0- First observed
katana_connect - First observed
katana_get - First observed
katana_launch - First observed
katana_list_params - First observed
katana_set - First observed
katana_status
TDQS
Scored across 6 tools
Most tools have clearly distinct purposes, but katana_launch and katana_connect overlap because launch can also connect, and katana_status slightly overlaps with katana_get around current patch/effect variation information. The descriptions mostly clarify when to use each, so an agent can usually choose correctly.
All tools use a consistent katana_ prefix followed by a short action-oriented name, such as katana_get, katana_set, and katana_list_params. The convention is predictable and readable throughout.
Six tools is well-scoped for a focused amp-control server: connection lifecycle, parameter discovery, read, write, and status. Each tool has a clear role, and there are no redundant extras.
The live-control workflow is covered from launch/connect through parameter discovery, read, and write, but katana_set explicitly edits only the live buffer and there is no tool to save the current tone to a patch. Patch switching or listing is also absent, which creates a notable dead end for persistence-oriented workflows.
Maintenance
Related MCP Connectors
Music & audio for AI agents: 50+ AI instruments play your MIDI, stems, audio to MIDI, Logic/Ableton
- mcp-serverOAuthcom.make
Give your AI agents the tools to build, manage, and run automation workflows.
Audio for your agent: transcribe, speak, translate, summarise, plus sound effects and music.
Connect AI assistants to authorized Windows and macOS devices for files, commands, and management.
11
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to control Ableton Live with full access to Live's object model, including clip creation, device control, automation, and audio signal capture for mixing and mastering tasks.1MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to drive a real-time guitar performance by submitting musical intents, monitoring state, and controlling phrasing through a set of MCP tools.16PolyForm Noncommercial 1.0.0
- AlicenseNot gradedqualityBmaintenanceLets AI assistants control a NUX MG-30 guitar processor over USB MIDI by picking amp, cab, drive, modulation, delay and reverb models, toggling blocks, and setting knobs by name. It can also read, save, rename, back up and restore presets on the device, and apply whole tone recipes from JSON patch files.43 PyPIMIT
- AlicenseNot gradedqualityAmaintenanceEnables an AI assistant to control a Sonicake Pocket Master guitar processor over USB MIDI by describing tones in plain words — selecting amp/cab/effect models, setting parameters, reordering the signal chain, and saving, renaming, backing up or restoring presets. It also provides offline tools for inspecting firmware and rebuilding it with a translated UI, such as Russian.44 PyPIMIT