使用说明

项目简介

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设备。

安装步骤

  1. 环境准备

    • 确保已安装 Node.js 16.x 或更高版本。
    • 确保已安装 npm 或 yarn 包管理器。
    • 如果需要烧录NodeMCU客户端代码,请准备好 Arduino IDE 并配置 ESP8266 开发环境。
  2. 安装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客户端调用
  3. 配置服务器

    • 复制 '.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     # 日志级别

服务器配置 (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配置。

基本使用方法

  1. 启动服务器

    • 开发模式 (API服务器,带自动重启): 'npm run dev'
    • 生产模式 (API服务器): 'npm start'
    • MCP服务器模式: 'npm run mcp' 或 'nodemcu-mcp --mode=mcp' (如果全局安装)
  2. 配置NodeMCU客户端

    • 参考 'examples' 目录下的Arduino示例代码,配置WiFi和MCP服务器地址。
    • 将代码烧录到NodeMCU设备。
  3. 通过API管理设备 (如果以API服务器模式运行)

    • 使用API文档中提供的端点,通过HTTP请求管理设备,例如:
      • 登录获取JWT Token: 'POST /api/auth/login'
      • 获取设备列表: 'GET /api/devices' (需要携带JWT Token)
      • 发送命令到设备: 'POST /api/devices/:id/command' (需要携带JWT Token)
  4. 通过MCP客户端 (如Claude Desktop) 与NodeMCU设备交互 (如果以MCP服务器模式运行)

    • 按照 Claude Desktop 的MCP服务器配置步骤,配置NodeMCU MCP服务。
    • 在 Claude Desktop 中,可以使用自然语言指令来管理NodeMCU设备,例如:
      • "列出所有我的NodeMCU设备"
      • "获取客厅传感器的详细信息"
      • "重启厨房传感器"
      • "将卧室传感器的报告间隔更新为60秒"

通过以上步骤,即可搭建并使用NodeMCU MCP服务来管理NodeMCU设备,并将其与支持MCP协议的AI工具集成,实现更智能的物联网应用。

信息

分类

桌面与硬件