mcp-openmsx
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
emu_control
Controls an openMSX emulator: launch, close, powerOn, powerOff, reset, getEmulatorSpeed, setEmulatorSpeed, machineList, extensionList, wait.
emu_replay
Controls emulation timeline: start, stop, status, goBack, absoluteGoto, truncate, saveReplay, loadReplay.
emu_info
Obtain information about the current emulated machine: getStatus, getSlotsMap, getIOPortsMap.
emu_media
Manage ROM, disk, and tape media: tapeInsert, tapeRewind, tapeEject, romInsert, romEject, diskInsert, diskInsertFolder, diskEject.
emu_vdp
Manage VDP (Video Display Processor): getPalette, getRegisters, getRegisterValue, setRegisterValue, screenGetMode, screenGetFullText.
basic_programming
BASIC tools: newProgram, runProgram, setProgram, getFullProgram, getFullProgramAdvanced, listProgramLines, deleteProgramLines.
debug_run
Control execution: break, isBreaked, continue, stepIn, stepOut, stepOver, stepBack, runTo.
debug_cpu
Read/write CPU registers, CPU info, Stack pile, and Disassemble code: getCpuRegisters, getRegister, setRegister, getStackPile, disassemble, getActiveCpu.
debug_memory
RAM memory operations: selectedSlots, getBlock, readByte, readWord, writeByte, writeWord, advanced_basic_listing.
debug_vram
VRAM operations: getBlock, readByte, writeByte.
debug_breakpoints
Breakpoint management: create, remove, list.
emu_keyboard
Send text input to emulator: sendText.
emu_savestates
Save and restore machine states: load, save, list.
screen_shot
Capture emulator screen: as_image, to_file.
screen_dump
Export screen data as BASIC BSAVE instruction.