Predictive Maintenance MCP Server
平台与服务by lgdimaggio
面向工业场景的 predictive maintenance 工具,支持 vibration analysis、bearing faults 诊断,并参考 ISO 20816-3 标准。
什么是 Predictive Maintenance MCP Server?
面向工业场景的 predictive maintenance 工具,支持 vibration analysis、bearing faults 诊断,并参考 ISO 20816-3 标准。
README
Predictive Maintenance MCP Server
<!-- mcp-name: io.github.LGDiMaggio/predictive-maintenance-mcp -->Give your AI assistant evidence-based vibration diagnostics — machinery fault detection, ISO-cited severity, and diagnostic reports built to support and accelerate expert decision-making.
An open-source MCP server that turns LLMs into condition monitoring assistants for reliability engineers. Its core design rule: the server refuses to guess. No diagnosis is ever inferred from filenames or statistical parameters alone — a fault indication requires matching spectral evidence. Every severity claim cites ISO 20816-3, and the evaluative wording in reports is authored by the server, not improvised by the model. The AI orchestrates the analysis and presents the evidence — detected fault frequencies, matched fault patterns, severity zones — while the final judgment stays with the engineer. Also available as a Claude Code plugin with 8 diagnostic skills.
See It in Action
<p align="center"> <img src="assets/claude_gif.gif" alt="Predictive Maintenance MCP — diagnostic workflow in Claude Desktop" width="720"> </p> <p align="center"><em>Full diagnostic workflow: load signal → spectral analysis → fault detection → severity assessment → report generation</em></p>Choose Your Path
| You are | Start here |
|---|---|
| Reliability / maintenance engineer — diagnostics in plain language, no coding | Engineer's Quickstart |
| AI / MCP developer — run, integrate, and extend the server | Developer's Quickstart · Quick Start below |
| Researcher / evaluator — how the numbers are measured | Benchmark Methodology · Benchmark below |
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:
<details> <summary><b>Manual config (macOS / Linux / other MCP clients)</b></summary>"Load real_train/OuterRaceFault_1.csv and check if the bearing is healthy."
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" }
}
}
}
</details>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)
Benchmark
A blind, reproducible diagnostic-accuracy benchmark on the public CWRU Bearing Data Center dataset (12 kHz drive-end subset: 60 fault records + 4 normal baselines). Fault labels never reach the system under test — signals enter under opaque ids, a separate scorer is the only label reader, and blindness, checksum integrity, and determinism are enforced by CI-run guard tests, not prose. Results are stratified by the per-record diagnosability grades of the Smith & Randall (2015) reference study, so records that study found undiagnosable by any classical method are reported separately instead of inflating or deflating the headline.
<!-- cwru-benchmark:start -->On records the reference study grades clearly diagnosable (Y1+Y2, <!-- slot: headline.n_records -->44<!-- /slot --> records): characteristic fault frequency detected on <!-- slot: headline.frequency_detection.hits -->44<!-- /slot -->/<!-- slot: headline.frequency_detection.total -->44<!-- /slot -->, correct fault ranked first on <!-- slot: headline.classification.correct -->34<!-- /slot -->/<!-- slot: headline.classification.total -->44<!-- /slot --> (<!-- slot: headline.classification.rate pct1 -->77.3<!-- /slot -->%), and <!-- slot: strata.Y1.classification.correct -->9<!-- /slot -->/<!-- slot: strata.Y1.classification.total -->9<!-- /slot --> on the textbook-signature (Y1) stratum. On the <!-- slot: strata.ungraded.false_positives.total_normal -->4<!-- /slot --> healthy baselines, <!-- slot: strata.ungraded.false_positives.records_with_any -->2<!-- /slot --> records raised a false indication under the same criterion.
<!-- cwru-benchmark:end -->The numbers above are read from the committed, re-runnable artifact (results.json) and drift-guarded by CI: every value is bound to its key in the artifact, and a mismatch fails the build. Methodology, blind protocol, and honest-benchmarking notes: docs/benchmark-methodology.md. Reproduce with:
python -m benchmarks.cwru all
What Can It Do?
Point the AI at a vibration signal → get the evidence behind the fault — detected frequencies, matched fault patterns, ISO-cited severity — to support your call.
| You say | The AI does |
|---|---|
| "Is this bearing healthy?" | Loads the signal, runs spectral analysis, surfaces matching fault-frequency evidence, cites the ISO 20816-3 severity zone |
| "Generate a full diagnostic report" | Produces an interactive HTML report with charts, fault markers, and server-authored severity wording |
| "Extract specs from test_pump_manual.pdf and diagnose the signal" | Reads the equipment manual, looks up the bearing model, calculates expected fault frequencies, flags which ones the signal actually shows |
| "Train an anomaly detector on my healthy baselines, then flag anomalies" | Trains a model on your normal data, scores new signals, flags outliers for your review |
The AI doesn't guess — it calls 37 specialized MCP endpoints (34 tools + 3 prompts) running locally on your machine. Every signal is referenced by a single signal_id handle from load to report. Your data never leaves your infrastructure.
Full endpoint reference, grouped by category: Tool Catalog.
Claude Code Plugin
The project includes a plugin for Claude Code with domain-specific skills that activate automatically during conversation.
/plugin marketplace add LGDiMaggio/predictive-maintenance-mcp
/plugin install predictive-maintenance@predictive-maintenance-marketplace
The plugin adds 8 skills that activate automatically based on context (bearing-diagnosis, gear-diagnosis, quick-screening, report-generation, anomaly-detection, signal-management, documentation-search, prognostics), 2 agents that run multi-step diagnostic workflows end-to-end and hand you the evidence (diagnostic-pipeline, signal-explorer), and 3 commands for quick entry points (/pm-diagnose, /pm-screen, /pm-report).
Full skill, agent, and command reference: Plugin README.
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.
<details> <summary><b>Report examples</b></summary>

