Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| status | Get current VICE connection and emulation state. Returns connection status, whether emulation is running or paused, and host/port if connected. Use this to:
Related tools: connect, disconnect |
| connect | Connect to a running VICE emulator instance via the binary monitor protocol. VICE must be started with the binary monitor enabled: x64sc -binarymonitor -binarymonitoraddress ip4://127.0.0.1:6502 Default connection: 127.0.0.1:6502 Use this first before any debugging operations. Connection persists until disconnect() is called or VICE closes. Related tools: status, disconnect |
| disconnect | Disconnect from the VICE emulator instance. Cleanly closes the connection. Safe to call even if not connected. Related tools: connect, status |
| readMemory | Read memory from the C64's address space. Returns raw bytes plus hex and ASCII representations. C64 memory map highlights:
For screen content, consider using readScreen instead for interpreted output. For sprite info, use readSprites for semantic data. Related tools: writeMemory, readScreen, readSprites, readVicState |
| writeMemory | Write bytes to the C64's memory. Directly modifies memory at the specified address. Changes take effect immediately. Common uses:
Be careful writing to ROM areas ($A000-$BFFF, $E000-$FFFF) - you may need to bank out ROM first. Related tools: readMemory, fillMemory |
| getRegisters | Get current 6502/6510 CPU register state. Returns all CPU registers with interpreted flags. Registers:
Use this to:
Related tools: setRegister, step, continue, status |
| continue | Resume C64 execution after a breakpoint or pause. Starts the emulator running until the next breakpoint, manual stop, or error. Related tools: step, status, setBreakpoint |
| step | Execute one or more instructions, then stop. Single-stepping is essential for understanding code flow and debugging. Options:
After stepping, use getRegisters to see the new CPU state. Related tools: getRegisters, continue, setBreakpoint, status |
| reset | Reset the C64 machine. Options:
A soft reset preserves some memory contents, hard reset clears everything. Related tools: connect, status |
| setBreakpoint | Set an execution breakpoint at a memory address. When the PC reaches this address, execution stops. Use to:
Returns a breakpoint ID for later management. Related tools: deleteBreakpoint, listBreakpoints, continue, step |
| deleteBreakpoint | Delete a breakpoint by its ID. Use listBreakpoints to see current breakpoint IDs. Related tools: setBreakpoint, listBreakpoints |
| listBreakpoints | List all active breakpoints. Shows breakpoint IDs, addresses, and status for all breakpoints set in this session. Note: This tracks breakpoints set through this MCP session. Breakpoints set through VICE's built-in monitor may not appear. Related tools: setBreakpoint, deleteBreakpoint |
| toggleBreakpoint | Enable or disable a breakpoint without deleting it. Use this to temporarily disable breakpoints while keeping their configuration. Related tools: setBreakpoint, deleteBreakpoint, listBreakpoints |
| setWatchpoint | Set a memory watchpoint to stop when memory is read or written. Watchpoints are powerful for debugging:
Range can be single address or address range (e.g., $D800-$DBFF for color RAM). Related tools: deleteBreakpoint, listWatchpoints, continue |
| listWatchpoints | List all active memory watchpoints. Shows watchpoint IDs, address ranges, type (load/store), and status. Related tools: setWatchpoint, deleteBreakpoint, listBreakpoints |
| runTo | Run execution until a specific address is reached. Sets a temporary breakpoint at the target address and continues execution. The breakpoint is automatically deleted when hit. Use for:
Related tools: continue, step, setBreakpoint |
| disassemble | Disassemble 6502 machine code at a memory address. Returns human-readable assembly instructions with:
Options:
Related tools: readMemory, getRegisters, step |
| saveSnapshot | Save the complete machine state to a file. Creates a VICE snapshot file containing:
Use to:
Related tools: loadSnapshot |
| loadSnapshot | Load a previously saved machine state from a file. Restores complete machine state including memory, registers, and peripheral states. Warning: This completely replaces the current state! Related tools: saveSnapshot |
| loadProgram | Load and optionally run a program file. Supports PRG, D64, T64, and other C64 file formats. For disk images, can specify which file to run. Options:
Related tools: reset, status, setBreakpoint |
| readScreen | Read the C64 screen memory and return it as interpreted text. Converts PETSCII screen codes to readable ASCII. Returns 25 lines of 40 characters. Use this instead of readMemory($0400) when you want to see what's displayed on screen. Note: This reads from the current screen RAM location (may not be $0400 if the program moved it). In bitmap modes, the data won't represent text. Options:
Related tools: readColorRam, readVicState, readMemory |
| readColorRam | Read color RAM ($D800-$DBE7) and return color values with names. Color RAM determines the foreground color of each character on screen. Returns:
Related tools: readScreen, readVicState |
| readVicState | Read the full VIC-II state with interpreted values. Returns all VIC-II registers with semantic meaning:
This is the high-level view of the video chip. Use for understanding display configuration. Related tools: readScreen, readSprites, readMemory (for $D000-$D02E) |
| readSprites | Read state of all 8 hardware sprites with interpreted values. Returns for each sprite:
Use this to debug sprite issues like:
Options:
Related tools: readVicState, readMemory (for sprite data) |
| screenshot | Capture the current VICE display as image data. Returns the raw display buffer with:
The data can be used to understand what's currently on screen visually. For text mode screens, readScreen provides a simpler text representation. Options:
Related tools: readScreen, readVicState |
| renderScreen | Render the current screen as ASCII art representation. Creates a visual representation of the screen using ASCII characters to approximate the colors and content visible on the C64 display. This is useful for quick visual debugging without image handling. For actual screen text, use readScreen instead. Options:
Related tools: readScreen, screenshot, readVicState |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |