mcp-openmsx

mcp-openmsx

3.4

If you are the rightful owner of mcp-openmsx and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

The MCP-openMSX server is a bridge between modern AI-assisted development and retro computing, providing tools for MSX software development, testing, and automation.

MCP-openMSX is a Model Context Protocol server designed to automate openMSX emulator instances, facilitating MSX software development and testing. It acts as a conduit between AI development tools like GitHub Copilot and the openMSX emulator, enabling seamless control and automation of MSX systems. The server supports emulator control, media management, BASIC programming, debugging, video control, memory operations, and automation. It offers dual transport modes, supporting both stdio and HTTP, making it versatile for various development environments. By translating high-level commands into TCL commands, MCP-openMSX allows developers to efficiently test and debug MSX software, enhancing productivity and bridging the gap between modern and retro computing.

Features

  • Emulator Control: Launch, configure, and manage openMSX instances.
  • Media Management: Handle ROM cartridges, floppy disks, and cassette tapes.
  • BASIC Programming Support: Tools to facilitate BASIC language programming.
  • Debugging Tools: Full CPU debugging with breakpoints and memory inspection.
  • Automation: Keyboard input simulation and savestate management.

Tools

  1. emu_control

    Controls an openMSX emulator: launch, close, powerOn, powerOff, reset, getEmulatorSpeed, setEmulatorSpeed, machineList, extensionList, wait.

  2. emu_replay

    Controls emulation timeline: start, stop, status, goBack, absoluteGoto, truncate, saveReplay, loadReplay.

  3. emu_info

    Obtain information about the current emulated machine: getStatus, getSlotsMap, getIOPortsMap.

  4. emu_media

    Manage ROM, disk, and tape media: tapeInsert, tapeRewind, tapeEject, romInsert, romEject, diskInsert, diskInsertFolder, diskEject.

  5. emu_vdp

    Manage VDP (Video Display Processor): getPalette, getRegisters, getRegisterValue, setRegisterValue, screenGetMode, screenGetFullText.

  6. basic_programming

    BASIC tools: newProgram, runProgram, setProgram, getFullProgram, getFullProgramAdvanced, listProgramLines, deleteProgramLines.

  7. debug_run

    Control execution: break, isBreaked, continue, stepIn, stepOut, stepOver, stepBack, runTo.

  8. debug_cpu

    Read/write CPU registers, CPU info, Stack pile, and Disassemble code: getCpuRegisters, getRegister, setRegister, getStackPile, disassemble, getActiveCpu.

  9. debug_memory

    RAM memory operations: selectedSlots, getBlock, readByte, readWord, writeByte, writeWord, advanced_basic_listing.

  10. debug_vram

    VRAM operations: getBlock, readByte, writeByte.

  11. debug_breakpoints

    Breakpoint management: create, remove, list.

  12. emu_keyboard

    Send text input to emulator: sendText.

  13. emu_savestates

    Save and restore machine states: load, save, list.

  14. screen_shot

    Capture emulator screen: as_image, to_file.

  15. screen_dump

    Export screen data as BASIC BSAVE instruction.