工业物联网、边缘计算和自动化中的模型上下文协议(MCP)服务器
此服务器将工业基础设施转变为可通过AI编排的系统,通过HTTP端点暴露11个强大的工具,实现完整的IoT/SCADA/PLC控制。非常适合AI驱动的工业自动化、预测性维护和智能工厂操作。
🏭 多协议支持 - 工业系统的统一接口:
📊 完整传感器管理 - 监控和分析工业数据:
⚡ 执行器控制 - 操作工业设备:
🚨 报警系统 - 企业级监控:
🔒 生产特性 - 企业就绪:
# 克隆仓库
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 上运行
此MCP服务器设计为与 PolyMCP 无缝协作——一个强大的框架,用于使用AI代理编排MCP服务器。
#!/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 Server已连接!\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代理执行以下操作:
就是这样! PolyMCP处理所有复杂性:
一旦服务器运行,您可以访问:
http://localhost:8000/docshttp://localhost:8000/mcp/list_toolsPOST http://localhost:8000/mcp/invoke/{tool_name}read_sensor - 从单个传感器读取当前值read_multiple_sensors - 批量读取多个传感器get_sensor_history - 获取历史数据,可选聚合execute_actuator_command - 向执行器发送命令(阀门、电机、泵)get_device_topology - 查看完整的系统架构list_devices - 列出所有注册设备及其状态get_system_status - 整体系统健康状况和统计数据get_active_alarms - 按优先级查看活动报警acknowledge_alarm - 确认报警确认read_modbus_registers - 通过Modbus读取PLC寄存器write_modbus_register - 写入PLC寄存器的值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"
对于生产模式:
对于模拟模式:
无法连接到MQTT?
mosquitto_sub -h localhost -t '#'Modbus连接失败?
ping <plc_ip>没有传感器数据?
redis-cli get sensor:*┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ IoT 传感器 │────▶│ MQTT │────▶│ │
└─────────────┘ │ Broker │ │ │
└─────────────┘ │ IoT MCP │ ┌─────────────┐
┌─────────────┐ ┌─────────────┐ │ Server │────▶│ PolyMCP │
│ PLCs │────▶│ Modbus │────▶│ │ │ AI Agent │
└─────────────┘ └─────────────┘ │ │ └─────────────┘
│ │
┌─────────────┐ │ │ ┌─────────────┐
│ 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文件
此MCP服务器弥合了工业物联网和AI代理之间的差距。借助PolyMCP,您可以:
无需学习复杂的工业协议——PolyMCP和AI处理一切!
专为 PolyMCP 设计
如果您觉得有用,请给这个仓库点赞⭐!