返回市场
物联网边缘MCP服务器

物联网边缘MCP服务器

作者:poly-mcp3 星标更新:2025-11-17

项目介绍

MseeP.ai 安全评估徽章

工业物联网边缘计算MCP服务器

工业物联网、边缘计算和自动化中的模型上下文协议(MCP)服务器

该服务器将工业基础设施转变为一个可由AI编排的系统,通过HTTP端点提供11种强大的工具,实现对IoT/SCADA/PLC的完全控制。非常适合AI驱动的工业自动化、预测性维护和智能工厂操作。

✨ 特性

  • 🏭 多协议支持 - 工业系统的统一接口:

    • MQTT用于无线IoT传感器和执行器
    • Modbus TCP/RTU用于PLC和工业设备
    • 与InfluxDB集成的时间序列数据
    • 使用Redis进行实时缓存
    • 测试时无需硬件的模拟模式
  • 📊 完整的传感器管理 - 监控和分析工业数据:

    • 实时传感器读数(温度、压力、流量等)
    • 历史数据聚合(平均值、最大值、最小值)
    • 多传感器批量操作
    • 质量指标和信号监控
  • ⚡ 执行器控制 - 操作工业设备:

    • 阀门控制(开/关)
    • 电机管理(启动/停止/速度)
    • 泵操作
    • PLC寄存器操作
  • 🚨 报警系统 - 企业级监控:

    • 多优先级报警(低、中、高、关键)
    • 自动阈值监控
    • 报警确认跟踪
    • 实时通知
  • 🔒 生产特性 - 企业就绪:

    • 命令安全速率限制
    • 全面错误处理
    • 连接池和自动重连
    • 完整审计日志
    • 线程安全操作

🚀 快速开始

安装

# 克隆仓库
git clone https://github.com/llm-use/iot-mcp-server.git
cd iot-mcp-server

# 安装依赖
pip install -r requirements.txt

# 无需硬件测试时使用模拟模式
pip install -r requirements-sim.txt

启动服务器

选项1:模拟模式(无需硬件)

python IoT_mcp_sim.py

选项2:生产模式(真实硬件)

# 在iot_config.yaml中配置您的设备
# 启动所需服务(MQTT、InfluxDB、Redis)
docker-compose up -d

# 启动服务器
python IoT_mcp.py

服务器将在http://localhost:8000上启动。

🤖 与PolyMCP配合使用

此MCP服务器设计为与**PolyMCP**无缝协作——这是一个强大的框架,用于使用AI代理编排MCP服务器。

示例:AI控制的工业系统

#!/usr/bin/env python3
import asyncio
from polymcp.polyagent import UnifiedPolyAgent, OllamaProvider

async def main():
    # 初始化您的LLM提供商
    llm = OllamaProvider(model="gpt-oss:120b-cloud", temperature=0.1)
    
    # 连接到IoT MCP服务器
    agent = UnifiedPolyAgent(
        llm_provider=llm, 
        mcp_servers=["http://localhost:8000/mcp"],  
        verbose=True
    )
    
    async with agent:
        print("✅ 已连接到IoT MCP服务器!\n")
        
        # 与您的AI聊天以控制工业系统
        while True:
            user_input = input("\n🏭 您:")
            
            if user_input.lower() in ['exit', 'quit']:
                break
            
            result = await agent.run_async(user_input, max_steps=5)
            print(f"\n🤖 系统:{result}")

if __name__ == "__main__":
    asyncio.run(main())

示例命令

一旦连接,您可以要求AI代理:

  • "检查所有温度传感器的状态并报告任何异常"
  • "过去6小时内罐1的平均压力是多少?"
  • "打开主阀门并启动泵1"
  • "显示所有未确认的关键报警"
  • "如果温度超过50°C,激活冷却系统"
  • "生成包含关键指标的班次结束报告"
  • "监控振动传感器并在超出正常范围时发出警报"
  • "通过分析电机使用模式来优化能源消耗"

就是这样! PolyMCP处理所有复杂性:

  • 工具发现和选择
  • 多步骤工业过程自动化
  • 实时监控和警报
  • 复杂决策逻辑实现

📡 API端点

一旦服务器运行,您可以访问:

  • API文档http://localhost:8000/docs
  • 列出所有工具http://localhost:8000/mcp/list_tools
  • 调用工具POST http://localhost:8000/mcp/invoke/{tool_name}

🛠️ 可用工具

<details> <summary>查看所有可用工具(11个工具)</summary>

传感器操作

  • read_sensor - 从单个传感器读取当前值
  • read_multiple_sensors - 批量读取多个传感器
  • get_sensor_history - 获取历史数据,可选聚合

