Skip to content

v1.2.7

Choose a tag to compare

@nataliapc nataliapc released this 09 Apr 20:40
· 16 commits to main since this release

What's New

Windows: Correct Control Protocol

  • Named pipe control for Windows — The MCP server now uses -control pipe:<name> on Windows instead of -control stdio. This follows the official openMSX documentation and fixes a known issue where the StdioConnection stdin reader thread hangs on exit because read() never unblocks cleanly on Windows. Commands are sent to openMSX via a Windows named pipe (\\.\pipe\openmsx-mcp-<pid>); replies are still read from stdout as usual. Each MCP server instance uses a PID-based pipe name to avoid collisions.

macOS: Auto-Detection of openMSX Executable

  • macOS .app bundle probe — The server now probes /Applications/openMSX.app/Contents/MacOS/openmsx before falling back to openmsx in PATH. This means macOS users no longer need to set OPENMSX_EXECUTABLE manually when openMSX is installed in the standard location.

Improved Error Handling

  • Actionable ENOENT message — When the openMSX executable is not found, the error now includes the attempted path and per-platform guidance on how to set OPENMSX_EXECUTABLE (macOS bundle path, Windows Program Files, Linux PATH).
  • Defensive pipe cleanup — The named pipe writer is cleaned up on every exit path (process exit, close, force-kill, and re-launch), preventing resource leaks if the emulator crashes unexpectedly.

Documentation

  • Updated README and skill environment variables documentation with auto-detected defaults per platform.
  • OPENMSX_EXECUTABLE default value now shows the actual auto-detected path for each OS.