| 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: a training set (2 healthy baselines + 12 fault signals, inner and outer race) and a 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. Standards implemented: ISO 13374, ISO 20816-3, MIMOSA OSA-CBM. Module-level detail: Architecture guide.
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 |
| Tool Catalog | Every MCP endpoint, grouped by category |
| Adapter Guide | Bring vendor/DAQ raw data in via explicit declarations |
| 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 |
| Benchmark Methodology | How the CWRU diagnostic benchmark is measured |
| Examples | Complete diagnostic workflows |
| Installation | Detailed setup and troubleshooting |
| Contributing | How to contribute (all skill levels welcome) |
| Changelog | Version history |
Testing
85%+ test coverage, enforced as a CI minimum, across Windows, macOS, and Linux (Python 3.11 & 3.12) — the current measured figure is on the codecov badge above.
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
- 37 MCP endpoints (34 tools, 3 prompts) with modular architecture and a single
signal_idhandle - Claude Code plugin (8 skills, 2 agents, 3 commands)
- 85%+ test coverage enforced in CI, CI/CD on 3 platforms
- Docker + SSE/HTTP transport for enterprise deployment
- Semantic document search (FAISS + TF-IDF)
- Blind, reproducible diagnostic benchmark on the CWRU dataset (extensible to Paderborn)
- Customizable severity thresholds
- Remaining useful life (RUL) estimation from repeated measurements (linear, exponential, Kalman)
- 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.
Contributing
Contributions welcome from everyone — not just programmers. Domain experts, technical writers, and testers are equally valued. See CONTRIBUTING.md for paths tailored to your background.
Quick start: browse Issues for good first issue or help wanted labels.
Citation
@software{dimaggio_predictive_maintenance_mcp_2025,
title = {Predictive Maintenance MCP Server},
author = {Di Maggio, Luigi Gianpio},
year = {2025},
version = {0.13.0},
url = {https://github.com/LGDiMaggio/predictive-maintenance-mcp},
doi = {10.5281/zenodo.17611542}
}
License
MIT — see LICENSE. Sample data is CC BY-NC-SA 4.0 (non-commercial); for commercial use, replace with your own machinery data.
Acknowledgments
MCP Python SDK (descended from FastMCP) · Model Context Protocol by Anthropic · Sample data from MathWorks · Core development assisted by Claude
An open-source predictive maintenance AI agent and condition monitoring copilot — built to support reliability engineers and the developer community.
常见问题
Predictive Maintenance MCP Server 是什么?
面向工业场景的 predictive maintenance 工具,支持 vibration analysis、bearing faults 诊断,并参考 ISO 20816-3 标准。
相关 Skills
MCP构建
by anthropics
聚焦高质量 MCP Server 开发,覆盖协议研究、工具设计、错误处理与传输选型,适合用 FastMCP 或 MCP SDK 对接外部 API、封装服务能力。
✎ 想让 LLM 稳定调用外部 API,就用 MCP构建:从 Python 到 Node 都有成熟指引,帮你更快做出高质量 MCP 服务器。
Slack动图
by anthropics
面向Slack的动图制作Skill,内置emoji/消息GIF的尺寸、帧率和色彩约束、校验与优化流程,适合把创意或上传图片快速做成可直接发送的Slack动画。
✎ 帮你快速做出适配 Slack 的动图,内置约束规则和校验工具,少踩上传与播放坑,做表情包和演示都更省心。
接口测试套件
by alirezarezvani
扫描 Next.js、Express、FastAPI、Django REST 的 API 路由,自动生成覆盖鉴权、参数校验、错误码、分页、上传与限流场景的 Vitest 或 Pytest 测试套件。
✎ 帮你把API与集成测试自动化跑顺,减少回归漏测;能力全面,尤其适合复杂接口场景的QA团队。
相关 MCP Server
Slack 消息
编辑精选by Anthropic
Slack 是让 AI 助手直接读写你的 Slack 频道和消息的 MCP 服务器。
✎ 这个服务器解决了团队协作中需要 AI 实时获取 Slack 信息的痛点,特别适合开发团队让 Claude 帮忙汇总频道讨论或发送通知。不过,它目前只是参考实现,文档有限,不建议在生产环境直接使用——更适合开发者学习 MCP 如何集成第三方服务。
by netdata
io.github.netdata/mcp-server 是让 AI 助手实时监控服务器指标和日志的 MCP 服务器。
✎ 这个工具解决了运维人员需要手动检查系统状态的痛点,最适合 DevOps 团队让 Claude 自动分析性能数据。不过,它依赖 NetData 的现有部署,如果你没用过这个监控平台,得先花时间配置。
by d4vinci
Scrapling MCP Server 是专为现代网页设计的智能爬虫工具,支持绕过 Cloudflare 等反爬机制。
✎ 这个工具解决了爬取动态网页和反爬网站时的头疼问题,特别适合需要批量采集电商价格或新闻数据的开发者。不过,它依赖外部浏览器引擎,资源消耗较大,不适合轻量级任务。