← Back to directory
C

C64 Bridge MCP Server

Community
MCP server to control and program the Commodore 64 from AI clients
GitHub source repository ↗
★ 33 Stars Category · Dev Tools Popular
58FMRS · C

C64 Bridge is a comprehensive, well-documented community open-source MCP server (GPL-2.0, npm package c64bridge, v1.0.2) that connects AI clients to C64 Ultimate / Ultimate 64, U2-family cartridges, and VICE through 17 grouped tools covering programming, memory, graphics, audio, storage, printing, and knowledge retrieval. It is not an official Commodore product but is listed in the Official MCP Registry and ships extensive LLM-facing safety and knowledge resources, making it a strong fit for serious C64 retro developers; it is unsuitable without matching hardware or an emulator.

Reliability
7/20
Security and permissions
10/20
Maintenance
11/20
Documentation
17/20
Setup experience
13/20
Read the FMRS scoring method →

C64 Bridge is an MCP server built on the official TypeScript @modelcontextprotocol/sdk that gives an AI agent one place to drive a Commodore 64 environment. It targets C64 Ultimate, Ultimate 64, U2-family cartridges (U2/U2+/U2+L), and the VICE emulator, with runtime backend switching via c64_select_backend. It exposes 17 grouped tools, 27 resources (covering BASIC, 6510 assembly, SID, VIC-II, memory maps, KERNAL, printers, and more), and 10 prompts for running BASIC and assembly programs, reading and writing memory, rendering PETSCII graphics and sprites, playing and composing SID music, managing disks and drives, controlling printers, and optional RAG knowledge retrieval. The server communicates over stdio, with an optional HTTP bridge intended only for manual inspection.

Tools

c64_batch
Execute multiple c64bridge tool calls in a single request to reduce latency for multi-step workflows.
c64_config
Grouped entry point for configuration reads/writes, diagnostics, snapshots, firmware info, debug registers, and program shuffling.
c64_debug
Grouped entry point for VICE debugger operations: checkpoints (breakpoints), register reads/writes, stepping, and wait-for-state polling.
c64_disk
Grouped entry point for disk mounts, image creation, file metadata, and find-and-run for PRG/CRT programs.
c64_drive
Grouped entry point for drive power, emulation mode (1541/1571/1581), IEC reset, and temporary ROM loading.
c64_extract
Grouped entry point for sprite/charset extraction, memory dumps, filesystem stats, and firmware health checks.
c64_graphics
Grouped entry point for frame capture, PETSCII art and text rendering, bitmap import, and sprite display.
c64_input
Grouped entry point for cross-platform PETSCII typing plus native Ultimate keyboard matrix and joystick events.
c64_memory
Grouped entry point for memory I/O, fill, search, copy, compare, disassembly, screen reads, and screen polling.
c64_printer
Grouped entry point for Commodore and Epson (ESC/P) printing helpers, including text and bitmap printing.
c64_program
Grouped entry point for program upload and execution: BASIC v2, 6502/6510 assembly, PRG, CRT, and batch runs.
c64_rag
Grouped entry point for BASIC and 6502/6510 assembly reference lookups in the local knowledge base.
c64_select_backend
Switch the active backend between C64U/U64 hardware, U2-family cartridges, and VICE without restarting the server.
c64_sound
Grouped entry point for SID control, playback, composition (SIDWAVE/CPG), preset performances, recording, and analysis.
c64_stream
Grouped entry point for starting and stopping Ultimate streaming sessions (C64U/U64 only).
c64_system
Grouped entry point for power, reset, pause/resume, menu screen reads, and background task management.
c64_vice
Grouped entry point for reading and updating selected VICE configuration resources (safe prefixes only).

Setup

Requires Node.js 24+ and npm. Start with npx -y c64bridge@latest. In your MCP client config (e.g., .vscode/mcp.), add a server entry with command npx and args ["-y","c64bridge@latest"], optionally setting env vars such as C64_MODE (c64u/u2/vice), C64U_HOST, C64U_PORT, C64U_PASSWORD, VICE_BINARY, VICE_VISIBLE, and VICE_WARP. Backend configuration can also be provided via the JSON file pointed to by C64BRIDGE_CONFIG (default ~/.c64bridge.).

claude_desktop_config.json
{"servers":{"c64bridge":{"command":"npx","args":["-y","c64bridge@latest"]}}}

Fit and risk

Best for

  • Retrocomputing enthusiasts who own Ultimate-family hardware or run VICE and want AI-assisted C64 development
  • Developers working with BASIC / 6502 assembly, SID music, or PETSCII graphics
  • Teams automating C64 program testing across real hardware and emulators with an AI agent

Not for

  • Users without any C64 hardware or the VICE emulator (no backend is available)
  • Beginners seeking a fully hosted cloud service with no local setup
  • Retro platforms other than the Commodore 64 (this server is C64-specific)

Required permissions

  • Network access to C64 Ultimate / Ultimate 64 / U2 cartridges via REST (default port 80), with an optional network password sent as an X-Password header
  • Ability to launch and manage a local VICE emulator process and its Binary Monitor (default 127.0.0.1:6502)
  • Local file access for config files, memory/screen dumps, diagnostics, and output artifacts
  • Optional: GITHUB_TOKEN for RAG discovery against GitHub; optional use of sidplayfp for audio generation

Risks and side effects

  • The server can write memory, control power/reset, and manage drives; misuse may disrupt running C64 programs or firmware state
  • Network passwords and GitHub tokens are passed in plaintext via environment variables, so credential handling matters
  • The optional HTTP bridge is disabled by default; if enabled without protection, local clients could invoke tools
  • U2-family cartridges have reduced capability (no machine input, debug registers, power-off, or streaming), and some operations require recent firmware (e.g., U64 3.15+), so older firmware makes certain tools unavailable

Troubleshooting

  1. Confirm Node.js 24+ is installed and on PATH (node --version should show v24.x)
  2. Verify C64_MODE matches the intended backend and that host/IP, port, and password are correct (use c64://platform/status to inspect the active backend)
  3. Check whether the C64U firmware provides machine:input / machine:menu_screen endpoints (or U64/U2 firmware 3.15+); otherwise native keyboard input and menu screen reads are unavailable
  4. If VICE fails to start, verify VICE_BINARY and VICE_DIRECTORY, or ensure x64sc/x64 is on PATH
  5. If tools do not appear, confirm the server was approved at the requested scope in your client and that LOG_LEVEL=debug logs show connectivity checks passing

Use cases

Have an AI client write and run C64 BASIC or 6510 assembly programs and verify screen output
Render PETSCII art and sprites, or import and display bitmaps
SID music playback, composition (SIDWAVE), and audio analysis
Memory inspection, disassembly, disk image management, and firmware configuration
Seamlessly switch between real hardware and VICE emulation with c64_select_backend

Supported clients

VS Code (GitHub Copilot)Full support
Claude CodeFull support
CursorFull support
Visual StudioFull support
VS Code InsidersFull support