返回市场
预测性维护MCP

预测性维护MCP

作者:LGDiMaggio2 星标更新:2025-11-20

项目介绍

🏭 预测性维护MCP服务器

Python 3.11+ DOI Tests codecov FastMCP License: MIT LinkedIn

一个模型上下文协议服务器,将工业机械诊断直接带到像Claude这样的大型语言模型中,通过自然对话实现AI驱动的振动分析、轴承故障检测和预测性维护工作流程。

🔧 从振动数据和机器手册到可操作见解:将原始传感器数据转换为带有ISO合规检查、FFT分析、包络分析和ML异常检测的报告。由LLMs支持的PdM工作流。

预测性维护MCP服务器封面

📑 目录

✨ 特别的地方

  • 🎯 真实轴承故障数据包含 - 21个生产质量的振动信号来自真实机器测试(3个健康,18个故障)

  • 📊 专业HTML报告 - 带有自动峰值检测和频率标记的交互式Plotly可视化

  • 🤖 ML异常检测 - 在健康基线上训练无监督/半监督模型(OneClassSVM/LOF),可选超参数调整

  • 📏 ISO 20816-3合规性 - 内置行业标准振动严重性评估 ISO合规性

  • 🔍 高级诊断 - FFT频谱分析,轴承故障的包络分析,时域特征提取

    <details> <summary><b>示例分析</b></summary>

    包络分析1 包络分析2 包络分析3

    </details>
  • 🚀 零配置 - 使用样本数据开箱即用,自动检测元数据中的采样率

🔬 概念验证与社区邀请

这是一个概念验证(PoC) - 展示了如何通过模型上下文协议使LLMs具备工业诊断能力的可行性演示。

实现的PoC目标 ✅

  • 真实的振动数据集成 - 21个轴承故障信号及其元数据(训练集:14,测试集:7)
  • 专业分析工作流 - FFT频谱,包络分析,ISO 20816-3合规性
  • ML异常检测 - 半监督学习,可选超参数调整
  • 基于元数据的自动检测 - 从JSON文件中获取采样率和信号单位
  • 交互式HTML报告 - 带有自动峰值检测的Plotly可视化
  • 自然语言界面 - 通过对话式AI进行复杂诊断

🤝 我们邀请社区参与贡献!

这个PoC展示了潜力。现在我们需要您的专业知识来使其达到生产就绪状态。

您能帮助的方式:

  • 📊 添加更多数据 - 来自不同机器/传感器/行业的实际振动数据集
  • 🔧 扩展诊断功能 - 齿轮故障检测,泵空化,电机电气故障,不对中
  • 🤖 改进ML - 深度学习方法,高级异常模型,实时流分析
  • 🌍 国际化 - 多语言支持,区域标准工作流(VDI,GB)
  • 📖 文档 - 教程,案例研究,工业验证,最佳实践
  • 🐛 测试 - 边缘情况,与真实数据的验证,交叉验证研究

参与方式:

为什么这很重要:

预测性维护对工业4.0至关重要。复杂的诊断和维护工作流程可以通过提供适当的上下文和工具与LLMs集成,以增强人类工程工作。通过模型上下文协议(MCP),我们连接了LLM推理能力和专用诊断工具,实现了专家级机械设备诊断的普及化,并使工业AI更易于全球工程师使用。

🎬 快速示例

示例1:轴承故障检测

生成real_train/OuterRaceFault_1.csv的包络报告

结果:AI自动:

  1. 从元数据中检测采样率(97,656 Hz)
  2. 应用带通滤波器(500-5000 Hz)
  3. 生成带有轴承故障频率标记的交互式HTML报告
  4. 在~81 Hz处识别外圈故障及其谐波
  5. 将报告保存至reports/envelope_OuterRaceFault_1_*.html

示例2:ISO 20816-3振动评估

评估real_train/OuterRaceFault_1.csv是否符合ISO 20816-3标准

