
ESP32 Control
com.pixharvestv0.1.0Updated Oct 8, 2026
Control ESP32 IoT devices from AI agents: status, GPIO, ADC, reboot.
Overview
Lets an assistant check and control an ESP32 IoT device over its REST API: status, GPIO read/write, ADC readings, raw commands, and reboot.
- What it does
- Exposes six tools for an ESP32 running a small MicroPython REST firmware: esp32.status reports online state, chip, free heap and uptime; esp32.gpio_set drives a GPIO high or low; esp32.gpio_read reads a digital pin; esp32.adc_read returns an analog voltage in millivolts; esp32.send_command sends a raw AT or application command; and esp32.reboot restarts the device. The server runs locally and talks to the device over HTTP, so it works on the same network or remotely.
- When to use it
- Use it when you want an AI client such as Claude Desktop or Cursor to inspect or actuate a physical ESP32 board — toggling pins, sampling analog inputs, checking device health, or rebooting it — instead of opening a serial console or writing scripts.
- Requirements
- A local Python runtime with the esp32-mcp package installed, and an ESP32 flashed with the project's MicroPython firmware exposing its REST API. The device address is set with the ESP32_HOST environment variable (default and the request timeout with ESP32_TIMEOUT. The device's own WiFi AP uses a default password that should be changed.
Installation
In SourceWeft
- Open ESP32 Control in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
ESP32 MCP Server
Control and read ESP32 IoT devices directly from AI agents (Claude, Cursor, any MCP client).
esp32.status— online / chip / free heap / uptimeesp32.gpio_set— set a GPIO high/lowesp32.gpio_read— read a digital pinesp32.adc_read— read analog voltage (mV)esp32.send_command— raw AT/application commandesp32.reboot— reboot the device
Architecture
The ESP32 runs a tiny MicroPython firmware (esp32_firmware/main.py) exposing a
lightweight REST API on port 80. The MCP server talks to it over HTTP — works
locally and remotely.
Quick start
1. Flash the ESP32 firmware
- Install MicroPython on your ESP32.
- Upload
esp32_firmware/main.pyasmain.py(Thonny ormpremote). - Power on — the device opens a WiFi AP named
ESP32-MCP(password12345678) or you can set STA mode inside the firmware to join your network.
2. Run the MCP server
For remote agents, run with HTTP transport:
3. Add to your AI client
Claude Desktop (claude_desktop_config.json):
Cursor: Settings → MCP → Add server → esp32-mcp with env ESP32_HOST.
Then just ask: "turn GPIO 2 on", "what's the ADC reading on pin 34?", "reboot the device".
Configuration
Safety
- GPIO outputs are limited to pins
2, 4, 5, 18, 19by default (editGPIO_OUTin the firmware to change). - The firmware only listens on its own network; change the AP password before exposing to the internet.
Pricing
Free is not a trial — core tools work forever. Upgrade when you need scale.
License
MIT
Source: README.md at commit 2e603b9
Tools
0Version history
1- v0.1.0LatestOct 8, 2026


