MCP MQTT PLC服务器
](https://badge.fury.io/js/mcp-mqtt-plc) 
一种模型上下文协议(MCP)服务器,使AI助手能够通过MQTT通信发现和监控工业PLC。非常适合工业自动化监控、物联网数据分析和SCADA系统集成。
🚀 快速安装
npm install -g mcp-mqtt-plc✨ 特性
- 🔍 主题发现:自动发现所有可用的MQTT主题
- 📊 详细数据检索:获取有关特定主题的全面信息
- 🤖 人工智能集成:原生支持VS Code MCP和Claude Desktop
- ⚡ 自动启动:服务器在需要时自动启动-无后台进程
- 🔧 可配置的:易于基于环境的配置
- 🛡️ 安全:支持经过身份验证的MQTT连接
- 🔒 只读的:无控制命令的安全监控界面
📋 可用工具
search_mqtt_topics-发现并列出所有可用的MQTT主题
- 返回所有主题的概述,包括消息计数和示例数据 - 无需参数 - 首先使用它来了解可用的数据
get_topic_details-获取特定主题的详细信息
- 需要 topicPattern 参数(精确名称或部分匹配) - 返回完整的数据有效载荷和元数据 - 支持模式匹配以实现灵活的主题发现
🛠️ 设置
VS代码(原生MCP)
- 全局安装:
npm install -g mcp-mqtt-plc- 添加到VS代码设置.json:
{ “服务器”:{ “mcp-mqtt plc”:{ “命令”:“mcp-mqtt plc”, “args”:\[\], “env”:{ “MQTT_BROKER_URL”:“您的MQTTURL”, “MQTT_CLIENT_ID”:“vscode mcp客户端”, “MQTT_USERNAME”:“您的用户”, “MQTT_PASSWORD”:“您的密码”, } } } }
### For Claude Desktop
1. **Install globally:**npm install -g mcp-mqtt-plc
2. **配置Claude桌面** (`%APPDATA%\Claude\claude_desktop_config.json`):
{
“mcpServers”:{
“mcp-mqtt plc”:{
“命令”:“mcp-mqtt plc”,
“args”:\[\],
“env”:{
“MQTT_BROKER_URL”:“您的URL”,
“MQTT_CLIENT_ID”:“vscode mcp客户端”,
“MQTT_USERNAME”:“您的用户”,
“MQTT_PASSWORD”:“您的密码”
}
}
}
}
⚙️ Configuration
Configure via environment variables:
| Variable | Default | Description |
|---|---|---|
MQTT_BROKER_URL | mqtt://localhost:1883 | MQTT broker connection URL |
MQTT_CLIENT_ID | mcp-plc-server | MQTT client identifier |
MQTT_USERNAME | - | MQTT username (optional) |
MQTT_PASSWORD | - | MQTT password (optional) |
MQTT_PLC_DATA_TOPIC | plc/data | Default PLC data topic |
MQTT_PLC_COMMANDS_TOPIC | plc/commands | Default PLC command topic |
🎯 Usage Examples
Discovery Workflow
用户:“有哪些行业数据?”
→ AI调用search_mqtt_topics()
→ 显示:“工厂/温度”、“plc/电机”、“传感器/压力”
用户:“现在的温度是多少?”\
→ AI调用get_topic_details(“温度”)
→ 返回:{“温度”:72.5,“单位”:“°F”,“时间戳”:“…”}
Pattern Matching
get_topic_details(“电动机”)#查找包含“电动机”的主题
get_topic_details(“plc/data”)#精确的主题匹配
get_topic_details(“temp”)#查找与温度相关的主题
🧪 Development & Testing
NPM Scripts
npm run build- Build TypeScript to JavaScriptnpm run start- Start the MCP servernpm run dev- Build and start in one commandnpm run watch- Build in watch modenpm run test-mqtt- Test MQTT connectionnpm run mock-plc- Start mock PLC for testing
Local Development
- Clone the repository
- Install dependencies:
npm install - Create
.envfile with your MQTT configuration - Build:
npm run build - Test:
npm run test-mqtt
Testing with Mock PLC
# Terminal 1: Start mock PLC
npm run mock-plc
# Terminal 2: Test the server
npm run test-mqtt🏭 工业应用案例
- 工厂监控:实时生产数据分析
- SCADA集成:将人工智能助手连接到现有的SCADA系统
- 预测性维护:传感器数据趋势的人工智能分析
- 质量控制:生产参数的自动监测
- 能源管理:智能分析功耗数据
- 安全监测:实时警报分析和响应
🛡️ 安全与安保
- 只读接口:无控制命令-仅监控
- 安全连接:支持经过身份验证的MQTT代理
- 无数据存储:无数据持久性的实时监控
- 独立执行:在受控MCP环境中运行
🤝 贡献
- 分叉存储库
- 创建要素分支:
git checkout -b feature-name - 进行更改并添加测试
- 构建和测试:
npm run build && npm run test-mqtt - 承诺:
git commit -am 'Add feature' - 推:
git push origin feature-name - 创建拉取请求
📄 许可证
MIT许可证-请参阅 许可证 文件以获取详细信息。
______________________________________________________________________
非常适合使用AI助手安全、智能地监控工业MQTT数据! 🏭🤖
