Briefing
Each time the monitor opens the port it pulses RTS to hard-reset the chip, so the log starts with the ROM banner, the bootloader header and app_main output. During a flash the monitor thread closes the port, esptool takes it, and the port is reopened in a finally block even if the flash fails. If the server dies mid-flash, the monitor reconnects on its own after 60 seconds.
The server needs ESP-IDF activated in the shell that launches the MCP client, plus uv. The README compares it with the idf.py MCP server built into ESP-IDF v6.0, which builds and flashes but keeps no log across flashes. It says the bundled heartbeat example usually runs end to end in under 90 seconds.
Written by the Boards & Bots curator
From the GitHub API
Repository facts
| Repository | cmd0s/ |
|---|---|
| Stars | 9 |
| License | MIT Permissive |
| Language | Python |
| Last push | 30 Apr 2026 6 mo ago |