ESP32 MCP
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
ESP32 MCP
Download firmware · Installation · Claude / ChatGPT / Codex · Full setup · Device drivers
Hardware tools, reusable skills and on-device Lua for MCP coding agents.
Connect Codex, Claude or another MCP client to ESP32 over local Wi-Fi or an authenticated outbound relay. Run existing operations, compose saved skills, or upload Lua without rebuilding firmware. The default tools server needs no model key: your MCP client supplies the intelligence.
Board profiles
Hardware | PlatformIO environment | Features |
ESP32 DevKit |
| Lua, GPIO/ADC, I2C/SPI, JSON skills, direct/relay control |
ESP32-S3 DevKit |
| Same core, board-specific pin policy |
ESP32-C3 DevKit |
| Same core, board-specific pin policy |
ESP32-C6 DevKit |
| Same core, board-specific pin policy |
ESP32-S2 Saola |
| Same core, board-specific pin policy |
ESP-WROVER-KIT |
| Same core; PSRAM pins excluded from external policy |
UNIHIKER K10 |
| Core plus display, RGB, sensors, microphone/ASR, camera, photo/video and voice |
This project is independent. The K10 adapter retains the companion project's hardware features. Generic profiles do not acquire a camera, microphone or screen automatically. Other boards need a compatible Arduino target and a reviewed adapter/pin map. Compilation is distinct from physical validation: see testing.
Related MCP server: OmniMCP
Execution and persistence
API v3 adds background Lua tasks, status snapshots, task mailboxes and a catalog of 32 concrete device drivers, including NRF24L01+. See drivers and background execution for wiring examples and validation status.
Runtime | Runs on | Storage | Use |
JSON steps | Board | Host catalog, optionally board NVS | Hardware operations and compositions |
Restricted Python | Laptop | Source/manifest and private JSON state | Computation and coordinated board calls |
Lua 5.4.9 | Board | Host source/manifest, optionally board NVS | Local loops, GPIO and buses |
Lua has memory, source, instruction and time limits. GPIO is denied until explicitly allowed with configure_device_pins, within the board profile ceiling. Python excludes arbitrary imports, shell, files and sockets. Neither executor is a hardened hostile-code sandbox. New native drivers still require firmware changes. Execution comparison · Lua API · Python API.
Prebuilt firmware
Download the release firmware ZIP, select the exact board profile and follow binary installation. Public images contain no credentials; configure Wi-Fi/tokens over USB after flashing, without rebuilding. Factory images are for initial installation; app-only updates preserve NVS when the partition layout is unchanged.
Start
Install Python 3.11/3.12, VS Code and PlatformIO. Copy
include/board_config.example.hto ignoredinclude/board_config.h; enter your Wi-Fi and two independent random tokens.Review
MCP_ALLOWED_PINSagainst your board pinout. Empty means all external pin access is denied.Select the matching environment from the table, build and upload. Chip variants require different binaries; do not flash the default ESP32 image to S3/C3/C6/S2. K10 uses k10, not default esp32dev.
Install requirements and configure the MCP client:
python -m venv .venv
.venv/Scripts/python.exe -m pip install -r requirements.txt
$env:ESP_MCP_CONNECTION = 'direct'
$env:ESP_MCP_BOARD_URL = 'http://192.0.2.1:8765'
$env:ESP_MCP_BOARD_TOKEN = 'REPLACE_WITH_BOARD_TOKEN'
.venv/Scripts/python.exe server.py --checkThe IP is a documentation placeholder. --check validates configuration without contacting hardware. For bare ESP32 use Codex TOML or Claude JSON. For K10 use Codex K10 or Claude K10, replacing paths and tokens locally. MCP uses stdio; logs go to stderr. Host ports default to 8777/8778. Do not expose unencrypted device HTTP publicly.
Full Russian guide: Installation and connection.
MCP tools
native_api_reference: get all native function signatures without reading source.scan_wifi_networks: scan on the board and return a native job ID.configure_device_pins: persist an exact external GPIO allowlist without reflashing.hardware_capabilities: inspect the connected board profile before selecting operations.execute_device_code(source="return 6 * 7"), thendevice_code_status(job_id=...): execute Lua on the MCU.save_device_script: save source, short command and aliases; optionally install/run on the board.list_device_scripts,read_device_script,run_device_script,stop_device_code: control persistent native skills, including reading source back from the device.save_device_skill,run_composed_skill,match_saved_command: reuse and parameterize JSON skills without duplicates.save_python_skill,run_python_skill,python_skill_status: run restricted laptop programs.
Local save and successful NVS installation are separate outcomes. Installed Lua skills survive reset but do not auto-run at boot. An active job continues after host disconnection until completion/deadline. Four Lua slots and four K10 hardware slots are separate pools sharing one MCU; memory and peripheral contention can reject work.
Optional K10 voice and media
server.py --voice enables A → speak → A capture, local or Groq STT, saved-skill routing and Codex generation. Add --local-stt and install local dependencies for local recognition. Credentials stay on the laptop. The vendor local-ASR wake phrase remains a hardware compatibility constant; the generic core does not depend on it.
K10 preserves local-command priority, transcripts, the green activity overlay, hardware jobs, camera preview, still photos and bounded silent AVI saving. B remains available. No continuous surveillance or video/person analysis is included. Feature matrix.
server.py --gateway-only --profile generic runs an independent owning service. Avoid competing gateways on the same ports. K10 uses --profile k10; generic mode omits camera/voice/display UI tools. Direct-mode photo/video still needs a reachable gateway URL and matching upload token. Cross-network operation uses outbound WSS, one board per gateway.
K10 startup displays the same gray-to-green eye animation as the companion firmware, stage percentages and by vb3227. Headless profiles report initialization on Serial.
Source and checks
server.py Public MCP entry
src/core/ Lua runtime and relay
src/boards/generic/ ESP32 supervisor
src/boards/k10/ K10 hardware/voice/media adapter
include/ Headers and public configuration template
lib/lua/ Upstream Lua and provenance
mcp/ Host tools and optional voice services
skills/ Saved JSON/Python/Lua programs
config/ Client templates with placeholders
docs/ Setup, APIs and limits
tests/ and scripts/ Tests and explicit source packagingpython -m pip install -r requirements-dev.txt
python -m unittest discover -s tests -t . -v
python scripts/check_repository.py
python scripts/package_source.pyPackaging explicitly selects sources, excluding credentials, runtime data, captures, caches, firmware and build output. Review the resulting archive. Security · Contributing · Architecture.
Author: vb3227. Original project code is MIT licensed. Bundled components retain their upstream licenses.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Skills, agents and memory in the cloud, plus a gateway to your other MCP servers.
Connect any AI agent to 1,000+ apps and 27,000+ actions through one remote MCP server (OAuth).
Build and run AI workflows, agents, data tables and 1000+ API integrations from any MCP client.
MCP gateway and cloud hosting for MCP servers, agents and apps like RAG, managed from your agent.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables cloud LLM agents to discover and invoke physical hardware on edge and IoT devices through standard MCP tools, bridging constrained device channels like UART, BLE, and Wi-Fi.3MIT
- AlicenseAqualityDmaintenanceEnables AI agents to discover, monitor, and control industrial hardware like ESP32 machine controllers and inspection cameras through a standardized MCP interface.5MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents and humans to control various hardware boards (ESP32, Arduino, Raspberry Pi, etc.) through a unified API via MCP, with real-time dashboard support.MIT
- AlicenseNot gradedqualityBmaintenanceConnects ChatGPT and MCP clients to authorized local development environments, enabling secure file access, shell execution, persistent tasks, browser/desktop control, and remote management of projects.19MIT