NodeMCU

by amanasmuei

1 stars
Not rated
GitHub

About

Enables remote management and monitoring of ESP8266-based IoT devices through WebSocket connections and REST API endpoints for smart home automation, environmental monitoring, and device fleet management.

Details

Author
amanasmuei
Repository
amanasmuei/mcp-server-nodemcu
GitHub stars
1
License
MIT License
Categories
Developer Tools, Other, Infrastructure, Productivity, Design, AI, Frontend, API

- 🔌 Device Management: Register, monitor, and control NodeMCU devices
- 📊 Real-time Communication: WebSocket interface for real-time updates
- ⚙️ Configuration Management: Update device settings remotely
- 🔄 Command Execution: Send restart, update, status commands remotely
- 📡 Telemetry Collection: Gather sensor data and device metrics
- 🔐 Authentication: Secure API access with JWT authentication
- 🧠 AI Integration: Work with Claude Desktop and other MCP-compatible AI tools

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name NodeMCU
    Command (node, npx, python, etc.) node
    Arguments
    • Argument 1 /ABSOLUTE/PATH/TO/YOUR/PROJECT/mcp_server_sdk.js

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

To install NodeMCU Manager for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @amanasmuei/nodemcu-mcp --client claude

npm install -g nodemcu-mcp

npm install nodemcu-mcp


npm install

npm install -g .

PORT=3000
HOST=localhost

Development mode with auto-restart:

npm run dev

Production mode:

npm start

For integration with Claude Desktop or other MCP clients:

npm run mcp

If installed globally:

nodemcu-mcp --mode=mcp

list-devices

List all registered NodeMCU devices and their status.

get-device

Get detailed information about a specific NodeMCU device.

send-command

Send a command to a NodeMCU device.

update-config

Update the configuration of a NodeMCU device.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "nodemcu": {
            "env": {},
            "args": [
                "/ABSOLUTE/PATH/TO/YOUR/PROJECT/mcp_server_sdk.js"
            ],
            "command": "node"
        }
    }
}

Linux

{
    "env": [],
    "args": [
        "/ABSOLUTE/PATH/TO/YOUR/PROJECT/mcp_server_sdk.js"
    ],
    "command": "node"
}

Macos

{
    "env": [],
    "args": [
        "/ABSOLUTE/PATH/TO/YOUR/PROJECT/mcp_server_sdk.js"
    ],
    "command": "node"
}

Windows

{
    "env": [],
    "args": [
        "/c",
        "node",
        "/ABSOLUTE/PATH/TO/YOUR/PROJECT/mcp_server_sdk.js"
    ],
    "command": "cmd"
}

NodeMCU MCP (Model Context Protocol) Service

A Model Context Protocol (MCP) service for managing NodeMCU devices. This service provides both a standard RESTful API/WebSocket interface and implements theModel Context Protocolfor integration with AI tools like Claude Desktop.

NodeMCU MCP provides a management solution for ESP8266/NodeMCU IoT devices with these key capabilities:

- Monitor device status and telemetry
- Send commands to devices remotely
- Update device configurations
- Integration with AI assistants through MCP protocol

How Claude Desktop Interacts with NodeMCU Devices

- 🔌Device Management: Register, monitor, and control NodeMCU devices
- 📊Real-time Communication: WebSocket interface for real-time updates
- ⚙️Configuration Management: Update device settings remotely
- 🔄Command Execution: Send restart, update, status commands remotely
- 📡Telemetry Collection: Gather sensor data and device metrics
- 🔐Authentication: Secure API access with JWT authentication
- 🧠AI Integration: Work with Claude Desktop and other MCP-compatible AI tools

- Node.js 16.x or higher
- npm or yarn
- For the NodeMCU client: Arduino IDE with ESP8266 support

To install NodeMCU Manager for Claude Desktop automatically viaSmithery:

npx -y @smithery/cli install @amanasmuei/nodemcu-mcp --client claude
# Global installation (recommended for MCP integration) npm install -g nodemcu-mcp # Local installation npm install nodemcu-mcp
# Clone the repository git clone https://github.com/amanasmuei/nodemcu-mcp.git cd nodemcu-mcp # Install dependencies npm install # Optional: Install globally for MCP integration npm install -g .

-

Create a.envfile based on the example:

Update the.envfile with your settings:

# Server Configuration PORT=3000 HOST=localhost # Security JWT_SECRET=your_strong_random_secret_key # Log Level (error, warn, info, debug) LOG_LEVEL=info

For integration with Claude Desktop or other MCP clients:

Usage: nodemcu-mcp [options] Options: -m, --mode Run mode (mcp, api, both) [string] [default: "both"] -p, --port Port for API server [number] [default: 3000] -h, --help Show help [boolean] --version Show version number [boolean]

This project now uses the official Model Context Protocol (MCP) TypeScript SDK to provide integration with Claude for Desktop and other MCP clients.

