Track MCP LogoTrack MCP
Track MCP LogoTrack MCP

The world's largest repository of Model Context Protocol servers. Discover, explore, and submit MCP tools.

Product

  • Categories
  • Top MCP
  • New & Updated
  • Submit MCP

Company

  • About

Legal

  • Privacy Policy
  • Terms of Service
  • Cookie Policy

© 2026 TrackMCP. All rights reserved.

Built with ❤️ by Krishna Goyal

    C64bridge

    MCP server to control and program the Commodore 64 Ultimate and Ultimate 64 via REST API

    1 stars
    TypeScript
    Updated Nov 2, 2025
    ai
    assembly
    basic
    c64
    chatgpt
    coding
    commodore
    commodore-64
    development
    llm
    mcp
    mcp-server
    music
    retro
    retrocomputing
    sid

    Table of Contents

    • Contents
    • Overview
    • Features
    • Quick Start
    • 1. Install Node.js 24+ and npm
    • 2. Start the Server
    • 3. Add Backend Configuration
    • 4. Connect from an MCP Client
    • Configuration
    • Configuration File Order
    • Configuration Merge Rules
    • Backend Configuration: C64 Ultimate
    • Backend Configuration: VICE
    • Runtime Backend Switching
    • VS Code MCP Setup
    • Enable the C64 Agent
    • Optional Overrides
    • Environment Variables in MCP Client Configs
    • Runtime Environment Variable Reference
    • Server Runtime
    • C64 Ultimate
    • VICE Runtime
    • VICE Audio Capture
    • SID Playback
    • RAG
    • Testing
    • Example Workflow
    • HTTP Invocation
    • Build and Test
    • Documentation
    • Static MCP Interface
    • MCP API Reference
    • Tools
    • c64_config
    • c64_debug
    • c64_disk
    • c64_drive
    • c64_extract
    • c64_graphics
    • c64_memory
    • c64_printer
    • c64_program
    • c64_rag
    • c64_select_backend
    • c64_sound
    • c64_stream
    • c64_system
    • c64_vice
    • Resources
    • Prompts

    Table of Contents

    • Contents
    • Overview
    • Features
    • Quick Start
    • 1. Install Node.js 24+ and npm
    • 2. Start the Server
    • 3. Add Backend Configuration
    • 4. Connect from an MCP Client
    • Configuration
    • Configuration File Order
    • Configuration Merge Rules
    • Backend Configuration: C64 Ultimate
    • Backend Configuration: VICE
    • Runtime Backend Switching
    • VS Code MCP Setup
    • Enable the C64 Agent
    • Optional Overrides
    • Environment Variables in MCP Client Configs
    • Runtime Environment Variable Reference
    • Server Runtime
    • C64 Ultimate
    • VICE Runtime
    • VICE Audio Capture
    • SID Playback
    • RAG
    • Testing
    • Example Workflow
    • HTTP Invocation
    • Build and Test
    • Documentation
    • Static MCP Interface
    • MCP API Reference
    • Tools
    • c64_config
    • c64_debug
    • c64_disk
    • c64_drive
    • c64_extract
    • c64_graphics
    • c64_memory
    • c64_printer
    • c64_program
    • c64_rag
    • c64_select_backend
    • c64_sound
    • c64_stream
    • c64_system
    • c64_vice
    • Resources
    • Prompts

    Documentation

    C64 Bridge

    Logo

    Your AI Command Bridge for the Commodore 64.

    npm

    Build

    codecov

    License: GPL v2

    Platform

    Install in VS Code

    Install in VS Code Insiders

    Install in Visual Studio

    Install in Cursor

    C64 Bridge is an MCP server for controlling and working with a Commodore 64 from an AI client.

    It lets you run programs, read and write memory, render graphics, and play sound on a real Commodore 64 Ultimate or Ultimate 64. You can also switch to a VICE emulator session at any time, so the same MCP conversation works with both hardware and emulator.

    It is built on the official TypeScript @modelcontextprotocol/sdk and supports both stdio for local AI integration and an optional HTTP bridge for manual inspection.

    C64 Bridge is listed in the Official MCP Registry.

    Contents

    • C64 Bridge
    • Contents
    • Overview
    • Features
    • Quick Start
    • 1. Install Node.js 24+ and npm
    • 2. Start the Server
    • 3. Add Backend Configuration
    • 4. Connect from an MCP Client
    • Configuration
    • Configuration File Order
    • Configuration Merge Rules
    • Backend Configuration: C64 Ultimate
    • Backend Configuration: VICE
    • Runtime Backend Switching
    • VS Code MCP Setup
    • Enable the C64 Agent
    • Optional Overrides
    • Environment Variables in MCP Client Configs
    • Runtime Environment Variable Reference
    • Server Runtime
    • C64 Ultimate
    • VICE Runtime
    • VICE Audio Capture
    • SID Playback
    • RAG
    • Testing
    • Example Workflow
    • HTTP Invocation
    • Build and Test
    • Documentation
    • Static MCP Interface
    • MCP API Reference
    • Tools
    • c64\_config
    • c64\_debug
    • c64\_disk
    • c64\_drive
    • c64\_extract
    • c64\_graphics
    • c64\_memory
    • c64\_printer
    • c64\_program
    • c64\_rag
    • c64\_select\_backend
    • c64\_sound
    • c64\_stream
    • c64\_system
    • c64\_vice
    • Resources
    • Prompts

    Overview

    C64 Bridge gives an AI agent one place to drive program execution, memory access, graphics, sound, storage, printer workflows, and knowledge retrieval for a Commodore 64 environment.

    The core workflow is simple:

    1. Start the MCP server.

    2. Point it at C64 Ultimate hardware, VICE, or both.

    3. Let the client call grouped MCP tools such as c64_program, c64_memory, c64_graphics, and c64_sound.

    4. Switch backends at runtime with c64_select_backend when both are configured.

    Features

    • Program runners for BASIC, 6510 assembly, and PRG or CRT execution
    • Full memory access, including raw reads and writes plus screen polling
    • System integration for drives, files, printers, and task orchestration
    • SID music tools for playback, composition, generation, and verification
    • Built-in knowledge resources and prompts for safer LLM workflows
    • Mixed runtime support for hardware c64u and emulator vice

    Quick Start

    If you want the shortest path, do these four things:

    1. Install Node.js 24+ and npm.

    2. Start the server.

    3. Add backend configuration for C64 Ultimate, VICE, or both.

    4. Connect from VS Code or another MCP client.

    1. Install Node.js 24+ and npm

    Linux (Ubuntu or Debian):

    Recommended:

    bash
    sudo apt update
    sudo apt install -y curl ca-certificates
    curl -fsSL https://deb.nodesource.com/setup_24.x | sudo -E bash -
    sudo apt install -y nodejs

    Fallback:

    bash
    sudo apt install -y nodejs npm

    macOS:

    bash
    brew install node@24
    brew link --overwrite node@24

    Windows:

    powershell
    # winget
    winget install OpenJS.NodeJS.LTS
    # or Chocolatey
    choco install nodejs-lts -y

    Verify the installation:

    bash
    node --version

    Expected result: v24.x

    2. Start the Server

    Use one of the following entry points.

    Run from npx with zero setup:

    bash
    npx -y c64bridge@latest

    Run from a local npm install:

    bash
    mkdir -p ~/c64bridge && cd ~/c64bridge
    npm init -y
    npm install c64bridge
    node ./node_modules/c64bridge/dist/index.js

    Run from source for development or testing:

    bash
    git clone https://github.com/chrisgleissner/c64bridge.git
    cd c64bridge
    ./build install
    npm start

    On startup, the server probes the selected target, performs connectivity checks, and then announces that it is running on stdio.

    3. Add Backend Configuration

    The server can run against:

    • only C64 Ultimate hardware
    • only VICE
    • both backends in one session, with runtime switching

    The detailed lookup order, merge rules, backend examples, and override model are in the Configuration section below.

    4. Connect from an MCP Client

    If you use VS Code, follow the VS Code MCP Setup section below.

    If you use another MCP client, point it at the stdio server entry point and pass any required environment variables exactly as documented in this README and in mcp.json.

    Configuration

    Configuration File Order

    The server reads configuration in this order:

    1. C64BRIDGE_CONFIG, if it points to a config file

    2. .c64bridge.json in the project root

    3. ~/.c64bridge.json in the home directory

    Configuration Merge Rules

    Configuration is merged per backend section while scanning those files in order.

    • The first file that contains a c64u section supplies the C64 Ultimate configuration.
    • The first file that contains a vice section supplies the VICE configuration.
    • This allows a project-local .c64bridge.json to define c64u while ~/.c64bridge.json defines vice, with both backends available at runtime.

    Backend Configuration: C64 Ultimate

    Use this for a C64 Ultimate or Ultimate 64:

    json
    {
      "c64u": {
        "host": "c64u",
        "port": 80,
        "networkPassword": "secret"
      }
    }
    • If no file is found, the default target is c64u:80 with no network password.
    • networkPassword is only needed when you enabled a password in the C64 Ultimate network settings.
    • C64U_HOST, C64U_PORT, and C64U_PASSWORD override the configured host, port, and network password.

    Backend Configuration: VICE

    Use this for managed VICE launches:

    json
    {
      "vice": {
        "exe": "/usr/bin/x64sc",
        "directory": "/usr/local/share/vice"
      }
    }
    • directory is optional. When omitted, C64 Bridge auto-detects a VICE resource directory by looking for the standard C64 ROM set near the emulator binary and in common system locations.
    • VICE_BINARY, VICE_DIRECTORY, VICE_HOST, VICE_PORT, VICE_VISIBLE, VICE_WARP, and VICE_ARGS override managed VICE startup without editing config files.
    • If no explicit binary is configured, the runtime prefers /usr/local/bin/x64sc when present, then falls back to x64sc or x64 on PATH so the same setup remains portable across operating systems.

    [!NOTE]

    VICE supports only the operations marked with a VICE checkmark in the MCP API Reference. Unsupported operations return unsupported_platform.

    Runtime Backend Switching

    When both c64u and vice are configured, C64 Bridge starts with one active backend and keeps the other available for runtime switching.

    • C64_MODE chooses the initial backend: c64u or vice
    • c64_select_backend switches backends without restarting the MCP server
    • c64://platform/status reports the active backend and the full configured backend set
    • In prompts, say things like use vice, vice: run this program, use c64u, or run this on the real machine
    • In VS Code, include the backend preference in the same prompt when you want to force emulator versus hardware execution

    Prompt illustration (issued via Copilot in VS Code, using GPT 5.4 Medium):

    text
    c64u: write a small BASIC program that clears the screen and prints HELLO C64U
    vice: write a small BASIC program that clears the screen and prints HELLO VICE

    The screenshots below were captured from actual backend bitmap responses after those prompts ran, using the same c64_graphics capture_frame MCP tool on both backends. The C64U implementation captures streamed video frames, while the VICE implementation captures and normalizes the emulator display frame. Both images were then verified optically against the expected text with the C64 character generator, and both matched exactly.

    BackendScreenshot
    C64 UltimateC64 Ultimate backend switch example
    VICEVICE backend switch example

    VS Code MCP Setup

    If this repository is checked out locally, open the prepared .vscode/mcp.json.

    Otherwise, put the following into your own .vscode/mcp.json:

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

    Then click the start button shown above the c64bridge entry.

    Your MCP server should now be running:

    VS Code Started MCP server

    For more details, see the official VS Code MCP Server documentation.

    Enable the C64 Agent

    After the server is running, switch to the C64 agent in VS Code.

    This agent is preconfigured for Commodore 64 work. It steers Copilot toward c64bridge workflows for BASIC, 6502 assembly, SID audio, VIC-II graphics, memory inspection, disk operations, printing, streaming, and device control.

    VS Code C64 agent

    Optional Overrides

    You can add env entries in .vscode/mcp.json to select a config file, override C64 Ultimate connection details, or force an initial backend:

    json
    {
      "servers": {
        "c64bridge": {
          "command": "npx",
          "args": [
            "-y",
            "c64bridge@latest"
          ],
          "env": {
            "C64BRIDGE_CONFIG": "/home/you/.c64bridge.json",
            "C64U_HOST": "192.168.1.99",
            "C64U_PORT": "80",
            "C64U_PASSWORD": "secret",
            "C64_MODE": "c64u",
            "LOG_LEVEL": "debug"
          }
        }
      }
    }
    • C64BRIDGE_CONFIG points to a specific config file
    • C64U_HOST, C64U_PORT, and C64U_PASSWORD override the C64 Ultimate connection without editing config files
    • C64_MODE forces the initial backend to c64u or vice
    • LOG_LEVEL=debug enables verbose logging

    Environment Variables in MCP Client Configs

    Every runtime environment variable documented in the root mcp.json can be supplied by your MCP client configuration, including .vscode/mcp.json under servers.c64bridge.env.

    When an environment variable maps to a JSON config field, the override order is always:

    1. the explicit environment variable from your MCP client config or shell

    2. the merged JSON config section loaded from C64BRIDGE_CONFIG, the repo .c64bridge.json, then ~/.c64bridge.json

    3. the built-in default compiled into the server

    When an environment variable has no JSON config equivalent, the order is:

    1. the explicit environment variable from your MCP client config or shell

    2. the built-in default

    That rule applies uniformly across the documented runtime environment variables below.

    Example: visible VICE with a specific ROM or resource directory, plus a hardware fallback that can still be selected instantly at runtime:

    json
    {
      "servers": {
        "c64bridge": {
          "command": "node",
          "args": ["${workspaceFolder}/scripts/start.mjs"],
          "type": "stdio",
          "env": {
            "C64_MODE": "vice",
            "C64U_HOST": "c64u",
            "C64U_PORT": "80",
            "VICE_BINARY": "/usr/local/bin/x64sc",
            "VICE_DIRECTORY": "/usr/local/share/vice",
            "VICE_VISIBLE": "true",
            "VICE_WARP": "false"
          }
        }
      }
    }

    Example: keep JSON config files for backend endpoints, but override diagnostics, polling, and RAG behavior from VS Code:

    json
    {
      "servers": {
        "c64bridge": {
          "command": "node",
          "args": ["${workspaceFolder}/scripts/start.mjs"],
          "type": "stdio",
          "env": {
            "C64BRIDGE_CONFIG": "/home/you/.c64bridge.json",
            "LOG_LEVEL": "debug",
            "C64BRIDGE_POLL_MAX_MS": "8000",
            "C64BRIDGE_POLL_INTERVAL_MS": "200",
            "RAG_BUILD_ON_START": "1",
            "RAG_EMBEDDINGS_DIR": "/home/you/c64bridge-data"
          }
        }
      }
    }

    Runtime Environment Variable Reference

    Every runtime environment variable documented in mcp.json can be set in your MCP client configuration, including .vscode/mcp.json under servers.c64bridge.env.

    Server Runtime

    VariableDefaultJSON Config KeyDescription
    C64_MODEc64u—Select active backend (c64u for Ultimate hardware, vice for emulator)
    C64_TASK_STATE_FILEauto—Override the path used to persist MCP background-task state
    C64BRIDGE_CONFIG~/.c64bridge.jsonconfig pathPath to configuration JSON
    C64BRIDGE_DIAGNOSTICS_DIR~/.c64bridge/diagnostics—Override the directory where persistent MCP diagnostics files are written
    C64BRIDGE_DISABLE_DIAGNOSTICS0—Set to 1 to disable persistent diagnostics logging
    C64BRIDGE_POLL_INTERVAL_MS200—Interval between screen polls during program-output validation in normal runtime mode
    C64BRIDGE_POLL_MAX_MS2000—Maximum time to poll for program-output validation before timing out in normal runtime mode
    C64BRIDGE_POLL_STABILIZE_MS100—Extra settle time after a successful poll match before considering output stable
    LOG_LEVELinfo—Logger verbosity (debug, info, warn, error)

    C64 Ultimate

    VariableDefaultJSON Config KeyDescription
    C64U_HOSTc64uc64u.hostOverride the C64 Ultimate host name or IP address
    C64U_PASSWORDc64u.networkPasswordOverride the C64 Ultimate network password sent as X-Password
    C64U_PORT80c64u.portOverride the C64 Ultimate REST port

    VICE Runtime

    VariableDefaultJSON Config KeyDescription
    DISABLE_XVFB0—Set to 1 to disable Xvfb fallback and use the current display only
    FORCE_XVFB0—Set to 1 to force managed VICE launches to run under Xvfb
    VICE_ARGSvice.argsExtra command-line arguments forwarded to managed VICE launches
    VICE_BINARYx64scvice.exeVICE binary to launch for managed emulator sessions and audio capture
    VICE_DIRECTORYauto-detectvice.directoryOverride the VICE resource directory used for ROM and UI asset discovery
    VICE_HOST127.0.0.1vice.hostOverride the VICE Binary Monitor host
    VICE_PORT6502vice.portOverride the VICE Binary Monitor port
    VICE_VISIBLEtruevice.visibleLaunch VICE visibly on the desktop instead of headless/Xvfb when possible
    VICE_WARPfalse when visible, true when headlessvice.warpEnable warp mode for managed VICE sessions
    VICE_XVFB_DISPLAY:99—Display number to use when managed VICE launches under Xvfb

    VICE Audio Capture

    VariableDefaultJSON Config KeyDescription
    VICE_LIMIT_CYCLES120000000—Maximum CPU cycles to render when VICE generates audio
    VICE_MODEntsc—Default video standard for VICE audio capture (ntsc\pal)
    VICE_RUN_TIMEOUT_MS10000—Timeout for headless VICE runs in milliseconds

    SID Playback

    VariableDefaultJSON Config KeyDescription
    SIDPLAY_BINARYsidplayfp—sidplayfp binary to launch when generating audio
    SIDPLAY_LIMIT_CYCLES120000000—Maximum CPU cycles to render when sidplayfp generates audio
    SIDPLAY_MODEntsc—Default SID playback mode (ntsc\pal)
    SIDPLAYFP_BINARY—Legacy alias for SIDPLAY_BINARY (sidplayfp executable name)

    RAG

    VariableDefaultJSON Config KeyDescription
    GITHUB_TOKEN—Personal access token used for optional RAG discovery against GitHub
    RAG_BUILD_ON_START0—Set to 1 to rebuild embeddings on server start
    RAG_DISCOVER_FORCE_REFRESH0—Set to 1 to ignore cached discovery results when fetching external docs
    RAG_DOC_FILES—Comma-separated extra docs to include in RAG
    RAG_EMBEDDINGS_DIRdata—Directory containing RAG embedding JSON files
    RAG_REINDEX_INTERVAL_MS0—Periodic reindex interval in ms (0 disables)

    Testing

    VariableDefaultJSON Config KeyDescription
    C64_TEST_TARGET—Overrides integration tests to hit mock or real hardware (mock\real)

    Example Workflow

    Compose a children’s song with ChatGPT and VS Code:

    duck song

    Then render PETSCII art for it:

    duck petscii

    This is representative of the intended workflow:

    1. Ask the MCP client to generate or refine C64-oriented content.

    2. Use grouped tools such as c64_program, c64_graphics, and c64_sound to execute it.

    3. Verify the result via screen reads, frame capture, memory inspection, or audio analysis.

    HTTP Invocation

    • Preferred transport is stdio.
    • The HTTP bridge is disabled by default and is intended only for manual testing.
    • The following curl commands are illustrative so you can see what grouped MCP calls look like over HTTP.
    bash
    # Upload and run BASIC
    curl -s -X POST -H 'Content-Type: application/json' \
      -d '{"op":"upload_run_basic","program":"10 PRINT \"HELLO\"\n20 GOTO 10"}' \
      http://localhost:8000/tools/c64_program | jq
    
    # Read current screen (PETSCII→ASCII)
    curl -s -X POST -H 'Content-Type: application/json' \
      -d '{"op":"read_screen"}' \
      http://localhost:8000/tools/c64_memory | jq
    
    # Reset the machine
    curl -s -X POST -H 'Content-Type: application/json' \
      -d '{"op":"reset"}' \
      http://localhost:8000/tools/c64_system

    Build and Test

    The [./build](./build) script at the project root wraps all development tasks behind a single, self-documented interface:

    bash
    ./build --help                                       # full command reference
    ./build                                              # install + build + test matrix (full CI run)
    ./build --skip-tests                                 # install + build only
    ./build build                                        # TypeScript compile + doc generation
    ./build test                                         # integration tests (mock backend)
    ./build test --real                                  # test against real hardware
    ./build test --platform vice --target mock           # single test leg
    ./build test:matrix                                  # full matrix (c64u/mock · vice/mock · vice/device)
    ./build coverage                                     # merged coverage report
    ./build coverage:single --platform c64u --target mock
    ./build check                                        # build + test matrix (no install)
    ./build rag:rebuild                                  # rebuild RAG embeddings
    ./build release --version 1.2.3                      # prepare a release

    Starting the MCP server is not managed by ./build. Use npm start (from source) or npx -y c64bridge@latest (published package) as shown in the Quick Start section above.

    Documentation

    • doc/developer.md — development workflow and RAG details
    • data/context/bootstrap.md — primer injected ahead of prompts
    • doc/c64u/c64-openapi.yaml — REST surface (OpenAPI 3.1)
    • AGENTS.md — LLM-facing quick setup, usage, and personas

    Static MCP Interface

    The repository contains an auto-generated static mirror of the MCP server interface in the ./mcp folder.

    This allows agents to inspect the available tools, resources, prompts, and schemas without connecting to the server.

    MCP API Reference

    This MCP server exposes 15 tools, 26 resources, and 10 prompts for controlling your Commodore 64.

    Tools

    c64_config

    Grouped entry point for configuration reads/writes, diagnostics, and snapshots.

    OperationDescriptionRequired InputsNotesC64UVICE
    batch_updateApply multiple configuration updates in a single request.——✅✅
    diffCompare the current configuration with a snapshot.path—✅✅
    getRead a configuration category or specific item.category—✅✅
    infoRetrieve Ultimate hardware information and status.——✅✅
    listList configuration categories reported by the firmware.——✅✅
    load_flashLoad configuration from flash storage.——✅
    read_debugregRead the Ultimate debug register ($D7FF).——✅
    reset_defaultsReset firmware configuration to factory defaults.——✅
    restoreRestore configuration from a snapshot file.path—✅✅
    save_flashPersist the current configuration to flash storage.——✅
    setWrite a configuration value in the selected category.category, item, value—✅✅
    shuffleDiscover PRG/CRT files and run each with optional screen capture.——✅
    snapshotSnapshot configuration to disk for later restore or diff.path—✅✅
    versionFetch firmware version details.——✅✅
    write_debugregWrite a hex value to the Ultimate debug register ($D7FF).value—✅

    c64_debug

    Grouped entry point for VICE debugger operations (breakpoints, registers, stepping).

    OperationDescriptionRequired InputsNotesC64UVICE
    create_checkpointCreate a new checkpoint (breakpoint) in VICE.address—✅
    delete_checkpointRemove a checkpoint by id.id—✅
    get_checkpointFetch a single checkpoint by id.id—✅
    get_registersRead register values, optionally filtered by name or id.——✅
    list_checkpointsList all active VICE checkpoints (breakpoints).——✅
    list_registersList available registers (metadata).——✅
    set_conditionAttach a conditional expression to a checkpoint.id, expression—✅
    set_registersWrite register values.writes—✅
    stepSingle-step CPU execution.——✅
    step_returnContinue execution until the current routine returns.——✅
    toggle_checkpointEnable or disable a checkpoint by id.id, enabled—✅

    c64_disk

    Grouped entry point for disk mounts, listings, image creation, and program discovery.

    OperationDescriptionRequired InputsNotesC64UVICE
    create_imageCreate a blank disk image of the specified format.format, path—✅
    file_infoInspect metadata for a file on the Ultimate filesystem.path—✅
    find_and_runSearch for a PRG/CRT by name substring and run the first match.nameContains—✅
    list_drivesList Ultimate drive slots and their mounted images.——✅✅
    mountMount a disk image with optional verification and retries.drive, imagesupports verify✅✅
    unmountRemove the mounted image from an Ultimate drive slot.drive—✅✅

    c64_drive

    Grouped entry point for drive power, mode, reset, and ROM operations.

    OperationDescriptionRequired InputsNotesC64UVICE
    load_romTemporarily load a custom ROM into an Ultimate drive slot.drive, path—✅
    power_offPower off a specific Ultimate drive slot.drive—✅✅
    power_onPower on a specific Ultimate drive slot.drive—✅✅
    resetIssue an IEC reset for the selected drive slot.drive—✅✅
    set_modeSet the emulation mode for a drive slot (1541/1571/1581).drive, mode—✅✅

    c64_extract

    Grouped entry point for sprite/charset extraction, memory dumps, filesystem stats, and firmware health checks.

    OperationDescriptionRequired InputsNotesC64UVICE
    charsetLocate and extract 2KB character sets from RAM.——✅
    firmware_healthRun firmware readiness checks and report status metrics.——✅
    fs_statsWalk the filesystem and aggregate counts/bytes by extension.——✅
    memory_dumpDump a RAM range to hex or binary files with manifest metadata.address, length, outputPath—✅
    spritesScan RAM for sprites and optionally export .spr files.address, length—✅

    c64_graphics

    Grouped entry point for frame capture and graphics rendering workflows.

    OperationDescriptionRequired InputsNotesC64UVICE
    capture_frameCapture one or more complete video frames from the active backend.——✅✅
    render_bitmapImport an image file, convert it to VIC-II bitmap memory, write it into RAM, and display it.imagePath, format—✅✅
    render_petscii_artCreate PETSCII art from prompts, text, or explicit bitmap data, and optionally display it on the C64.——✅✅
    render_petscii_textDisplay PETSCII text with optional border and background colours.text—✅✅
    render_spriteDisplay supplied 63-byte sprite data at the requested position and colour by writing memory and patching VIC-II registers directly.sprite—✅✅

    c64_memory

    Grouped entry point for memory I/O, screen reads, and screen polling.

    OperationDescriptionRequired InputsNotesC64UVICE
    readRead a range of bytes and return a hex dump with address metadata.address—✅✅
    read_screenReturn the current 40x25 text screen converted to ASCII.——✅✅
    wait_for_textPoll the screen until a substring or regex appears, or timeout elapses.pattern—✅✅
    writeWrite a hexadecimal byte sequence into RAM.address, bytessupports verify✅✅

    c64_printer

    Grouped entry point for Commodore and Epson printing helpers.

    OperationDescriptionRequired InputsNotesC64UVICE
    define_charsDefine custom printer characters (Commodore DLL mode).firstChar, chars—✅
    print_bitmapPrint a bitmap row via Commodore (BIM) or Epson ESC/P workflows.printer, columns—✅
    print_textGenerate BASIC that prints text to device 4.text—✅

    c64_program

    Grouped entry point for program upload, execution, and batch workflows.

    OperationDescriptionRequired InputsNotesC64UVICE
    batch_runRun multiple PRG/CRT programs with post-run assertions.programs—✅✅
    bundle_runCapture screen, memory, and debug registers into an artifact bundle.runId, outputPath—✅
    cross_platform_greetingShow a platform-customized greeting on one or more configured backends, capture screenshots, and verify the results.—supports verify✅✅
    load_prgLoad a PRG from Ultimate storage without executing it.path—✅
    run_crtMount and run a CRT cartridge image.path—✅
    run_prgLoad and execute a PRG from Ultimate-visible storage on c64u or a host-local path on VICE.path—✅✅
    upload_run_asmAssemble 6502/6510 source, upload the PRG, and execute it.programsupports verify✅✅
    upload_run_basicUpload Commodore BASIC v2 source and execute it immediately.programsupports verify✅✅

    c64_rag

    Grouped entry point for BASIC and assembly RAG lookups.

    OperationDescriptionRequired InputsNotesC64UVICE
    asmRetrieve 6502/6510 assembly references from the local knowledge base.q—✅✅
    basicRetrieve BASIC references and snippets from the local knowledge base.q—✅✅

    c64_select_backend

    Switch the active backend between C64U hardware and the VICE emulator at runtime.

    OperationDescriptionRequired InputsNotesC64UVICE
    selectSwitch the active runtime backend without restarting the MCP server.backend—✅✅

    c64_sound

    Grouped entry point for SID control, playback, composition, and analysis workflows.

    OperationDescriptionRequired InputsNotesC64UVICE
    analyzeAutomatically analyze SID playback when verification is requested.request—✅
    capture_samplesCapture raw stereo PCM samples from the C64 Ultimate audio UDP stream.——✅
    compile_playCompile SIDWAVE or CPG source and optionally play it immediately.——✅✅
    generateGenerate a lightweight SID arpeggio playback sequence.——✅✅
    note_offRelease a SID voice by clearing its gate bit.voice—✅✅
    note_onTrigger a SID voice with configurable waveform, ADSR, and pitch.——✅✅
    pipelineCompile a SIDWAVE score, play it, and analyze the recording.—supports verify✅
    play_mod_filePlay a MOD tracker module via the Ultimate SID player.path—✅
    play_presetCompile and play a built-in SID preset such as Für Elise by Beethoven.—supports verify✅✅
    play_sid_filePlay a SID file stored on the Ultimate filesystem.path—✅
    record_analyzeRecord audio for a fixed duration and return SID analysis metrics.durationSeconds—✅
    resetSoft or hard reset of SID registers to clear glitches.——✅✅
    set_volumeSet the SID master volume register at $D418 (0-15).volume—✅✅
    silence_allSilence all SID voices with optional audio verification.—supports verify✅✅

    c64_stream

    Grouped entry point for starting and stopping Ultimate streaming sessions.

    OperationDescriptionRequired InputsNotesC64UVICE
    startStart an Ultimate streaming session toward a host:port target.stream, target—✅
    stopStop an active Ultimate streaming session.stream—✅

    c64_system

    Grouped entry point for power, reset, menu, and background task control.

    OperationDescriptionRequired InputsNotesC64UVICE
    list_tasksList known background tasks with status metadata.——✅✅
    menuToggle the Ultimate menu button for navigation.——✅
    pausePause the machine until resumed.——✅
    performance_reportSummarize diagnostics spans and tool latencies from the current or latest MCP session.——✅✅
    poweroffRequest a controlled shutdown via the Ultimate firmware.——✅✅
    rebootTrigger a firmware reboot to recover from faults.——✅✅
    resetIssue a soft reset without cutting power.——✅✅
    resumeResume CPU execution after a pause.——✅
    start_taskStart a named background task that runs on an interval.name, operation—✅✅
    stop_all_tasksStop every running background task and persist state.——✅✅
    stop_taskStop a specific background task and clear its timer.name—✅✅

    c64_vice

    Grouped entry point for reading and updating selected VICE resources.

    OperationDescriptionRequired InputsNotesC64UVICE
    resource_getRead a VICE configuration resource (safe prefixes only).name—✅
    resource_setWrite a VICE configuration resource (safe prefixes only).name, value—✅

    Resources

    NameSummary
    c64://docs/indexExplains how to approach each knowledge bundle and when to consult it.
    c64://context/bootstrapStep-by-step rules for safe automation, verification, and rollback on the C64.
    c64://context/fast-pathsCondensed routing guide for one-call demos, backend switching, and when to prefer orchestration over manual tool composition.
    c64://specs/basicToken definitions, syntax rules, and device I/O guidance for BASIC v2.
    c64://docs/basic/pitfallsQuickref covering quotation handling, line length, tokenization, variable names, and other BASIC traps.
    c64://specs/assemblyOfficial opcode matrix, addressing modes, and zero-page strategy for the 6510 CPU.
    c64://specs/sidRegister map, waveform behaviour, and ADSR envelopes for expressive SID playback.
    c64://specs/sidwaveDefines the SIDWAVE interchange format used by the SID composer workflow.
    c64://docs/sid/file-structureExplains PSID/RSID headers, metadata blocks, and compatibility notes for imported music.
    c64://docs/sid/best-practicesCaptures proven waveforms, ADSR presets, phrasing, and verification workflow for pleasant SID music.
    c64://specs/vicCovers raster timing, sprite control, colour RAM, and bitmap modes on the VIC-II.
    c64://specs/charsetCharacter code table mapping PETSCII codes to screen codes, glyphs, and keyboard input.
    c64://docs/petscii-styleDocuments colour palette, readability presets, dithering patterns, and best practices for creating artistic and readable PETSCII displays.
    c64://docs/sprite-charset-workflowsDocuments sprite and charset workflows, memory layout, VIC-II configuration, common pitfalls, and proven techniques for hardware-accelerated graphics.
    c64://specs/memory-mapPage-by-page breakdown of the 64 KB address space with hardware, ROM, and RAM regions.
    c64://specs/memory-lowDocuments zero-page variables, BASIC pointers, and KERNAL workspace addresses.
    c64://specs/memory-kernalLists KERNAL ROM vectors and service routines for OS-level functionality.
    c64://specs/ioCovers VIC-II, SID, CIA, and system control registers with address ranges and usage notes.
    c64://specs/ciaDetails CIA 1/2 registers, timers, interrupts, and keyboard matrix layout.
    c64://specs/printerCovers device setup, control codes, and Ultimate 64 integration for printers.
    c64://docs/printer/guideQuick-look workflow covering setup, troubleshooting, and sample jobs for both printer families.
    c64://docs/printer/commodore-textCharacter sets, control codes, and formatting for Commodore MPS text output.
    c64://docs/printer/commodore-bitmapDetails bitmap modes, graphics commands, and data layout for MPS bitmap printing.
    c64://docs/printer/epson-textLists ESC/P control codes and formatting advice for Epson FX text output.
    c64://docs/printer/epson-bitmapExplains bit-image modes, density options, and data packing for Epson bitmap jobs.
    c64://docs/printer/promptsReusable prompt templates that drive complex printer jobs through the MCP server.

    Prompts

    NameDescription
    assembly-programRoute 6502/6510 routine requests to the canonical assembly skill.
    basic-programRoute bespoke Commodore BASIC v2 requests to the canonical BASIC skill.
    cross-platform-demoRoute quick visible demo requests to the cross-platform demo skill.
    drive-managerRoute disk-image and drive-state requests to the canonical drive skill.
    graphics-demoRoute graphics requests to the canonical graphics skill.
    hello-worldRoute ultra-fast hello-world and smoke-test requests to the canonical greeting skill.
    memory-debugRoute reversible memory inspection or patching work to the canonical memory skill.
    preset-music-demoRoute quick recognizable tune requests to the SID music skill.
    printer-jobRoute printer work to the canonical printer skill.
    sid-musicRoute SID playback and composition work to the canonical SID skill.

    Similar MCP

    Based on tags & features

    • MC

      Mcp Open Library

      TypeScript·
      42
    • AN

      Anilist Mcp

      TypeScript·
      57
    • MC

      Mcp Ipfs

      TypeScript·
      11
    • LI

      Liveblocks Mcp Server

      TypeScript·
      11

    Trending MCP

    Most active this week

    • PL

      Playwright Mcp

      TypeScript·
      22.1k
    • SE

      Serena

      Python·
      14.5k
    • MC

      Mcp Playwright

      TypeScript·
      4.9k
    • MC

      Mcp Server Cloudflare

      TypeScript·
      3.0k
    View All MCP Servers

    Similar MCP

    Based on tags & features

    • MC

      Mcp Open Library

      TypeScript·
      42
    • AN

      Anilist Mcp

      TypeScript·
      57
    • MC

      Mcp Ipfs

      TypeScript·
      11
    • LI

      Liveblocks Mcp Server

      TypeScript·
      11

    Trending MCP

    Most active this week

    • PL

      Playwright Mcp

      TypeScript·
      22.1k
    • SE

      Serena

      Python·
      14.5k
    • MC

      Mcp Playwright

      TypeScript·
      4.9k
    • MC

      Mcp Server Cloudflare

      TypeScript·
      3.0k