使用说明
项目简介
NodeMCU MCP服务是一个专为管理ESP8266/NodeMCU物联网设备设计的MCP(Model Context Protocol)服务器。它不仅提供标准的RESTful API和WebSocket接口,还实现了Model Context Protocol,使得AI工具如Claude Desktop等能够方便地与NodeMCU设备进行集成。通过该服务,用户可以监控设备状态、远程发送指令、更新配置以及收集遥测数据,从而实现智能化的设备管理和控制。
主要功能点
- 设备管理:注册、监控和控制NodeMCU设备。
- 实时通信:通过WebSocket接口实现设备状态的实时更新和双向通信。
- 配置管理:远程更新NodeMCU设备的配置参数。
- 命令执行:向NodeMCU设备发送重启、更新状态等命令。
- 遥测数据收集:收集NodeMCU设备上传的传感器数据和设备运行指标。
- AI集成:通过MCP协议与Claude Desktop等AI助手集成,实现自然语言控制NodeMCU设备。
安装步骤
-
环境准备:
- 确保已安装 Node.js 16.x 或更高版本。
- 确保已安装 npm 或 yarn 包管理器。
- 如果需要烧录NodeMCU客户端代码,请准备好 Arduino IDE 并配置 ESP8266 开发环境。
-
安装NodeMCU MCP服务:
- 从npm安装 (如果已发布):
npm install -g nodemcu-mcp - 从源码安装:
git clone https://github.com/amanasmuei/nodemcu-mcp.git cd nodemcu-mcp npm install npm install -g . # 可选:全局安装以便MCP客户端调用
- 从npm安装 (如果已发布):
-
配置服务器:
- 复制 '.env.example' 文件并重命名为 '.env':
cp .env.example .env - 编辑 '.env' 文件,根据需要修改配置,例如端口号、JWT密钥等。
PORT=3000 # 服务器端口 HOST=localhost # 服务器主机名 JWT_SECRET=your_strong_random_secret_key # JWT密钥,用于API鉴权 LOG_LEVEL=info # 日志级别
- 复制 '.env.example' 文件并重命名为 '.env':
服务器配置 (MCP客户端)
要将NodeMCU MCP服务配置为Claude Desktop或其他MCP客户端的MCP服务器,需要提供以下JSON配置信息。请注意,这里的 'command' 和 'args' 是MCP客户端(如Claude Desktop)用来启动MCP服务器的命令,并非在NodeMCU MCP服务器上执行的命令。
{ "mcpServers": { "nodemcu": { // 服务器名称,可以自定义 "command": "nodemcu-mcp", // 启动MCP服务器的命令,如果全局安装,则为 nodemcu-mcp,否则为 node mcp_server.js 或 node bin/cli.js "args": ["--mode=mcp"] // 传递给启动命令的参数,这里指定以 MCP 模式运行 } } }
配置说明:
- 'mcpServers': MCP服务器配置的根节点。
- 'nodemcu': 自定义的服务器名称,用于在客户端中标识该服务器。可以修改为其他名称。
- 'command': 启动NodeMCU MCP服务器的命令。
- 如果您已将 'nodemcu-mcp' 包全局安装 ('npm install -g nodemcu-mcp'),并且 'nodemcu-mcp' 命令已添加到系统PATH环境变量中,则可以直接使用 'nodemcu-mcp'。
- 如果您选择从源码安装或本地安装,并且没有全局安装,则需要指定Node.js解释器和入口文件路径。例如,如果您在项目根目录下运行,可以使用 'node mcp_server.js' 或者 'node bin/cli.js' (取决于您希望运行哪个入口文件,以及是否使用 'cli.js' 脚本)。
- 'args': 传递给 'command' 命令的参数数组。
- '--mode=mcp' 参数指定NodeMCU MCP服务以MCP服务器模式运行。这是与MCP客户端集成的必要参数。
Claude Desktop 配置示例:
编辑 '~/Library/Application Support/Claude/claude_desktop_config.json' (如果文件不存在则创建),并添加上述JSON配置。
基本使用方法
-
启动服务器:
- 开发模式 (API服务器,带自动重启): 'npm run dev'
- 生产模式 (API服务器): 'npm start'
- MCP服务器模式: 'npm run mcp' 或 'nodemcu-mcp --mode=mcp' (如果全局安装)
-
配置NodeMCU客户端:
- 参考 'examples' 目录下的Arduino示例代码,配置WiFi和MCP服务器地址。
- 将代码烧录到NodeMCU设备。
-
通过API管理设备 (如果以API服务器模式运行):
- 使用API文档中提供的端点,通过HTTP请求管理设备,例如:
- 登录获取JWT Token: 'POST /api/auth/login'
- 获取设备列表: 'GET /api/devices' (需要携带JWT Token)
- 发送命令到设备: 'POST /api/devices/:id/command' (需要携带JWT Token)
- 使用API文档中提供的端点,通过HTTP请求管理设备,例如:
-
通过MCP客户端 (如Claude Desktop) 与NodeMCU设备交互 (如果以MCP服务器模式运行):
- 按照 Claude Desktop 的MCP服务器配置步骤,配置NodeMCU MCP服务。
- 在 Claude Desktop 中,可以使用自然语言指令来管理NodeMCU设备,例如:
- "列出所有我的NodeMCU设备"
- "获取客厅传感器的详细信息"
- "重启厨房传感器"
- "将卧室传感器的报告间隔更新为60秒"
通过以上步骤,即可搭建并使用NodeMCU MCP服务来管理NodeMCU设备,并将其与支持MCP协议的AI工具集成,实现更智能的物联网应用。
信息
分类
桌面与硬件