ESP32 Control

com.pixharvestv0.1.0Updated Oct 8, 2026

Control ESP32 IoT devices from AI agents: status, GPIO, ADC, reboot.

VerifiedSTDIODesktop onlyCloud & InfrastructureDeveloper Tools

Overview

AI-generated 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.
Before you install
The server can change hardware state: esp32.gpio_set drives physical pins, esp32.send_command passes raw commands to the device, and esp32.reboot restarts it, so mistakes affect real hardware. Only pins 2, 4, 5, 18 and 19 are writable by default. The firmware's default AP password is weak and the README warns to change it before exposing the device to the internet. A paid Pro tier is offered, but the free tier covers the six core tools.

Installation

In SourceWeft

  1. Open ESP32 Control in the dashboard and add it to a workspace.
  2. 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 / uptime
  • esp32.gpio_set — set a GPIO high/low
  • esp32.gpio_read — read a digital pin
  • esp32.adc_read — read analog voltage (mV)
  • esp32.send_command — raw AT/application command
  • esp32.reboot — reboot the device

Architecture

AI agent (Claude/Cursor)  →  this MCP server (Python)  →  ESP32 REST API  →  device

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

  1. Install MicroPython on your ESP32.
  2. Upload esp32_firmware/main.py as main.py (Thonny or mpremote).
  3. Power on — the device opens a WiFi AP named ESP32-MCP (password 12345678) or you can set STA mode inside the firmware to join your network.

2. Run the MCP server

bash
pip install esp32-mcpexport ESP32_HOST=http://192.168.4.1     # device address (AP default)esp32-mcp                                  # stdio transport (local MCP client)

For remote agents, run with HTTP transport:

bash
uv run esp32-mcp --transport http --port 8000

3. Add to your AI client

Claude Desktop (claude_desktop_config.json):

json
{  "mcpServers": {    "esp32": {      "command": "esp32-mcp",      "env": { "ESP32_HOST": "http://192.168.4.1" }    }  }}

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

Env varDefaultMeaning
ESP32_HOSThttp://192.168.4.1ESP32 REST endpoint
ESP32_TIMEOUT8request timeout (s)

Safety

  • GPIO outputs are limited to pins 2, 4, 5, 18, 19 by default (edit GPIO_OUT in the firmware to change).
  • The firmware only listens on its own network; change the AP password before exposing to the internet.

Pricing

PlanPriceWhat you get
Free$0All 6 core tools, single device
Pro$9/mo or $90/yrMulti-device, history, batch control, OTA, webhooks

Free is not a trial — core tools work forever. Upgrade when you need scale.

License

MIT

Source: README.md at commit 2e603b9

Tools

0
Tool metadata has not been indexed yet.

Version history

1
  1. v0.1.0LatestOct 8, 2026