MCP server: One MCP server.

ESP32 Control

@pixharvestMCP server · External

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

Freeno charge per call

Runs on your machine from its package; the steps are below.

What it does

  1. Reads
  2. Writes
  3. High impact

At most: moves money, runs code or commands, deletes data, or sends messages for you.

What it costs

Free

Odel charges nothing per call. The publisher may charge for its own service.

Runs locally

This server runs on your machine over stdio, but its source registry didn't list a distribution package. Check the source repository for setup instructions.

README2 min read

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-mcp
export 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

Similar modules

Browse Hardware & electronics