MCP Directory

ESP-MCP

Centralize ESP-IDF/ESP32 commands and drive embedded builds, flashing, and tests via LLM-driven MCP tools.

Unverified
stdio (local)
No auth
Python

Add to your client

Copy the config for your MCP client and paste it into its config file.

Install / run
git clone git@github.com:horw/esp-mcp.git

Paste 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_install

Install ESP-IDF dependencies and toolchain via install.sh.

create_esp_project

Create a new ESP-IDF project.

setup_project_esp_target

Set the target chip for ESP-IDF projects (esp32, esp32c3, esp32s3, etc.).

build_esp_project

Build ESP-IDF projects with incremental build support; supports custom sdkconfig_defaults files (multiple separated by semicolons) and build time tracking.

list_esp_serial_ports

List available serial ports for ESP devices.

flash_esp_project

Flash built firmware to connected ESP devices, with optional port specification.

run_pytest

Run 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).

Featured
Verified
stdio (local)
No auth
TypeScript
12 tools
Updated 13 days agoRepo

Up-to-date, version-specific library documentation injected into your coding agent.

Verified
stdio (local)
API key
TypeScript
2 tools
Updated 17 days agoRepo

LSP-powered coding agent toolkit: semantic symbol search, references and structural edits.

Verified
stdio (local)
No auth
Python
11 tools
Updated 15 days agoRepo