modelscope·@amanasmuei/nodemcu-mcp
一项用于管理ESP8266/NodeMCU物联网设备的服务,该服务同时提供REST/WebSocket API,并实现了模型上下文协议以集成AI助手。
这是一个用于管理NodeMCU设备的模型上下文协议(MCP)服务。该服务既提供了标准的RESTful API/WebSocket接口,也实现了模型上下文协议,以便与像Claude Desktop这样的AI工具集成。
NodeMCU MCP为ESP8266/NodeMCU IoT设备提供了一个管理解决方案,具有以下关键功能:
要通过Smithery自动安装适用于Claude Desktop的NodeMCU Manager:
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 .
根据示例创建一个.env文件:
cp .env.example .env
使用您的设置更新.env文件:
# 服务器配置
PORT=3000
HOST=localhost
# 安全
JWT_SECRET=your_strong_random_secret_key
# 日志级别 (error, warn, info, debug)
LOG_LEVEL=info
开发模式带自动重启:
npm run dev
生产模式:
npm start
为了与Claude Desktop或其他MCP客户端集成:
npm run mcp
如果全局安装了:
nodemcu-mcp --mode=mcp
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]
此项目现在使用官方的 Model Context Protocol (MCP) TypeScript SDK 来提供与 Claude for Desktop 及其他 MCP 客户端的集成。
以下工具可以通过 MCP 接口获得:
要将此服务器与 Claude for Desktop 一起使用,请执行以下步骤:
~/Library/Application Support/Claude/claude_desktop_config.json 配置 Claude for Desktop:{
"mcpServers": {
"nodemcu": {
"command": "node",
"args": [
"/ABSOLUTE/PATH/TO/YOUR/PROJECT/mcp_server_sdk.js"
]
}
}
}
要直接运行 MCP 服务器:
npm run mcp
或者使用 CLI:
./bin/cli.js --mode=mcp
POST /api/auth/login - 登录并获取 JWT 令牌
{
"username": "admin",
"password": "admin123"
}
响应:
{
"message": "登录成功",
"token": "your.jwt.token",
"user": {
"id": 1,
"username": "admin",
"role": "admin"
}
}
POST /api/auth/validate - 验证 JWT 令牌
{
"token": "your.jwt.token"
}
所有设备端点都需要使用 JWT 令牌进行身份验证:
Authorization: Bearer your.jwt.token
GET /api/devices
响应:
{
"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"
}
]
}
GET /api/devices/:id
响应:
{
"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
}
}
POST /api/devices/:id/command
请求:
{
"command": "restart",
"params": {}
}
响应:
{
"message": "Command sent to device",
"command": "restart",
"params": {},
"response": {
"success": true,
"message": "Device restarting"
}
}
WebSocket 服务器位于根路径:ws://your-server:3000/
有关 WebSocket 协议消息的详细信息,请参阅代码或示例目录。
请参考 examples 目录中的 Arduino 草图,以获取完整的客户端实现。
在 Arduino IDE 中安装所需的库:
使用你的 WiFi 和服务器设置配置草图:
// WiFi 凭据
const char* ssid = "YOUR_WIFI_SSID";
const char* password = "YOUR_WIFI_PASSWORD";
// MCP 服务器设置
const char* mcpHost = "your-server-ip";
const int mcpPort = 3000;
将草图上传到你的 NodeMCU 设备
nodemcu-mcp/
├── assets/ # Logo and other static assets
├── bin/ # CLI scripts
├── examples/ …
一座通过串行通信将物理硬件设备与人工智能大语言模型连接起来的桥梁,允许用户使用自然语言命令控制硬件。
一种多功能的模型上下文协议服务器,使人工智能助手能够管理日历、跟踪任务、处理电子邮件、搜索网络以及控制智能家居设备。
暂无描述。
暂无描述。
暂无描述。
暂无描述。