esp32
MCP for ESP32-C6 with Warp temrinal integration
claude mcp add --transport stdio georgik-esp32-mcp-server /path/to/esp32-mcp-bridge/target/release/esp32-mcp-bridge --esp32-ip <ESP32_IP_ADDRESS> --port 3000 \ --env ESP32_IP="IP address of the ESP32-C6 MCP server (e.g., 192.168.1.100)"
How to use
The ESP32-C6 MCP Server implements a TCP-based MCP endpoint that Warp can reach through a bridge tool. The bridge runs on your host and forwards JSON-RPC messages between Warp and the ESP32 MCP server over TCP on port 3000. To use it, ensure your ESP32-C6 is connected to WiFi and has obtained an IP address via DHCP. Start the bridge tool and point it at the ESP32 IP, then configure Warp to use the bridge as an MCP server. Once connected, you can issue MCP commands exposed by the ESP32 server, such as querying WiFi status, reading the IP address, or performing compute operations, all via Warp's MCP interface.
Available tools on the ESP32 MCP server include: wifi_status for checking WiFi connection and IP info; led_control for adjusting the onboard LED color and brightness; compute_add and compute_multiply for floating-point arithmetic. The bridge translates Warp's JSON-RPC messages to the ESP32 TCP-based MCP protocol and forwards responses back to Warp. Use the Warp configuration example in the README to point Warp at the bridge binary and specify the IP and port. The architecture enables a streamlined integration where Warp can orchestrate actions on the ESP32 as part of larger workflows.
How to install
Prerequisites:
- Rust toolchain with ESP32 target support
- ESP-HAL v1.0.0-rc.0
- A development environment with cargo available
- WiFi credentials (SSID and PASSWORD) for ESP32-C6 at compile time
Installation and setup steps:
-
Prepare ESP32 firmware environment variables for WiFi:
- Create environment variables for SSID and PASSWORD before building the firmware: export SSID="YourWiFiNetwork" export PASSWORD="YourWiFiPassword"
-
Build and flash the ESP32-C6 firmware: cd esp32-c6-mcp-rs cargo build --release # Always build with --release for embedded targets cargo run --release # This will flash the firmware to the ESP32-C6
-
Monitor the ESP32 output to confirm DHCP IP assignment: cargo monitor
-
Build the bridge tool (on your host): cd esp32-mcp-bridge cargo build --release
-
Run the bridge tool (example): ./target/release/esp32-mcp-bridge --esp32-ip 192.168.1.100 --port 3000
-
Configure Warp to use the bridge as an MCP server by following the Warp config example in the README, ensuring the bridge path and the ESP32 IP/port are correct.
Additional notes
Tips and notes:
- Ensure the ESP32-C6 is connected to a 2.4 GHz WiFi network (ESP32-C6 does not support 5 GHz).
- The MCP server on the ESP32 listens on TCP port 3000; ensure your network firewall allows this traffic.
- The bridge handles JSON-RPC forwarding between Warp and the ESP32 MCP server. If you experience connection issues, enable verbose logging on the bridge and verify the ESP32 IP matches what the bridge reports during serial output.
- WiFi credentials are embedded at compile time in the firmware for this prototype; for production, consider a secure method to supply credentials.
- If you need to reconfigure credentials, you must rebuild the firmware with new SSID/PASSWORD values.
Related MCP Servers
rust -schema
A type-safe implementation of the official Model Context Protocol (MCP) schema in Rust.
turbovault
MCP server that transforms your Obsidian vault into an intelligent knowledge system
tsrs
tushare rust mcp server
mcp-loxone
An opinionated Model Context Protocol (MCP) server for controlling Loxone home automation systems.
ultrafast
High-performance, ergonomic Model Context Protocol (MCP) implementation in Rust
firecrawl -zed
Firecrawl MCP Server for Zed