- Fonts downloaded from int10h.org on first use
- Cached in platform-appropriate directory (~/.cache/mcdosbox-x/fonts)
- Add fonts_download() MCP tool for explicit pre-download
- Wheel size reduced from 473KB to 56KB (88% smaller)
- 48 tools now registered
- Rename src/dosbox_mcp/ to src/mcdosbox_x/
- Update pyproject.toml: package name, entry point, build paths
- Update all internal imports
- Add fonts_list() MCP tool for font discovery
- Register logging and network tools in server.py
TTF Font Support:
- Bundle 7 IBM PC fonts from Ultimate Oldschool PC Font Pack (CC BY-SA 4.0)
- Add fonts.py module with resolve_font() for host/Docker path handling
- Add fonts_list() MCP tool for font discovery
- Extend launch() with TTF parameters (output, ttf_font, ttf_ptsize, etc.)
- Mount fonts at /fonts in Docker container for TTF rendering
Network Tools:
- Add port_list() to show configured serial/parallel ports
- Add port_status() to check port connectivity
- Add modem_dial()/modem_hangup() for BBS dial-out
- Extend launch() with serial1/serial2/ipx parameters
Logging Tools:
- Add logging_status/enable/disable for DOSBox-X debug logging
- Add logging_category() for selective category control
- Add log_capture()/log_clear() for log retrieval
Code quality improvements:
- Use contextlib.suppress instead of try-except-pass
- Fix variable naming (VIDEO_BASE -> video_base)
- Apply ruff formatting throughout
New tools and modules:
- control.py: pause, resume, reset, savestate, loadstate, memdump, query_status
- resources.py: Live screen capture, screenshot management resources
- clipboard_copy/clipboard_paste via DOSBox-X hotkeys (Ctrl+F5/F6)
- screen_text/screen_graphics for text buffer and VGA memory access
Configuration improvements:
- Dynamic QMP/GDB port handling (stored in session state from launch())
- Joystick config: joysticktype, timed options
- Parallel port config: parallel1, parallel2 settings
- Added -hostrun flag for host clipboard integration
Performance and UX:
- Reduced keyboard_send delay from 50ms to 10ms default
- Refactored server.py to use Tool.from_function() pattern
- Screenshot tool now returns MCP resource URIs only
MCP Resources:
- dosbox://screen - live screen capture (no tool call needed)
- dosbox://screenshots - list available screenshots
- dosbox://screenshots/{filename} - get specific screenshot
- dosbox://screenshots/latest - get most recent screenshot
- Update README.md with accurate lokkju fork info and troubleshooting
- Add CLAUDE.md development guide for future sessions
- Document GDB protocol details, architecture, and common issues
- Use remotedebug branch which adds GDB/QMP server support
- Build with --enable-remotedebug configure flag
- Add proper GDB handshake (qSupported) to gdb_client.py
- Support no-ack mode for faster communication
- Expose QMP port 4444 in addition to GDB port 1234
The GDB server is configured via [dosbox] section:
gdbserver = true
gdbserver port = 1234
qmpserver = true
qmpserver port = 4444
Tested features: register read, memory read, breakpoints
MCP server for AI-assisted debugging of DOS binaries via GDB protocol.
Features:
- GDB remote protocol client for DOSBox-X debugging
- 16 debugging tools: launch, attach, breakpoint management,
registers, memory read/write, disassemble, step, continue, etc.
- Docker container with DOSBox-X for consistent environment
- Support for DOS segment:offset addressing
- Comprehensive test suite (49 tests)
Primary use case: Reverse engineering the unpublished Bezier algorithm
in RIPTERM.EXE for the RIPscrip graphics protocol project.