The following tools are available through the MCP interface:

- list-devices: List all registered NodeMCU devices and their status
- get-device: Get detailed information about a specific NodeMCU device
- send-command: Send a command to a NodeMCU device
- update-config: Update the configuration of a NodeMCU device

To use this server with Claude for Desktop:
- Install Claude for Desktop fromhttps://claude.ai/desktop
- Configure Claude for Desktop by editing~/Library/Application Support/Claude/claude_desktop_config.json:

{ "mcpServers": { "nodemcu": { "command": "node", "args": [ "/ABSOLUTE/PATH/TO/YOUR/PROJECT/mcp_server_sdk.js" ] } } }

- Restart Claude for Desktop
- You should now see the NodeMCU tools in the Claude for Desktop interface

-

POST /api/auth/login- Login and get JWT token

{ "username": "admin", "password": "admin123" }
{ "message": "Login successful", "token": "your.jwt.token", "user": { "id": 1, "username": "admin", "role": "admin" } }

POST /api/auth/validate- Validate JWT token

{ "token": "your.jwt.token" }

All device endpoints require authentication with a JWT token:

{ "count": 1, "devices": [ { "id": "nodemcu-001", "name": "Living Room Sensor", "type": "ESP8266", "status": "online", "ip": "192.168.1.100", "firmware": "1.0.0", "lastSeen": "2023-05-15T14:30:45.123Z" } ] }
{ "id": "nodemcu-001", "name": "Living Room Sensor", "type": "ESP8266", "status": "online", "ip": "192.168.1.100", "firmware": "1.0.0", "lastSeen": "2023-05-15T14:30:45.123Z", "config": { "reportInterval": 30, "debugMode": false, "ledEnabled": true }, "lastTelemetry": { "temperature": 23.5, "humidity": 48.2, "uptime": 3600, "heap": 35280, "rssi": -68 } }
{ "command": "restart", "params": {} }
{ "message": "Command sent to device", "command": "restart", "params": {}, "response": { "success": true, "message": "Device restarting" } }

The WebSocket server is available at the root path:ws://your-server:3000/

For details on the WebSocket protocol messages, refer to the code or the examples directory.

Refer to the Arduino sketch in theexamplesdirectory for a complete client implementation.
-

Install required libraries in Arduino IDE:

- ESP8266WiFi
- WebSocketsClient
- ArduinoJson

Configure the sketch with your WiFi and server settings:

// WiFi credentials const char ssid = "YOUR_WIFI_SSID"; const char password = "YOUR_WIFI_PASSWORD"; // MCP Server settings const char* mcpHost = "your-server-ip"; const int mcpPort = 3000;

Upload the sketch to your NodeMCU device

nodemcu-mcp/ ├── assets/ # Logo and other static assets ├── bin/ # CLI scripts ├── examples/ # Example client code ├── middleware/ # Express middleware ├── routes/ # API routes ├── services/ # Business logic ├── .env.example # Environment variables example ├── index.js # API server entry point ├── mcp_server.js # MCP protocol implementation ├── mcp-manifest.json # MCP manifest └── package.json # Project configuration

Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (git checkout -b feature/amazing-feature)
- Commit your changes (git commit -m 'Add some amazing feature')
- Push to the branch (git push origin feature/amazing-feature)
- Open a Pull Request

This project is licensed under the MIT License - see theLICENSEfile for details.

MIT License is a permissive license that allows you to:

- Use the software commercially
- Modify the software
- Distribute the software
- Use and modify the software privately

The only requirement is that the license and copyright notice must be included with the software.

- Model Context Protocolfor the integration specification
-
NodeMCUfor the amazing IoT platform
-
Anthropicfor Claude Desktop

This is a web browser that enables your coding agent, such as Claude Code, to visit websites on your behalf and assist you in identifying bugs or creating UI test cases.

Blynk's MCP server lets AI coding tools create device templates, manage devices, and read live sensor data on the Blynk IoT platform

MCP servers for Notecard, Notehub, and general development.

Build and deploy full-stack Next.js apps with 98 tools for React, AWS, and MongoDB

The official developer experience MCP Server for Amazon DynamoDB. This server provides DynamoDB expert design guidance and data modeling assistance.

All Azure MCP tools in a single server. The Azure MCP Server implements the MCP specification to create a seamless connection between AI agents and Azure services. Azure MCP Server can be used alone or with the GitHub Copilot for Azure extension in VS Code.

Run code in secure sandboxes hosted by E2B

Tool platform by IBM to build, test and deploy tools for any data source

The Railway MCP Server enables natural language interaction with your Railway projects and infrastructure. Ask your IDE or AI assistant to create projects, deploy templates, manage environments, pull variables, redeploy services, and more.

The Shipyard CLI provides an MCP server for agents to manage Shipyard environments directly: by pulling logs, comparing branches, running tests, and stopping/starting environments..

Secure virtual machines for agents hosted by Superserve

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.