VICE Next 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., "@VICE Next MCPinject keyboard matrix to load and run a program on C64"
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.
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: Commodore 64 Ultimate Computer MCP Server
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
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.
Eyes and hands on real Windows PCs — observe, click, type via Glasswarp API.
Run, build, and validate firmware on virtual hardware from your AI agent. Hardware knowledge corpus.
Protocol-native energy infrastructure orchestration for AI data centers. Provides 46 MCP tools across 8 grid protocols (IEC-61850, DNP3, Modbus, OCPP, OpenADR, IEEE 2030.5, IEC 60870-5-104, ICCP) with 5 core API primitives: connect, dispatch, settle, comply, and intel. Enables AI agents to programmatically interact with substations, grid interfaces, and energy assets for real-time workload-grid coordination.
Related MCP Servers
- FlicenseAqualityDmaintenanceEnables 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.261-
- FlicenseBqualityDmaintenanceEnables control and interaction with Commodore 64 Ultimate Computer devices through their REST API, allowing users to play SID/MOD files, load and run programs, manage disk images, configure settings, and control the C64 machine through natural language.4920-
- AlicenseAqualityCmaintenanceEnables AI-powered control and debugging of Commodore 64 programs via the VICE emulator, supporting memory operations, breakpoints, register access, and program loading.189 npmMIT
- AlicenseBqualityBmaintenanceControls the ZEsarUX ZX Spectrum emulator via ZRCP protocol for debugging, memory operations, tape/disk loading, and more.3416 npm2MIT