This only helps once your boards actually connect to it, which means flashing the reference sketch with your WiFi credentials and the server address — the repository ships that sketch, which removes the hardest part of the setup. Set `JWT_SECRET` to something random before exposing the API anywhere; it is the only thing standing between the device endpoints and whoever can reach the port.
A management service for NodeMCU and ESP8266 devices that speaks two protocols at once: a REST and WebSocket API for the devices themselves, and MCP for an assistant. Devices connect over WebSocket and report in; the assistant queries and commands them through the same server.
- All registered devices listed with their status — `list-devices`
- One device in detail, including its IP, firmware version, last seen time, configuration and last telemetry reading — `get-device`
- A command sent to a device, such as restart, update or status — `send-command`
- A device's configuration updated remotely, covering settings like reporting interval, debug mode and the onboard LED — `update-config`
- A WebSocket channel for real-time updates from devices, and JWT-authenticated REST endpoints for everything the tools expose
- An Arduino sketch in the repository as a reference client implementation for the device side
Node.js 16.x or higher, and Arduino IDE with ESP8266 support for the device side. The README's global install line names `nodemcu-mcp` at 1.0.0, which npm does not have; Smithery lists a one-line install for Claude Desktop. Configuration goes in a `.env` file: `PORT` (default 3000), `HOST`, a strong random `JWT_SECRET` for API authentication, and `LOG_LEVEL`. Run it in MCP mode with `nodemcu-mcp --mode=mcp`, or in `both` mode, the default, to serve the API and MCP together.
One command — npx -y @smithery/cli install @amanasmuei/nodemcu-mcp --client claude
