VICE Next MCP
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.
VICE Next MCP
vice-next-mcp is a Python 3.11+ control layer for VICE's version-2 binary
monitor. It provides supervised emulator instances, MCP-facing operation
schemas, a synchronous monitor client, and isolation primitives for concurrent
test and automation workloads.
See MANUAL.md for the published protocol and capability model. The project is GPL-2.0-or-later; see COPYING.
Highlights
Supervised VICE launch with an exclusively reserved loopback monitor port, generation-aware instances, and process-tree teardown.
Per-instance artifacts for logs, traces, screenshots, snapshots, and mutable media, including cross-process port leases and stale-lease reclamation.
Binary-monitor support for memory, register discovery/read/write, reset, keyboard-buffer input, snapshots, screenshots, autostart, resume, pause, and instruction stepping.
Correct autostart request framing (
run, uint16 file index, byte filename length, filename) and isolated VICE process groups/sessions.Counted CPU-neutral stepping via command
0x71with its required three-byte request body: step-over flag plus little-endian uint16 count.An explicit monitor-enter/pause command (
0xAB) for instrumented VICE builds; resume is command0xAA.Native C64 RESTORE state through command
0x74using a one-byte press/release payload, after the instrumented VICE rebuild is installed.
Physical keyboard-matrix injection is intentionally not advertised: the stock
binary monitor has no stable matrix-input protocol. vice.keyboard.type uses
VICE's documented keyboard-buffer command (0x72), not physical key events.
Related MCP server: C64 Debug MCP
Install and quick start
py -m venv .venv
.\.venv\Scripts\Activate.ps1
py -m pip install -e .[dev]
py -m pytest -qSet VICE_X64SC to the desired x64sc.exe. Supervisor launches VICE with
-default, an automatically reserved version-2 binary-monitor endpoint, and a
headless SDL configuration by default. On Windows it creates a new process
group; on POSIX it starts a new session, so a detached caller does not terminate
the emulator unexpectedly.
For the lower-level validated launcher, ProcessController.validate() checks
that the executable matches the selected machine (for example, C64 requires
x64sc, C128 requires x128).
Monitor client example
from vice_next_mcp.supervisor import Supervisor
supervisor = Supervisor(executable=r"..\..\vice-instrumented\dist\HeadlessVICE-windows-x86_64\x64sc.exe")
try:
instance = supervisor.create("x64sc")
monitor = instance.monitor
monitor.pause()
monitor.step_instruction(10)
registers = monitor.registers()
monitor.resume()
finally:
supervisor.close()Supervisor.create also accepts autostart=<PRG-or-D64-path>; filename paths
are limited to 255 encoded bytes by the VICE protocol.
MCP surface
The MCP server is constructed with McpServer(resolver). After initialize,
call tools/list and tools/call. Each call must include an operation_id, a
target containing instance id, generation, and lease token, and a deadline.
Capabilities are reported per instance; operations lacking a verified monitor or
instrumented-backend implementation are rejected rather than silently emulated.
Example configuration:
{
"mcpServers": {
"vice-next": {
"command": "py",
"args": ["-m", "vice_next_mcp.server"]
}
}
}Batch execution and artifacts
Run the included single-instance smoke example:
py examples/single_smoke.pyOr execute a JSON case matrix:
vice-next batch --cases examples/cases.json --workers 2 --base-port 6510Use VICE_MCP_BASE_PORT=0 (or omit --base-port) for ephemeral ports. Each
case receives a stable ID, an isolated artifact directory, and a serial
reproduction hint in results.json.
Instrumented VICE features
Set VICE_MCP_INSTRUMENTED=1 when launching a compatible rebuilt VICE binary.
This enables the explicitly advertised extension capabilities, including native
RESTORE injection and IEC capture. Each instance receives a unique
VICE_IEC_TRACE_FILE beneath its artifact directory. IEC capture responses
report completeness limits honestly: the current recorder has no source
overflow counter, so it reports source_overflow_supported=false.
The runtime executable is not committed to this repository. Build artifacts must be validated against the intended VICE source revision before being used for RESTORE or pause-dependent workflows.
Development
py -m pytest -q
py -m ruff check src testsLive tests require a configured VICE executable and are marked live.
See BUGS.md for outstanding binary-rebuild verification work.
This server cannot be deployed
Maintenance
Related MCP Connectors
Use a person's computer after they approve it there: files, Terminal, browser, local MCP.
Use a person's computer after they approve it there: files, Terminal, browser, local MCP.
Drive WhatsApp from any MCP client: pair devices, send text and media, manage contacts and groups.
Drive real devices from your AI Coding tool. Embed a client SDK (Unity, Godot, Flutter, iOS/macOS, Android, React Native, Web) in your app, then capture screenshots, traverse the UI tree, inject taps and key events, and run automated test tasks on the physical device over a secure relay.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables autonomous debugging of Commodore 64 programs through the VICE emulator with semantic interpretation of C64-specific data structures, memory layouts, VIC-II states, and PETSCII encoding for AI-assisted 6502 assembly debugging.261MIT
- AlicenseAqualityDmaintenanceEnables AI-powered control and debugging of Commodore 64 programs via the VICE emulator, supporting memory operations, breakpoints, register access, and program loading.188 npmMIT
- FlicenseNot gradedqualityCmaintenanceEnables controlling and interacting with a Commodore 64 emulator running in the browser via MCP.-
- AlicenseNot gradedqualityBmaintenanceLets AI clients control and program a Commodore 64, including running programs, reading/writing memory, rendering graphics, playing sound, and switching between C64 Ultimate hardware and VICE emulation.342 npm41GPL 2.0