Skip to main content
Glama
xphileby

Commodore 64 Ultimate Computer MCP Server

by xphileby

Commodore 64 Ultimate MCP Server

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.

What Can You Do?

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.

How It Works

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.

Prerequisites

Enable Web Remote Control Service from the C64 Ultimate menu:

  • Navigate to: Network SettingsWeb Remote Control ServiceEnabled

Installation

cd c64u-mcp-server uv sync

Configuration

Set 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

Running the Server

uv run python server.py

Claude Desktop Configuration

Add 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" } } } }

Available Tools

Machine Control

  • machine_reset - Reset the C64

  • machine_reboot - Reboot Ultimate device

  • machine_pause - Pause CPU via DMA

  • machine_resume - Resume from pause

  • machine_poweroff - Power off (U64 only)

  • capture_screen - Capture C64 screen as PNG image

  • type_text - Type text into keyboard buffer (supports special keys)

  • send_key - Send a special key to keyboard buffer

  • enter_basic_program - Enter BASIC program directly into memory (tokenized)

Memory Access

  • write_memory - Write hex data to C64 memory

  • write_memory_binary - Write binary data to memory (base64)

  • read_memory - Read C64 memory

  • read_debug_register - Read debug register (U64)

  • write_debug_register - Write debug register (U64)

Runners (SID/MOD/PRG/CRT)

  • sidplay_file - Play SID file from device filesystem

  • sidplay_upload - Upload and play SID file (base64)

  • modplay_file - Play MOD file from device filesystem

  • modplay_upload - Upload and play MOD file (base64)

  • load_prg_file - Load PRG without executing

  • load_prg_upload - Upload and load PRG (base64)

  • run_prg_file - Load and run PRG from filesystem

  • run_prg_upload - Upload and run PRG (base64)

  • run_crt_file - Start cartridge from filesystem

  • run_crt_upload - Upload and start cartridge (base64)

Floppy Drives

  • list_drives - List all drives and mounted images

  • mount_disk_file - Mount disk from filesystem

  • mount_disk_upload - Upload and mount disk (base64)

  • drive_reset - Reset drive

  • drive_remove - Unmount disk

  • drive_on - Enable drive

  • drive_off - Disable drive

  • drive_load_rom_file - Load custom ROM

  • drive_load_rom_upload - Upload custom ROM (base64)

  • drive_set_mode - Change drive type (1541/1571/1581)

Configuration

  • list_config_categories - List all config categories

  • get_config_category - Get items in a category

  • get_config_item - Get specific config item

  • set_config_item - Set config item value

  • batch_set_config - Set multiple config items

  • load_config_from_flash - Restore config from flash

  • save_config_to_flash - Save config to flash

  • reset_config_to_default - Reset to factory defaults

Streams (U64 only)

  • stream_start - Start video/audio/debug stream

  • stream_stop - Stop active stream

File Operations

  • get_file_info - Get file metadata

  • get_version - Get REST API version

  • create_d64 - Create D64 disk image

  • create_d71 - Create D71 disk image

  • create_d81 - Create D81 disk image

  • create_dnp - Create DNP disk image

API Reference

Based on: https://1541u-documentation.readthedocs.io/en/latest/api/api_calls.html

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/xphileby/c64u-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server