结果

  • RMS速度:4.5 mm/s → 区域B(长期运行可接受)
  • 带有区域可视化的交互式HTML报告
  • 合规性评估和建议

示例3:机器手册集成+诊断

1. 从test_pump_manual.pdf中提取规格
2. 计算1475 RPM下SKF 6205-2RS轴承的频率
3. 使用计算出的频率诊断signal_from_pump.csv中的轴承故障

结果:完全零知识诊断:

  • 提取:驱动端轴承SKF 6205-2RS,运行速度1475 RPM
  • 计算:BPFO=85.20 Hz,BPFI=136.05 Hz,BSF=101.32 Hz
  • 诊断:检测到外圈故障及其3个谐波

📚 更多示例:参见下方的使用示例部分或EXAMPLES.md以了解完整的工作流程

可用工具及资源

MCP资源(直接数据访问)

资源提供直接读取访问供Claude检查数据:

<details> <summary><b>📊 振动信号</b></summary>
  • signal://list - 浏览所有可用信号文件及其元数据
  • signal://read/{filename} - 直接读取信号数据(前1000个样本预览)

使用:Claude可以直接读取信号,无需先调用工具。

</details> <details> <summary><b>📖 机器手册</b></summary>
  • manual://list - 浏览可用设备手册(PDF/TXT)
  • manual://read/{filename} - 读取手册文本(前20页)

使用:Claude可以回答关于手册内容的任何问题,只需直接阅读即可。

</details>

MCP工具(分析及处理)

工具执行计算并生成输出

<details> <summary><b>📊 分析及诊断</b></summary>
  • analyze_fft - 自动峰值检测的FFT频谱分析
  • analyze_envelope - 轴承故障检测的包络分析
  • analyze_statistics - 时域统计指标(RMS,峭度因子,峰度等)
  • evaluate_iso_20816 - ISO 20816-3振动严重性评估
  • diagnose_bearing - 引导式的6步轴承诊断工作流
  • diagnose_gear - 基于证据的齿轮故障诊断工作流
</details> <details> <summary><b>🤖 机器学习</b></summary>
  • extract_features_from_signal - 从振动数据中提取17+统计特征
  • train_anomaly_model - 仅在健康数据上训练新颖性检测模型(OneClassSVM/LOF),可选半监督超参数调整
  • predict_anomalies - 在新信号中检测异常并给出置信分数
</details> <details> <summary><b>📄 专业报告生成</b></summary>
  • generate_fft_report - 带有峰值表的交互式FFT频谱HTML报告
  • generate_envelope_report - 带有轴承故障标记的包络分析报告
  • generate_iso_report - 带有区域可视化的ISO 20816-3评估
  • list_html_reports - 列出所有生成的报告及其元数据
  • get_report_info - 获取报告详细信息而不加载整个HTML

💡 所有报告都是交互式Plotly可视化,并保存在reports/目录中

</details> <details> <summary><b>📖 机器文档阅读器</b></summary>
  • list_machine_manuals - 列出可用设备手册(PDF/TXT)
  • extract_manual_specs - 从手册中提取轴承、RPM、功率(带缓存)
  • calculate_bearing_characteristic_frequencies - 根据几何形状计算BPFO/BPFI/BSF/FTF
  • read_manual_excerpt - 读取手册文本摘录(可配置页面限制)
  • search_bearing_catalog - 在本地目录中搜索轴承几何形状(20+常见轴承)

MCP资源:

  • manual://list - 浏览可用的手册
  • manual://read/{filename} - 为LLM上下文读取手册

🎯 上传泵手册 → 提取轴承规格 → 自动计算频率 → 诊断信号

</details> <details> <summary><b>🔍 数据管理</b></summary>
  • list_signals - 浏览所有可用信号文件及其元数据
  • generate_test_signal - 创建用于测试的合成信号
</details>

架构

该系统遵循结合资源(直接数据访问)和工具(计算处理)的混合MCP架构

MCP服务器架构

