
ESP-MCP
Centralize ESP-IDF/ESP32 commands and drive embedded builds, flashing, and tests via LLM-driven MCP tools.
Add to your client
Copy the config for your MCP client and paste it into its config file.
git clone git@github.com:horw/esp-mcp.gitPaste into ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"esp-mcp": {
"command": "<path_to_uv_or_python_executable>",
"args": [
"--directory",
"<path_to_cloned_esp-mcp_repository>",
"run",
"main.py"
],
"env": {
"IDF_PATH": "<path_to_your_esp-idf_directory>"
}
}
}
}Step-by-step guides: Add to Claude Desktop · Add to Cursor · Add to Windsurf
Before you start
- ESP-IDF (Espressif IoT Development Framework) installed; IDF_PATH can point to its root directory or be passed per-tool via idf_path
- uv or a Python interpreter to run main.py
- git to clone the repository
- A connected ESP device for flashing operations
About ESP-MCP
An MCP server that centralizes ESP-IDF/ESP32 development commands so an LLM can install the toolchain, create projects, set the target chip, build firmware, list serial ports, flash devices, and run pytest tests through natural-language interaction. Currently a Proof of Concept focused on ESP-IDF workflows, with a long-term vision of broader embedded-device tooling.
Tools & capabilities (7)
run_esp_idf_installInstall ESP-IDF dependencies and toolchain via install.sh.
create_esp_projectCreate a new ESP-IDF project.
setup_project_esp_targetSet the target chip for ESP-IDF projects (esp32, esp32c3, esp32s3, etc.).
build_esp_projectBuild ESP-IDF projects with incremental build support; supports custom sdkconfig_defaults files (multiple separated by semicolons) and build time tracking.
list_esp_serial_portsList available serial ports for ESP devices.
flash_esp_projectFlash built firmware to connected ESP devices, with optional port specification.
run_pytestRun pytest tests with pytest-embedded support for ESP-IDF projects.
When to use it
- Install ESP-IDF dependencies for an ESP-IDF installation at a given path
- Set the target chip (e.g. esp32s3) for a project directory
- Build a project, optionally with custom sdkconfig defaults like sdkconfig.defaults;sdkconfig.ci.release
- Run pytest tests for a project targeting a specific chip such as esp32c3
- Flash firmware to a connected ESP32 device for a given project
Security notes
No license file is declared in the repository. The server executes ESP-IDF toolchain commands (install.sh, idf.py build/set-target/flash) and pytest locally, and can flash firmware to connected hardware, so it requires local toolchain access and connected devices. It is explicitly described as a Proof of Concept.
ESP-MCP FAQ
Is this an official Espressif project?
No. It is a community Proof-of-Concept MCP server (repository horw/esp-mcp), not an official Espressif release.
How do I point the server at my ESP-IDF installation?
Set the IDF_PATH environment variable in the MCP server config to your ESP-IDF root directory. Alternatively, every tool accepts an idf_path parameter so you can use different ESP-IDF versions per project; if idf_path is omitted, the tool falls back to IDF_PATH if available.
Is there a published package to install?
No. You clone the repository and run main.py via uv or Python directly, then register it as a stdio MCP server in your client's mcpServers configuration.
Alternatives to ESP-MCP
Compare all alternatives →Microsoft's official browser-automation MCP using Playwright's accessibility tree (no vision model).
Up-to-date, version-specific library documentation injected into your coding agent.
LSP-powered coding agent toolkit: semantic symbol search, references and structural edits.
Compare ESP-MCP with: