LabscoMCP early access ↗
horwMCP SERVER

Esp MCP

ESP-IDF from a chat window — install the toolchain, create a project, set the target chip, build, flash and run pytest, without remembering the idf.py invocations.

by horw ↗Build Systems & CI/CDCommunity

LABSCO SUMMARY

A proof of concept that covers the loop you actually repeat.

Set target, build, flash, test is the cycle that eats an embedded day, and all four are here as tools with the ESP-IDF path selectable per call — which matters because embedded projects routinely pin different IDF versions. The project is upfront that it is a PoC and invites PRs for missing commands, so treat gaps as expected rather than as bugs.

What it is

An MCP server that consolidates ESP-IDF and related project commands so an LLM can drive an embedded workflow end to end. The project describes itself as a proof of concept for ESP-IDF workflows.

What you get

  • Toolchain setup through ESP-IDF's own install.sh — run_esp_idf_install
  • New project creation and target chip selection across esp32, esp32c3, esp32s3 and the rest — create_esp_project, setup_project_esp_target
  • Incremental builds with build-time tracking, and support for custom sdkconfig_defaults files, several separated by semicolons — build_esp_project
  • Serial port discovery and flashing to a connected device, with the port optional — list_esp_serial_ports, flash_esp_project
  • Tests run with pytest-embedded support against a chosen target — run_pytest
  • Per-project ESP-IDF versions: every tool takes an idf_path parameter, so different projects can use different installations without changing the environment
  • Experimental automatic issue fixing based on build logs

Requirements

Clone the repository — there is no published package — and point your client at it with uv or a Python interpreter, running main.py from the cloned directory. IDF_PATH is optional: set it to your ESP-IDF root and it becomes the default, or pass idf_path per call. ESP-IDF itself must be installed separately if you are not using the install tool; the project links Espressif's own getting-started guide. Flashing needs a physically connected ESP device.

Setup effort

Build from source