物联网设备通信服务器

一个基于模型上下文协议(MCP)的物联网设备通信服务器,支持UDP消息传递,适用于AI助手集成和设备信息传输。

  • by jayaprakash-optisol
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 jayaprakash-optisol/iot-mcp-server

使用说明

IoT MCP服务器

用于物联网设备通信的MCP(模型上下文协议)服务器,具有UDP消息传递功能。

项目结构

iot-mcp-server/
├── server/                 # MCP Server implementation
│   ├── src/
│   │   ├── index.ts       # Main MCP server
│   │   └── service.ts     # Device communication service
│   ├── dist/              # Compiled JavaScript
│   └── package.json
└── node-udp-simulator/    # UDP server simulator
    ├── udpServer.ts       # UDP echo server
    └── package.json

特性

  • MCP服务器:实现AI助手集成的模型上下文协议
  • 设备通信:通过UDP消息发送设备信息
  • UDP模拟器:用于测试设备通信的Echo服务器
  • TypeScript:具有类型安全的完整TypeScript实现

组件

MCP服务器(/server)

提供物联网设备交互工具的主MCP服务器:

  • 工具: send-device-info -将设备信息发送到IoT服务器
  • 运输:MCP通信的STDIO传输
  • 设备数据:发送带有deviceId、deviceName和deviceType的JSON有效负载

UDP模拟器(/node-udp-simulator)

用于测试设备通信的UDP回声服务器:

  • 端口: 41234
  • 协议:UDP IPv4
  • 函数:将收到的消息回传给发件人

设置

先决条件

  • Node.js
  • pnpm(用于服务器)
  • ts节点

安装

  1. 服务器安装程序:
cd server
pnpm install
  1. UDP模拟器设置:
cd node-udp-simulator
npm install

用法

启动UDP模拟器

cd node-udp-simulator
npm start

运行MCP服务器(开发)

cd server
pnpm dev

构建并运行MCP服务器(生产)

cd server
pnpm build
pnpm start

设备通信

MCP服务器以JSON格式发送设备信息:

{
  "deviceId": "1234567890",
  "deviceName": "Device 1",
  "deviceType": "Device Type 1"
}

MCP集成

该服务器可以与MCP兼容的AI助手集成。服务器提供:

  • 服务器名称:物联网服务器
  • 版本: 1.0.0
  • 可用工具:发送设备信息

光标集成

MCP配置

添加到光标设置(.cursor/mcp.json):

生产:

{
  "mcp.servers": {
    "iot-server": {
      "command": "node",
      "args": ["dist/index.js"],
      "cwd": "/path/to/your/iot-mcp-server/server"
    }
  }
}

发展:

{
  "mcp.servers": {
    "iot-server": {
      "command": "pnpm",
      "args": ["dev"],
      "cwd": "/path/to/your/iot-mcp-server/server"
    }
  }
}

游标中的用法

配置后,在Cursor聊天中使用:

@iot-server send device info

或者简单地说:

can you send device info

安装检查表:

  1. 构建服务器: cd server && pnpm build
  2. 启动UDP模拟器: cd node-udp-simulator && npm start
  3. 更新 cwd 项目位置的路径
  4. 配置后重新启动游标

发展

  • TypeScript配置:两个项目都使用带有正确tsconfig的TypeScript
  • 热重新加载:使用 pnpm dev 使用ts节点进行开发
  • 构建过程:TypeScript编译为 dist/ 目录