Integrate Industrial Diagnostics with LLMs
MCP server turning LLMs into vibration-analysis assistants for bearing fault detection, anomaly detection, and RUL estimation.
Why it matters
Empower LLMs with industrial equipment diagnostics for predictive maintenance. Analyze vibration data, detect bearing faults, and assess severity using natural language conversations.
Outcomes
What it gets done
Perform FFT spectral analysis and envelope analysis for bearing fault detection.
Assess vibration severity against ISO 20816-3 standards.
Train and deploy anomaly detection models for equipment health monitoring.
Generate interactive HTML reports for diagnostic insights.
Install
Add it to your toolbox
Run in your project directory:
curl -fsSL https://spark.entire.vc/get/vb-predictive-maintenance-mcp | bash Capabilities
Tools your agent gets
FFT spectral analysis with automatic peak detection
Envelope analysis for bearing fault detection
Time-domain statistical metrics (RMS, crest factor, kurtosis, etc.)
Vibration severity assessment per ISO 20816-3
Guided 6-step bearing diagnostic workflow
Data-driven gear fault diagnosis workflow
Extract 17+ statistical features from vibration data
Train novelty detection models (OneClassSVM/LOF) on healthy data
Overview
predictive-maintenance-mcp MCP Server
An open-source MCP server turning LLMs into vibration-analysis condition-monitoring assistants: bearing/gear fault detection, ISO severity assessment, anomaly detection, remaining-useful-life estimation, and diagnostic report generation, via 52 local MCP endpoints. Use when an engineer needs plain-language vibration diagnostics or diagnostic reports without writing analysis code; not a replacement for expert judgment.
What it does
Predictive Maintenance MCP Server is an open-source MCP server and predictive-maintenance AI agent that turns LLMs into condition-monitoring assistants for vibration analysis. Engineers describe what they need in plain language, and the AI calls the right analysis tools - bearing fault detection, risk assessment, anomaly detection, and remaining useful life estimation - delivering results through 52 specialized MCP endpoints (46 tools, 2 resources, 4 prompts) running entirely locally, so data never leaves the user's infrastructure.
When to use - and when NOT to
Use this when a reliability or maintenance engineer needs fast vibration diagnostics in plain language - "is this bearing healthy?", "generate a full diagnostic report", extracting bearing specs from an equipment manual PDF, or training an anomaly detector on healthy baselines - without writing analysis code themselves.
Not needed as a replacement for expert judgment, since it's designed to augment and accelerate decision-making rather than replace it, or for domains outside vibration-based condition monitoring.
Capabilities
Organized into six areas. Signal Acquisition (7 tools + 2 resources): load_signal (CSV/WAV/MAT/NPY/Parquet), list_signals, get_signal_info, generate_test_signal, and cache management. Spectral & Statistical Analysis (10 tools): analyze_fft, analyze_envelope for bearing fault detection, analyze_statistics (RMS, kurtosis, crest factor), power spectral density, spectrogram, feature extraction, and plotting tools. Diagnostics & Health Assessment (14 tools): calculate_bearing_characteristic_frequencies, check_bearing_faults_direct for multi-fault (inner/outer/ball/cage) detection, diagnose_vibration_tool, search_bearing_catalog, evaluate_iso_20816 with 4 severity zones, train_anomaly_model/predict_anomalies, and manual/documentation search. Reporting (9 tools): interactive HTML reports for FFT, envelope, and ISO severity, a structured Word diagnostic report, PCA anomaly visualization, and feature-comparison reports. Prognostics (3 tools): estimate_rul for Remaining Useful Life via linear, exponential, Weibull, or Kalman models, trend detection, and degradation-onset detection. Decision Support (3 tools): ISO 10816 vibration alert classification across zones A/B/C/D, custom threshold alerting, and context-aware maintenance recommendations. Four guided-workflow prompts - diagnose_bearing, diagnose_gear, quick_diagnostic_report, generate_iso_diagnostic_report - chain these into decision trees.
How to install
On Windows, a single script wires everything into Claude Desktop:
git clone https://github.com/LGDiMaggio/predictive-maintenance-mcp.git
cd predictive-maintenance-mcp
.\setup_claude.ps1
On macOS/Linux or other MCP clients, install with pip install predictive-maintenance-mcp, then point your client config at the full path to uvx - using the full path avoids a silent "command not found" failure, since Claude Desktop launches servers with a minimal PATH. Also ships as a Claude Code plugin (/plugin marketplace add LGDiMaggio/predictive-maintenance-mcp, then /plugin install predictive-maintenance@predictive-maintenance-marketplace) adding 7 auto-activating skills - bearing-diagnosis, gear-diagnosis, quick-screening, report-generation, anomaly-detection, signal-management, documentation-search - 2 autonomous agents (diagnostic-pipeline, signal-explorer), and 3 slash commands (/pm-diagnose, /pm-screen, /pm-report). Requires Python 3.11+. The project is MIT-licensed.
Who it's for
Reliability and maintenance engineers who want fast, code-free vibration diagnostics; developers and industrial-AI practitioners building on predictive-maintenance MCP tools; and researchers and students working on bearing fault diagnosis or condition monitoring.
Source README
Predictive Maintenance MCP Server
Give any AI assistant the ability to analyze vibration data, detect machinery faults, and generate professional diagnostic reports - through natural conversation.
An open-source MCP server and predictive maintenance AI agent that turns LLMs into condition monitoring assistants. Engineers describe what they need in plain language; the AI calls the right analysis tools and delivers results - bearing fault detection, risk assessment, anomaly detection, and remaining useful life estimation. Also available as a Claude Code plugin with 7 diagnostic skills. It's designed to support and accelerate expert decision-making.
Who is this for?
- Reliability & maintenance engineers who want fast vibration diagnostics in plain language - no coding required. It augments and accelerates expert judgment; it doesn't replace it.
- Developers & industrial-AI practitioners who want to expose predictive-maintenance workflows as MCP tools and build on top of them.
- Researchers & students working on bearing fault diagnosis, condition monitoring, or MCP / agent tooling.
Quick Start
Get running in ~3 minutes. On Windows, one script wires everything into Claude Desktop - it installs the venv, pre-compiles dependencies, and writes claude_desktop_config.json for you (OneDrive / cloud-sync paths included):
git clone https://github.com/LGDiMaggio/predictive-maintenance-mcp.git
cd predictive-maintenance-mcp
.\setup_claude.ps1
Restart Claude Desktop, then try:
"Load real_train/OuterRaceFault_1.csv and check if the bearing is healthy."
Manual config (macOS / Linux / other MCP clients)
Install the package:
pip install predictive-maintenance-mcp
Find the full path to uvx (which uvx on macOS/Linux, where uvx on Windows), then add to your client config - ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"predictive-maintenance": {
"command": "/full/path/to/uvx",
"args": ["predictive-maintenance-mcp"],
"env": { "UV_LINK_MODE": "copy" }
}
}
}
Why the full path? Claude Desktop launches servers with a minimal
PATHthat often omits user-local tool directories (e.g.~/.local/bin). Using the full path touvxavoids a silent "command not found" failure. On Windows the typical path isC:\Users\<you>\.local\bin\uvx.exe.
More options: install from source · VS Code setup · Docker / HTTPS deployment · use with local LLMs (Ollama)
See It in Action
Full diagnostic workflow: load signal → spectral analysis → fault detection → severity assessment → report generation
What Can It Do?
Upload a vibration signal → get a professional diagnosis through conversation.
| You say | The AI does |
|---|---|
| "Is this bearing healthy?" | Loads the signal, runs spectral analysis, checks for fault patterns, classifies severity |
| "Generate a full diagnostic report" | Produces an interactive HTML report with charts, fault markers, and severity assessment |
| "Extract specs from test_pump_manual.pdf and diagnose the signal" | Reads the equipment manual, looks up the bearing model, calculates expected fault frequencies, matches them against the signal |
| "Train an anomaly detector on my healthy baselines, then flag anomalies" | Trains a machine learning model on normal data, scores new signals, highlights outliers |
The AI doesn't guess - it calls 52 specialized MCP endpoints (46 tools, 2 resources, 4 prompts) running locally on your machine. Your data never leaves your infrastructure.
See the full endpoint list (52 MCP endpoints: 43 tools, 1 resource, 4 prompts)
Signal Acquisition (7 tools + 2 resources)
| Endpoint | Type | Description |
|---|---|---|
load_signal |
Tool | Load vibration file (CSV, WAV, MAT, NPY, Parquet) |
list_signals |
Tool | Browse available signal files with metadata |
list_stored_signals |
Tool | List cached signals in memory |
get_signal_info |
Tool | Signal metadata (sampling rate, duration, stats) |
generate_test_signal |
Tool | Create synthetic signals for testing |
clear_signal / clear_all_signals |
Tool | Cache management |
signal://list |
Resource | Browse all signal files |
signal://read/{filename} |
Resource | Read signal metadata |
Spectral & Statistical Analysis (10 tools)
| Tool | Description |
|---|---|
analyze_fft |
Frequency spectrum with automatic peak detection |
analyze_envelope |
Envelope analysis for bearing fault detection |
analyze_statistics |
Time-domain features (RMS, kurtosis, crest factor) |
compute_power_spectral_density |
Power spectral density (Welch method) |
compute_spectrogram_stft |
Time-frequency spectrogram |
extract_features_from_signal |
17+ statistical and spectral features |
compute_envelope_spectrum_tool |
Envelope spectrum computation |
plot_signal / plot_spectrum / plot_envelope |
Visualization tools (3 tools) |
Diagnostics & Health Assessment (14 tools)
| Tool | Description |
|---|---|
calculate_bearing_characteristic_frequencies |
Compute expected fault frequencies from bearing geometry |
check_bearing_fault_peak_tool |
Detect peaks at fault frequencies |
check_bearing_faults_direct |
Multi-fault detection (inner/outer/ball/cage) |
diagnose_vibration_tool |
Integrated evidence-based diagnosis pipeline |
search_bearing_catalog |
Look up bearing specs by model number |
lookup_bearing_and_compute_tool |
Catalog lookup + frequency calculation |
evaluate_iso_20816 |
Vibration severity assessment (4 severity zones) |
assess_vibration_severity |
Health classification |
train_anomaly_model |
Train novelty detection on healthy baselines |
predict_anomalies |
Score new signals for anomalies |
search_documentation |
Semantic search over equipment manuals |
read_manual_excerpt / extract_manual_specs |
Extract specs from PDFs (2 tools) |
list_machine_manuals |
Browse available documentation |
Reporting (9 tools)
| Tool | Description |
|---|---|
generate_fft_report |
Interactive frequency analysis report |
generate_envelope_report |
Envelope analysis with fault markers |
generate_iso_report |
Severity zone visualization |
generate_diagnostic_report_docx |
Structured Word document report |
generate_pca_visualization_report |
2D/3D anomaly projection |
generate_feature_comparison_report |
Cross-signal feature comparison |
plot_iso_20816_chart |
ISO 20816 severity zone chart |
list_html_reports / get_report_info |
Report management (2 tools) |
Prognostics (3 tools)
| Tool | Description |
|---|---|
estimate_rul |
Remaining Useful Life estimation (linear, exponential, Weibull, Kalman) |
analyze_signal_trend |
Trend detection on feature time series (increasing/decreasing/stable) |
detect_signal_degradation_onset |
Baseline deviation detection for early degradation warning |
Decision Support (3 tools)
| Tool | Description |
|---|---|
check_vibration_alert |
ISO 10816 vibration severity alert classification (zones A/B/C/D) |
check_custom_vibration_alert |
Custom threshold-based vibration alerting |
generate_maintenance_recommendations |
Context-aware maintenance recommendations from diagnosis |
Guided Workflows (4 prompts + 2 resources)
| Prompt | Description |
|---|---|
diagnose_bearing |
Complete bearing fault diagnostic decision tree |
diagnose_gear |
Gear fault detection workflow |
quick_diagnostic_report |
Fast health screening |
generate_iso_diagnostic_report |
ISO-compliant diagnostic report generation |
Claude Code Plugin
The project includes a plugin for Claude Code with domain-specific skills that activate automatically during conversation. Install it and Claude gains guided diagnostic workflows, autonomous agents, and quick commands.
/plugin marketplace add LGDiMaggio/predictive-maintenance-mcp
/plugin install predictive-maintenance@predictive-maintenance-marketplace
Claude Code plugin: domain skills activate automatically, slash commands for quick diagnostics
Skills (7) - activate automatically based on context
| Skill | What it does |
|---|---|
| bearing-diagnosis | Walks through a complete bearing fault diagnostic workflow |
| gear-diagnosis | Gear fault detection via spectral pattern analysis |
| quick-screening | 30-second vibration health check |
| report-generation | Professional HTML and Word report generation |
| anomaly-detection | Train and run ML-based anomaly detection models |
| signal-management | Load, inspect, and manage vibration signals |
| documentation-search | Search equipment manuals and bearing catalogs |
Agents (2) - run autonomously for complex tasks
| Agent | What it does |
|---|---|
| diagnostic-pipeline | End-to-end: load signal → spectral analysis → fault detection → severity assessment → report |
| signal-explorer | Explore and compare multiple signals, find outliers, characterize patterns |
Commands (3) - quick entry points
| Command | Example |
|---|---|
/pm-diagnose |
/pm-diagnose bearing_signal.csv - full fault diagnosis |
/pm-screen |
/pm-screen bearing_signal.csv - quick health check |
/pm-report |
/pm-report bearing_signal.csv full - generate all reports |
Reports
All analysis tools generate interactive HTML reports you can open in any browser - pan, zoom, hover for details. Also supports structured Word (.docx) exports.
Report examples
| Report Type | What it shows |
|---|---|
| Frequency spectrum | Peak detection, harmonic markers |
| Envelope analysis | Bearing fault frequency matching |
| Severity assessment | Vibration health zones (ISO 20816-3) |
| Word document | Full diagnostic narrative with embedded charts |
| PCA visualization | Multi-signal anomaly clustering |
| Feature comparison | Side-by-side signal feature analysis |
Sample Data Included
The project ships with 20 real bearing vibration signals from production machinery tests - ready to use out of the box.
- Training set: 2 healthy baselines + 12 fault signals (inner race, outer race)
- Test set: 1 healthy baseline + 5 fault signals
Try: "Load real_train/OuterRaceFault_1.csv and diagnose the bearing fault."
Full dataset documentation: data/README.md
Architecture
YOU (natural language)
│
v
LLM (Claude, GPT, Ollama...)
understands intent, selects tools
│
v ── Model Context Protocol ──
┌──────────────────────────────┐
│ Predictive Maintenance │
│ MCP Server │
│ │
│ Signal Analysis Reports │
│ Fault Detection ML │
│ Severity Rating RAG Docs │
└──────────────────────────────┘
│
v
YOUR DATA (stays local)
signals · manuals · models
The codebase follows a modular architecture organized around the ISO 13374 Six-Block Diagnostic standard - signal acquisition, processing, diagnostics, prognostics, and decision support as separate sub-packages.
Detailed module structure
src/predictive_maintenance_mcp/
├── mcp_tools/ # MCP endpoint registration (52 MCP endpoints)
│ ├── acquisition_tools.py # Signal loading & management
│ ├── analysis_tools.py # Spectral & statistical analysis
│ ├── diagnostics_tools.py # Fault detection, ML, document search
│ ├── report_tools.py # HTML/DOCX report generation
│ ├── prompts.py # Guided diagnostic workflows
│ └── _utils.py # Shared utilities
├── signal_acquisition/ # Multi-format loaders (CSV, MAT, WAV, NPY, Parquet)
├── signal_processing/ # Spectral analysis & feature extraction
├── diagnostics/ # Bearing/gear analysis, ISO standards
├── decision_support/ # Evidence-based diagnosis pipeline
├── prognostics/ # RUL estimation (linear, exponential, Weibull) & trend analysis
├── rag.py # Document indexing & search (FAISS/TF-IDF)
├── models.py # Pydantic data models
├── server.py # FastMCP server entry point
└── config.py # Configuration management
Standards implemented: ISO 13374 (diagnostic architecture), ISO 20816-3 (vibration severity classification), MIMOSA OSA-CBM (condition-based maintenance framework).
Key design choices:
- Privacy-first - raw vibration data never leaves your machine; only computed results flow to the LLM
- LLM-agnostic - works with Claude, ChatGPT, Microsoft Copilot Studio, or any MCP-compatible client. Use Ollama for fully air-gapped deployments
- Modular - use only the tools you need, extend with your own
Documentation
| Guide | For |
|---|---|
| Quickstart for Engineers | Get results fast, no coding required |
| Quickstart for Developers | Understand MCP, extend the server |
| Plugin README | Claude Code plugin installation and usage |
| HTTPS Deployment | Docker + HTTPS for enterprise environments |
| Ollama Guide | Use with local LLMs (fully air-gapped) |
| Architecture | ISO 13374 block mapping and module design |
| Examples | Complete diagnostic workflows |
| Installation | Detailed setup and troubleshooting |
| Contributing | How to contribute (all skill levels welcome) |
| Changelog | Version history |
Testing
86% test coverage across Windows, macOS, and Linux (Python 3.11 & 3.12).
pytest # run all tests
pytest --cov=src --cov-report=html # with coverage report
20+ test files covering signal analysis, fault detection, severity assessment, ML models, report generation, RAG search, and real bearing fault data validation.
Roadmap
- 52 MCP endpoints (43 tools, 1 resource, 4 prompts) with modular architecture
- Claude Code plugin (7 skills, 2 agents, 3 commands)
- 86% test coverage, CI/CD on 3 platforms
- Docker + SSE/HTTP transport for enterprise deployment
- Semantic document search (FAISS + TF-IDF)
- Customizable severity thresholds
- Remaining useful life (RUL) estimation models (linear, exponential, Weibull degradation)
- Trend analysis and degradation onset detection
- Multi-signal trending and historical comparison
- Real-time streaming (MQTT/Kafka)
- Fleet dashboard for multi-asset monitoring
- CMMS integration (SAP, Maximo, Infor)
Ideas? Open a discussion or create an issue.
Are you using this?
I'd genuinely love to know. Whether you ran it on real machinery or just tried the sample data, drop a line in Discussions - one sentence about your machine or use case is enough. Real-world feedback directly shapes what gets built next.
Related
claude-stwinbox-diagnostics - Extends this project by connecting a physical edge sensor (STEVAL-STWINBX1) to Claude via MCP, with Claude Skills for guided condition monitoring. Same analysis engine, real hardware, operator-friendly reports.
Citation
@software{dimaggio_predictive_maintenance_mcp_2025,
title = {Predictive Maintenance MCP Server},
author = {Di Maggio, Luigi Gianpio},
year = {2025},
version = {0.8.0},
url = {https://github.com/LGDiMaggio/predictive-maintenance-mcp},
doi = {10.5281/zenodo.17611542}
}
FAQ
Common questions
Discussion
Questions & comments · 0
Sign In Sign in to leave a comment.