<details> <summary><b>详细结构</b></summary>
┌─────────────────────────────────────────────────────────────┐
│                    CLAUDE / LLM客户端                      │
└────────────────────┬────────────────────────────────────────┘
                     │
                     ▼
┌─────────────────────────────────────────────────────────────┐
│                   MCP服务器(FastMCP)                      │
│  ┌──────────────────────────────────────────────────────┐  │
│  │  资源(直接数据访问)                                │  │
│  │  ┌────────────────────────────────────────────────┐  │  │
│  │  │  振动信号                                     │  │  │
│  │  │  • signal://list                             │  │  │
│  │  │  • signal://read/{filename}                │  │  │
│  │  └────────────────────────────────────────────────┘  │  │
│  │  ┌────────────────────────────────────────────────┐  │  │
│  │  │  机器手册                                     │  │  │
│  │  │  • manual://list                             │  │  │
│  │  │  • manual://read/{filename}                │  │  │
│  │  └────────────────────────────────────────────────┘  │  │
│  └──────────────────────────────────────────────────────┘  │
│  ┌──────────────────────────────────────────────────────┐  │
│  │  工具(分析及处理)                                 │  │
│  │  • FFT,包络,ISO 20816-3                           │  │
│  │  • ML异常检测                                      │  │
│  │  • 报告生成(HTML)                                │  │
│  │  • 手册规格提取                                    │  │
│  │  • 轴承频率计算                                    │  │
│  │  • 轴承目录搜索                                    │  │
│  └──────────────────────────────────────────────────────┘  │
└────────────────────┬────────────────────────────────────────┘
                     │
        ┌────────────┴────────────┐
        ▼                         ▼
┌──────────────────┐   ┌──────────────────────────────────┐
│  信号分析模块    │   │  文档阅读模块                    │
│  • FFT引擎       │   │  ┌────────────┐  ┌────────────┐  │
│  • 包络          │   │  │ PDF提取    │  │ ISO公式    │  │
│  • 滤波器        │   │  │ (PyPDF2)   │  │ BPFO/BPFI  │  │
│  • 统计          │   │  └────────────┘  └────────────┘  │
│  • ML模型        │   │  ┌─────────────────────────────┐  │
│  • Plotly图表    │   │  │  轴承目录数据库             │  │
│                  │   │  │  • 20+ ISO轴承              │  │
└────────┬─────────┘   └────────┬─────────────────────────┘
         │                      │
         ▼                      ▼
┌─────────────────────────────────────────────────────────────┐
│                   本地文件系统                             │
│  ┌──────────────────────┐   ┌──────────────────────────┐   │
│  │  data/signals/       │   │  resources/              │   │
│  │  ├── real_train/     │   │  ├── machine_manuals/    │   │
│  │  ├── real_test/      │   │  ├── bearing_catalogs/   │   │
│  │  └── samples/        │   │  ├── datasheets/         │   │
│  └──────────────────────┘   │  └── cache/ (自动)       │   │
│  ┌──────────────────────┐   └──────────────────────────┘   │
│  │  reports/            │   ┌──────────────────────────┐   │
│  │  • FFT报告           │   │  models/                 │   │
│  │  • 包络报告          │   │  • 训练的ML模型         │   │
│  │  • ISO报告           │   │  • 缩放器,PCA          │   │
│  └──────────────────────┘   └──────────────────────────┘   │
└─────────────────────────────────────────────────────────────┘
</details>

关键特性:

  • 4个MCP资源 - 直接读取信号和手册
  • 25+个MCP工具 - 完整的诊断工作流
  • 混合架构 - 资源用于读取,工具用于处理
  • 本地优先 - 所有数据都保留在您的机器上(保护隐私)

安装

快速开始(Python包)

# 1. 克隆仓库
git clone https://github.com/LGDiMaggio/predictive-maintenance-mcp.git
cd predictive-maintenance-mcp

# 2. 运行自动化设置
python setup_venv.py

# 3. 激活环境
.venv\Scripts\activate  # Windows
source .venv/bin/activate  # Linux/macOS