执行器控制

  • execute_actuator_command - 向执行器发送命令(阀门、电机、泵)

系统管理

  • get_device_topology - 查看完整的系统架构
  • list_devices - 列出所有已注册的设备及其状态
  • get_system_status - 整体系统健康状况和统计信息

报警管理

  • get_active_alarms - 按优先级查看活跃报警
  • acknowledge_alarm - 确认报警确认

PLC操作

  • read_modbus_registers - 通过Modbus读取PLC寄存器
  • write_modbus_register - 将值写入PLC寄存器
</details>

🔧 配置

基本配置(iot_config.yaml

mqtt:
  broker: "localhost"
  port: 1883
  username: "iot_user"
  password: "secure_password"

modbus:
  devices:
    - device_id: "plc_01"
      name: "主PLC"
      type: "tcp"
      host: "192.168.1.100"
      port: 502

influxdb:
  url: "http://localhost:8086"
  token: "your-token"
  org: "iot"
  bucket: "sensors"

redis:
  host: "localhost"
  port: 6379

环境变量

export MQTT_BROKER="broker.hivemq.com"
export INFLUX_TOKEN="your-token"
export REDIS_HOST="localhost"

📋 要求

对于生产模式:

  • Python 3.8+
  • MQTT代理(Mosquitto、EMQX、HiveMQ或任何MQTT 3.1.1/5.0代理)
  • InfluxDB 2.0+(用于时间序列数据)
  • Redis(用于缓存)
  • 工业设备(具有Modbus的PLC、IoT传感器)

对于模拟模式:

  • Python 3.8+
  • 无外部依赖!

🐛 故障排除

无法连接到MQTT?

  • 检查代理是否正在运行:mosquitto_sub -h localhost -t '#'
  • 核实配置中的凭据
  • 检查防火墙设置

Modbus连接失败?

  • 确保PLC可访问:ping <plc_ip>
  • 核实设备上的Modbus是否启用
  • 检查端口(通常TCP为502)

没有传感器数据?

  • 检查MQTT主题是否匹配配置
  • 核实传感器是否发布数据
  • 查看Redis缓存:redis-cli get sensor:*

🏗️ 架构

┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│ IoT 传感器  │────▶│  MQTT       │────▶│             │
└─────────────┘     │  代理       │     │             │
                    └─────────────┘     │   IoT MCP   │     ┌─────────────┐
┌─────────────┐     ┌─────────────┐     │   服务器    │────▶│  PolyMCP    │
│    PLCs     │────▶│  Modbus     │────▶│             │     │  AI 代理    │
└─────────────┘     └─────────────┘     │             │     └─────────────┘
                                        │             │
┌─────────────┐                         │             │     ┌─────────────┐
│  InfluxDB   │◀────────────────────────│             │────▶│   Redis     │
└─────────────┘                         └─────────────┘     └─────────────┘

🤝 贡献

欢迎贡献!该项目展示了工业物联网与MCP协议的集成。

开发环境设置

# 克隆仓库
git clone https://github.com/llm-use/iot-mcp-server.git

# 创建虚拟环境
python -m venv venv
source venv/bin/activate  # 或在Windows上使用 venv\Scripts\activate

# 安装开发依赖
pip install -r requirements-dev.txt

# 运行测试
pytest tests/

📝 许可证

MIT许可证 - 详情见LICENSE文件

🔗 相关项目

  • PolyMCP - 使用自定义代理与MCP服务器交互的简单高效方法
  • 模型上下文协议 - 与LLMs集成工具的开放协议
  • MQTT协议 - 轻量级消息协议,适用于IoT
  • Modbus协议 - 工业通信协议
  • Mqttcpp - 用于构建MQTT客户端和代理的轻量级快速C++库

💡 为什么这个项目?

这个MCP服务器弥合了工业物联网AI代理之间的差距。借助PolyMCP,您可以:

  1. 自然语言控制 - "检查所有压力传感器并在任何异常时发出警报"
  2. 复杂自动化 - AI可以编排多步骤工业过程
  3. 预测性维护 - AI分析趋势并预测故障
  4. 能源优化 - AI优化设备使用以提高效率
  5. 事件响应 - AI处理报警并执行紧急程序

无需学习复杂的工业协议——PolyMCP和AI处理一切!

🚀 使用案例

  • 智能工厂 - AI驱动的生产线优化
  • 楼宇自动化 - 智能HVAC和照明控制
  • 能源管理 - 实时消费优化
  • 预测性维护 - 设备故障预测
  • 质量控制 - 自动异常检测
  • 应急响应 - AI管理的事件处理

专为 PolyMCP 设计

如果您觉得有用,请给这个仓库点赞⭐!