Control your Commodore 64 Ultimate device with AI. This MCP server lets Claude and other AI assistants interact with your C64 Ultimate hardware over your local network.
Create and Debug Programs - Claude can write C64 BASIC or machine code programs, run them, capture the screen to see the results, inspect memory, and iteratively fix issues. Describe what you want and watch Claude develop it on real hardware.
Write and Run BASIC Programs - Ask Claude to write a BASIC program and it will tokenize the code, inject it directly into C64 memory, and run it. No typing required.
Play Classic Games and Demos - Load and run .PRG programs or .CRT cartridge images from your device's storage or upload them directly.
Listen to SID Music - Play classic C64 SID tunes or Amiga MOD tracker files. Just point to a file on your device or upload one.
See What's on Screen - Capture screenshots from any graphics mode: text, multicolor, hires bitmap, and more. Claude can see what's happening and respond accordingly.
Type and Control - Send keystrokes, navigate menus, and interact with running programs through the keyboard buffer.
Manage Floppy Drives - Mount and unmount D64/D71/D81 disk images, switch between 1541/1571/1581 emulation modes, and create new disk images.
Read and Write Memory - Inspect and modify C64 memory directly via DMA. Useful for debugging, poking values, or examining program state.
Configure Your Device - Adjust device settings, save configurations to flash, and manage your C64 Ultimate setup.
This server implements the Model Context Protocol (MCP) to expose the C64 Ultimate REST API as tools that AI assistants can use. When connected to Claude Desktop or another MCP client, you can have natural conversations about your C64 and Claude will use these tools to carry out your requests.
Enable Web Remote Control Service from the C64 Ultimate menu:
- Navigate to:
Network Settings→Web Remote Control Service→Enabled
cd c64u-mcp-server
uv syncSet the C64U_URL environment variable to your device's IP address:
export C64U_URL="http://192.168.200.157"Default: http://192.168.200.157
uv run python server.pyAdd to your Claude Desktop claude_desktop_config.json:
{
"mcpServers": {
"commodore64": {
"command": "uv",
"args": ["run", "--directory", "/path/to/c64u-mcp-server", "python", "server.py"],
"env": {
"C64U_URL": "http://192.168.200.157"
}
}
}
}machine_reset- Reset the C64machine_reboot- Reboot Ultimate devicemachine_pause- Pause CPU via DMAmachine_resume- Resume from pausemachine_poweroff- Power off (U64 only)capture_screen- Capture C64 screen as PNG imagetype_text- Type text into keyboard buffer (supports special keys)send_key- Send a special key to keyboard bufferenter_basic_program- Enter BASIC program directly into memory (tokenized)
write_memory- Write hex data to C64 memorywrite_memory_binary- Write binary data to memory (base64)read_memory- Read C64 memoryread_debug_register- Read debug register (U64)write_debug_register- Write debug register (U64)
sidplay_file- Play SID file from device filesystemsidplay_upload- Upload and play SID file (base64)modplay_file- Play MOD file from device filesystemmodplay_upload- Upload and play MOD file (base64)load_prg_file- Load PRG without executingload_prg_upload- Upload and load PRG (base64)run_prg_file- Load and run PRG from filesystemrun_prg_upload- Upload and run PRG (base64)run_crt_file- Start cartridge from filesystemrun_crt_upload- Upload and start cartridge (base64)
list_drives- List all drives and mounted imagesmount_disk_file- Mount disk from filesystemmount_disk_upload- Upload and mount disk (base64)drive_reset- Reset drivedrive_remove- Unmount diskdrive_on- Enable drivedrive_off- Disable drivedrive_load_rom_file- Load custom ROMdrive_load_rom_upload- Upload custom ROM (base64)drive_set_mode- Change drive type (1541/1571/1581)
list_config_categories- List all config categoriesget_config_category- Get items in a categoryget_config_item- Get specific config itemset_config_item- Set config item valuebatch_set_config- Set multiple config itemsload_config_from_flash- Restore config from flashsave_config_to_flash- Save config to flashreset_config_to_default- Reset to factory defaults
stream_start- Start video/audio/debug streamstream_stop- Stop active stream
get_file_info- Get file metadataget_version- Get REST API versioncreate_d64- Create D64 disk imagecreate_d71- Create D71 disk imagecreate_d81- Create D81 disk imagecreate_dnp- Create DNP disk image
Based on: https://1541u-documentation.readthedocs.io/en/latest/api/api_calls.html