LhBridge
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
lh-vocaloid6-mcp
Get a program inside a running VOCALOID 6, holding its own object graph, so it can read and (once calibrated) change the open song — with no clicking and no typing.
VOCALOID 6 has no scripting API, and unlike CeVIO its engine is not a managed library that can simply be referenced: the note model is native code inside the editor process. So the bridge is a DLL loaded into VOCALOID 6 which hosts an MCP server in-process and publishes it on loopback HTTP. Not screen scraping, not keyboard, not mouse.
One C++ source file builds two artifacts:
artifact | purpose |
| injected into VOCALOID 6; hosts MCP in-process |
| the same server standalone, so the transport can be tested without injecting into anybody's editor |
The bridge is the same source as the VoiSona one, built with the VOCALOID 6 identity; the tool prefix and the engine guard differ, nothing else.
Read this before you plan anything
Two measured facts change what is worth attempting here. Both come from injecting the
bridge into a real VOCALOID 6 (6.13.0.1) and looking.
VOCALOID 6's editor is WPF on .NET, not a native C++ editor. Its host image is only
0x3d000bytes, and its windows areHwndWrapper[VOCALOID6;;...]— the editor is a shell over managed assemblies.A note map is a chain of raw pointers read from a module base, and the GC moves managed objects. A chain that resolves today can go stale under you, and a stale chain does not fail: it reads plausible garbage and writes it back.
Therefore: do not start a note-map discovery pass on VOCALOID 6 until someone has
settled whether a stable chain exists at all. VoiSona is JUCE and native and fits
that workflow as written; VOCALOID 6 does not, yet. capabilities.notes will read
"none" and that is the honest state, not a missing step.
Related MCP server: ce-mcp
Requirements
Windows, VOCALOID 6 installed, and the editor running before you attach.
Python 3.10+.
ziglang— the only toolchain the native bridge needs.
Install
git clone https://github.com/ppzbr/lh-vocaloid6-mcp
cd lh-vocaloid6-mcp
python -m pip install -e ".[mcp]"
python -m pip install comtypes
python -m pip install ziglangBuild the bridge:
powershell -ExecutionPolicy Bypass -File bridges/native/build.ps1It writes lhai_bridge.build-info.txt beside the artifacts. That record, not the
compiler, is the proof of what was built. If the build fails, stop and report the
compiler output.
Prove the transport with no editor involved
Run lhai_bridge.exe and drive it over HTTP:
initialize -> serverInfo LhBridge, protocol 2024-11-05
tools/list -> the vocaloid_* surfaceThis step exists so that a later failure is known to be about the host, not about the bridge.
Attach, and know that it worked
bridge_inject(engine="vocaloid6")What a healthy injection looked like on the development machine (the shape matters, not the counts):
host image in the module list 255 modules
scan "4D 5A" found at the image base
chain u16 at the image base 0x5A4D ("MZ")
read at the image base 4d5a90000300000004000000ffff0000
windows the editor's own HwndWrapper[...] windows
status level: partial, capabilities.notes: "none"Then the surface:
bridge_list() # every bridge answering right now, and its engine
bridge_status(engine="vocaloid6") # version, app baseline, per-capability levels
bridge_tools(engine="vocaloid6") # the tools with their real argument schemas
bridge_call(engine="vocaloid6", tool=..., arguments=...)The engine-prefixed tools are the memory primitives — modules, windows, scan,
read, write, chain, load_map, status. chain resolves exactly as a map file
states it: p = base; for each offset o: p = *(void**)p + o, then read the typed value
at p.
The wrong-engine guard is deliberate: a VOCALOID 6 bridge rejects a voisona_* tool
name, and vice versa. That answer means you are talking to the wrong bridge.
Detach
bridge_eject(engine="vocaloid6")Always eject before rebuilding. Windows will not overwrite a DLL loaded in a running process.
Rules this bridge lives by
Do not modify, replace or delete any VOCALOID 6 file.
Never kill the editor process.
Never substitute UI automation, keystrokes or clipboard for a bridge capability.
If a step fails, stop at that step and report exactly what happened.
What is verified, and what is not
Verified: the bridge loads into a real VOCALOID 6 (
6.13.0.1), publishes its endpoint, and answers the process, module, scan, read, chain and window primitives — the MZ evidence above is from that run.Not verified, and deliberately not attempted: any note-level read or write. The WPF/GC facts above are why. The bridge will tell you
capabilities.notes: "none".The fallbacks that do work today: the project-file route, and the UIA live layer.
When something looks wrong
symptom | cause |
| VOCALOID 6 is not running, or it runs under a different name — check |
the DLL will not overwrite | it is loaded in the process: |
the engine tools refuse a call | the wrong-engine guard: the tool prefix does not match the host |
| no note map exists for this editor; that is the state, not a bug |
Layout
path | what |
| the paste-ready brief: the whole install-and-drive story, including the two facts above |
| the bridge: one file, two artifacts |
| the build, and the build record it writes |
| injection without an MCP client ( |
| the client: the injector, the live layer, the channels |
| the MCP server, which is how an MCP client reaches |
| the contract every bridge in this family follows |
| the client's suite, plus the repository's own consistency checks |
| sha256 of every tracked file; |
The client ships with adapters for the other editors in the family
(lhai/mcp/engines/). They are inert unless that editor is the target.
Tests
python -m pip install -e .
python -m pytestLicence
MIT. See LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Remote MCP server for audio stem separation, denoise, reverb, and MIDI export.
Create, co-edit, analyze, publish, and export collaborative step-sequencer sessions through MCP.
Scans remote MCP servers for protocol, security, and TLS issues; exposes scan tools via MCP.
Notes, files, GitHub, and Drive through one MCP connection.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to perform low-level Windows process memory research, including process attachment, memory scanning, reading/writing, pointer chasing, remote code execution, and inline hooking via MCP tools and Lua scripting.4MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI to directly control Cheat Engine for process attachment, memory scanning, reading/writing, address list management, speed hack, Lua/Auto Assembler execution, and CT file management via the MCP protocol.5MIT
- AlicenseNot gradedqualityCmaintenanceEnables control of a physical Wii U over MCP, including TV/GamePad screenshots, GamePad button and stick input, calibrated touch, homebrew launch and upload, native logs, and console shell access.GPL 3.0
- AlicenseNot gradedqualityCmaintenanceEnables an MCP client to connect to CLIP STUDIO PAINT's Companion protocol over local TCP to manage Quick Access items, read and request brush settings, navigate the canvas, and retrieve composite previews without desktop input automation or screenshots.1MIT