Loading symbol files and setting breakpoints by label is what turns this from a novelty into a workflow — you debug by name, not by address. Two things to know before you plan around it: the events endpoint exists but currently returns 501 Not Implemented, so state has to be polled, and the Windows build is headless only because GTK3 cross-compilation is not in place. Binding to all interfaces without a token is permitted for compatibility, but VICE logs a warning, and it deserves one.
The VICE emulator with an MCP server compiled into it. Not a wrapper around the monitor and not a screen-scraper: tool calls are dispatched through VICE's own trap mechanism onto the emulator's main thread, and read the actual register values rather than a cached copy.
- 63 tools across 14 categories, all JSON Schema validated
- Execution and registers: `vice.execution.run`, `vice.execution.pause`, `vice.execution.step`, `vice.run_until`, `vice.registers.get`, `vice.registers.set`
- Memory: `vice.memory.read`, `vice.memory.write`, `vice.memory.banks`, `vice.memory.search` with wildcard patterns, `vice.memory.fill`, `vice.memory.compare`
- Breakpoints and watchpoints with conditions, ignore counts, grouping and auto-snapshots, through the `vice.checkpoint.*` family
- Chip state: `vice.sprite.inspect` renders a sprite bitmap as ASCII art, `vice.vicii.get_state` and `vice.sid.get_state` read the video and sound chips, `vice.cia.get_state` covers the timer chips
- Disks and machine control: `vice.disk.attach`, `vice.disk.read_sector`, `vice.autostart`, `vice.machine.reset`, `vice.machine.config.get`
- Interaction and capture: `vice.keyboard.type`, `vice.joystick.set`, `vice.display.screenshot`
- Debugging support: `vice.disassemble`, `vice.symbols.load` for KickAssembler or VICE symbol files, `vice.backtrace`, `vice.cycles.stopwatch`, and tracing with `vice.trace.start` and `vice.interrupt.log.start`
- The tool surface adapts to the machine: C64, C128, SCPU64, C64 DTV, VIC-20, Plus/4 and C16, PET and CBM-II are all covered, and the config call reports which chips and memory banks the running machine actually has
Either a pre-built binary from the project's releases, or a source build of VICE configured with the MCP server enabled — which needs libmicrohttpd, GTK3, autoconf, automake, pkg-config and the xa assembler. Start any VICE machine with the MCP flag and clients connect to http://127.0.0.1:6510/mcp; the port and bind host are flags. A bearer token flag is available and is mandatory once CORS is configured, where wildcard origins are rejected.
