Mcp Motor Current Signature Analysis について
Mcp Motor Current Signature Analysis は、固定子電流信号を分析して電動機の故障を診断する MCP サーバーです。実測信号と合成信号に対応し、スペクトル解析から重大度分類付きの診断まで行えます。
主な機能
- 01CSV、TSV、WAV、NPY信号の読み込み
- 02モーター特性と故障周波数の計算
- 03FFT、PSD、包絡線解析
- 04モーター故障の検出と重大度分類
- 05IDによる信号とスペクトルの永続保存
活用シーン
- 01実測電流ファイルからの故障診断
- 02軸受形状に基づく軸受欠陥の確認
- 03テスト用の合成故障信号の生成
MCP 対応
MCP クライアントにモーター電流解析ツール、`mcsa://fault-signatures` リソース、`analyze_motor_current` プロンプトを公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
mcp-server-mcsa
モーター電流シグネチャ解析(MCSA)のためのModel Context Protocol(MCP)サーバーです。固定子電流信号を使用して、電気モーターの非侵襲的なスペクトル解析と故障検出を行います。
mcp-server-mcsaを使うと、あらゆるLLMを予知保全のエキスパートにできます。高速フーリエ変換(FFT)や包絡線解析などの高度な手法を統合することで、システムはモーターの電気的シグネチャを「聴き取り」、機械的・電気的な異常を自然言語だけで自動的に特定できます。
MCSAは、固定子電流の高調波成分を解析し、電気モーターの回転子、固定子、ベアリング、エアギャップの故障を検出する、業界標準の状態監視技術です。振動センサー、稼働停止、機械への物理的なアクセスは必要ありません。このサーバーは、MCSAの診断ワークフロー全体を、あらゆるMCP対応AIアシスタント(Claude Desktop、VS Code Copilotなど)で利用できるようにし、対話形式のエキスパート分析と自動化された状態監視パイプラインの両方を実現します。
機能
- 実信号の読み込み — CSV、TSV、WAV、NumPyの
.npyファイルから測定データを読み込みます - モーターのパラメーター計算 — 銘板データからすべり、同期速度、回転子周波数を算出します
- 故障周波数の計算 — 回転子バーの破損、偏心、固定子の故障、複合偏心に対応します
- ベアリングの故障周波数 — ベアリングの形状からBPFO、BPFI、BSF、FTFを算出します
- 信号の前処理 — DC成分の除去、正規化、窓関数の適用、バンドパス/ノッチフィルタリングを行います
- スペクトル解析 — FFTスペクトル、Welch PSD、スペクトルピークの検出に対応します
- 包絡線解析 — 機械・ベアリングの故障を対象に、ヒルベルト変換による復調を行います
- 時間周波数解析 — 定常でない条件下での周波数追跡にSTFTを使用します
- 故障検出 — 故障の深刻度を自動的に分類します(正常/初期/中程度/重度)
- ワンショット診断 — 信号配列またはファイルから、パイプライン全体を実行します
- テスト信号の生成 — デモやベンチマーク用に、故障注入を設定できる合成信号を生成します
- 永続データストア — 信号とスペクトルを圧縮
.npzファイルとして~/.mcsa_data/に保存します。短いID(sig_xxxx、spec_xxxx)で参照することで、大きな配列がチャットコンテキストを圧迫するのを防ぎます。データはサーバーの再起動後も保持されます
ツール(21)
| ツール | 説明 |
|---|---|
inspect_signal_file | 読み込まずに信号ファイルの形式とメタデータを調べます |
load_signal_from_file | CSV / WAV / NPY ファイルから現在の信号を読み込みます → signal_id を返します |
calculate_motor_params | モーターデータから滑り、同期速度、ローター周波数を計算します |
compute_fault_frequencies | 一般的なすべての故障タイプについて、予想される故障周波数を計算します |
compute_bearing_frequencies | ベアリングの形状から BPFO、BPFI、BSF、FTF を計算します |
preprocess_signal | DC 除去、フィルタリング、正規化、ウィンドウ処理のパイプラインを実行します → 新しい signal_id を返します |
compute_spectrum | 片側 FFT 振幅スペクトルを計算します → spectrum_id を返します |
compute_power_spectral_density | Welch 法による PSD 推定を行います → spectrum_id を返します |
find_spectrum_peaks | スペクトル内のピークを検出し、特性を分析します |
detect_broken_rotor_bars | BRB 故障指数を重大度分類とともに算出します |
detect_eccentricity | 側帯波によるエアギャップ偏心の検出 |
detect_stator_faults | 固定子の巻線間短絡を検出します |
detect_bearing_faults | 電流スペクトルからベアリングの欠陥を検出します |
compute_envelope_spectrum | 変調解析用のヒルベルト包絡線スペクトルを計算します |
compute_band_energy | 周波数帯域内の積分スペクトルエネルギーを計算します |
compute_time_frequency | オプションの周波数追跡を含む STFT 解析を行います |
generate_test_current_signal | オプションで故障を含む合成モーター電流を生成します → signal_id を返します |
run_full_diagnosis | 信号または signal_id から MCSA 診断パイプラインを完全に実行します |
diagnose_from_file | ファイルから MCSA 診断パイプラインを直接実行します |
list_stored_data | ディスクに保存されているすべての信号とスペクトルを一覧表示します |
clear_stored_data | ディスクに保存されている項目を1つまたはすべて削除します |
リソース
| URI | 説明 |
|---|---|
mcsa://fault-signatures | 故障シグネチャ、周波数、経験的しきい値の参照表 |
プロンプト
| プロンプト | 説明 |
|---|---|
analyze_motor_current | MCSA 解析を段階的にガイドするワークフロー |
インストールとセットアップ
ステップ 1 — uv をインストールする(初回のみ。未インストールの場合)
uv は、推奨される Python パッケージマネージャーです。すべて(Python、パッケージ、仮想環境)を1つのツールで管理でき、MCP エコシステム全体で使用されています。
Windows(PowerShell):
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
macOS / Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
インストール後、
uv/uvxコマンドを使用できるように、ターミナルを再起動してください。
ステップ 2 — 動作を確認する
uvx mcp-server-mcsa --help
ヘルプテキストが表示されます。これで完了です。pip install は必要ありません。uvx がパッケージを自動的にダウンロードし、隔離環境で実行します。
ステップ 3 — MCP クライアントに追加する
クライアントを選び、以下の設定を追加してください。ほかに必要な手順はありません。
Claude Desktop
設定ファイルを開きます。
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
mcpServers オブジェクト内に mcsa を追加します(ファイルが存在しない場合は作成してください)。
{
"mcpServers": {
"mcsa": {
"command": "uvx",
"args": ["mcp-server-mcsa"]
}
}
}
その後、Claude Desktop を再起動してください。
VS Code(Copilot / Continue)
ワークスペースに .vscode/mcp.json を作成(または編集)します。
{
"servers": {
"mcsa": {
"command": "uvx",
"args": ["mcp-server-mcsa"]
}
}
}
Cursor
Settings → MCP Servers → Add new server を開きます。
- Type:
command - Command:
uvx mcp-server-mcsa
Step 4 — テスト
MCP クライアントで、次のように試してください。
「ローターバー破損故障のテスト信号を生成し、完全な診断を実行してください。モーター:4 極、50 Hz、1470 RPM。」
サーバーから診断レポートが返されたら、準備完了です。
代替方法:pip でインストール(推奨しません — 注記を参照)
pip install mcp-server-mcsa
次に、クライアントを次のように設定します。
{
"mcpServers": {
"mcsa": {
"command": "python",
"args": ["-m", "mcp_server_mcsa"]
}
}
}
⚠️ Windows でよくある問題:Microsoft Store から Python をインストールした場合、
mcp-server-mcsaコマンドが PATH に含まれておらず、「server disconnected」エラーが発生することがあります。その場合は、python -c "import sys; print(sys.executable)"で Python のパスを確認し、設定でフルパスを使用してください。{ "mcpServers": { "mcsa": { "command": "C:/Users/YOU/AppData/Local/.../python.exe", "args": ["-m", "mcp_server_mcsa"] } } }
uvxを使用すると、この問題を完全に回避できます。
代替方法:ソースからインストール(開発用)
git clone https://github.com/LGDiMaggio/mcp-motor-current-signature-analysis.git
cd mcp-motor-current-signature-analysis
uv sync --dev
ローカルリポジトリを参照するようにクライアントを設定します。
{
"mcpServers": {
"mcsa": {
"command": "uv",
"args": ["--directory", "/absolute/path/to/mcp-motor-current-signature-analysis", "run", "mcp-server-mcsa"]
}
}
}
テストを実行します。
uv run pytest
MCP Inspector でデバッグします。
uv run mcp dev src/mcp_server_mcsa/server.py
トラブルシューティング
| 問題 | 対処方法 |
|---|---|
| Claude Desktop で「server disconnected」と表示される | %APPDATA%\Claude\logs\(Windows)または ~/Library/Logs/Claude/(macOS)のログを確認してください。最も一般的な原因は、設定内のコマンドが見つからないことです。PATH の問題を避けるには uvx を使用してください。 |
uvx: command not found | uv のインストール後にターミナルを再起動してください。Windows では、PowerShell を閉じて開き直す必要がある場合があります。 |
mcp-server-mcsa: command not found(pip) | スクリプトが PATH に追加されていません。代わりに python -m mcp_server_mcsa を使用するか、uvx に切り替えてください。 |
| サーバーは起動するが、ツールが表示されない | 設定を編集した後に MCP クライアントを再起動したことを確認してください。 |
データストア
信号とスペクトルは、圧縮された .npz ファイルとして ~/.mcsa_data/ にディスクへ保存されます(MCSA_DATA_DIR 環境変数で設定可能)。これにより、次のことが可能になります。
- 大きな配列がチャットに送られることはありません — 短い ID(
sig_xxxx、spec_xxxx)と簡潔な要約のみが LLM に返されます。 - データはサーバーを再起動しても保持されます — 翌日に Claude Desktop を再び開いても、信号はそのまま残っています。
- データを一か所にまとめて管理できます — 読み込んだ測定値と生成したテスト信号が、同じフォルダーに保存されます。
~/.mcsa_data/
signals/
sig_a1b2c3d4.npz ← loaded from CSV
sig_e5f6g7h8.npz ← generated test signal
spectra/
spec_i9j0k1l2.npz ← FFT result
ディスク上のすべてのデータを確認するには list_stored_data を、項目を削除するには clear_stored_data を使用してください。
使用例
実信号 — ワンショット診断
測定信号を最も手早く解析するには、diagnose_from_file ツールを使用します。ファイルパスとモーターの銘板データを指定するだけです。
「
C:\data\motor_phaseA.csvのモーターを診断してください — 電源周波数 50 Hz、 4 極、1470 RPM」
サーバーはファイルを読み込み、信号を前処理し、スペクトルを計算して、すべての故障検出器を実行し、重大度別に分類された結果を含む完全な JSON レポートを返します。
ステップごとのワークフロー(信号 ID を使用)
-
測定信号を読み込む(または合成信号を生成する):
「
measurement.wavから信号を読み込んでください」→signal_id: sig_a1b2を返します または:「ローターバー破損故障のテスト信号を生成してください」→sig_c3d4 -
モーターのパラメーターを計算する:
「4 極、電源周波数 50 Hz、1470 RPM で稼働するモーターのパラメーターを計算してください」
-
予想される故障周波数を計算する:
「このモーターで予想される故障周波数は何ですか?」
-
信号を前処理する:
「信号 sig_a1b2 を前処理してください」→ 新しい
signal_id: sig_e5f6を返します -
スペクトルを解析する:
「sig_e5f6 の FFT スペクトルを計算してください」→
spectrum_id: spec_g7h8を返します -
特定の故障を検出する:
「spec_g7h8 でローターバーの破損を確認してください」
-
包絡線解析(任意):
「sig_e5f6 の包絡線スペクトルを計算してください」
保存済み信号からのクイック診断
run_full_diagnosis ツールは、1 回の呼び出しで保存済み信号に対してパイプライン全体を実行します。
Input: signal_id + motor nameplate data
Output: complete report with fault severities and recommendations
ベアリング解析
ベアリングの故障を解析するには、ベアリングの形状(ボールの数、ボールの直径、ピッチ円直径、接触角)が必要です。サーバーは以下を実行します。
- 特徴的な欠陥周波数(BPFO、BPFI、BSF、FTF)を計算します
- 予想される電流側帯波を算出します
- スペクトル内でこれらの側帯波を検索します
対応ファイル形式
| 形式 | 拡張子 | サンプリングレート |
|---|---|---|
| CSV / TSV | .csv、.tsv、.txt | 時刻列から取得、またはユーザー指定 |
| WAV | .wav | ヘッダーに埋め込み |
| NumPy | .npy | ユーザー指定 |
故障検出の理論
ローターバーの破損(BRB)
スリップを $s$、電源周波数を $f_s$ とすると、側帯波は $(1 \pm 2s) \cdot f_s$ に現れます。 重大度は、側帯波の振幅と基本波の振幅の dB 比で分類されます。
偏心
ローターの機械周波数を $f_r$ とすると、側帯波は $f_s \pm k \cdot f_r$ に現れます。
固定子の巻線間短絡
巻線の非対称性により、側帯波は $f_s \pm 2k \cdot f_r$ に現れます。
ベアリングの欠陥
トルク振動が固定子電流を変調し、$f_s \pm k \cdot f_{defect}$ に側帯波が発生します。 欠陥周波数はベアリングの形状(BPFO、BPFI、BSF、FTF)によって異なります。
重大度のしきい値(基本波より低い dB 値)
| レベル | 範囲 |
|---|---|
| 正常 | ≤ −50 dB |
| 初期 | −50~−45 dB |
| 中程度 | −45~−40 dB |
| 深刻 | > −35 dB |
注:これらは一般的な指針です。実際のしきい値は、ベースライン測定に基づき、モーター、負荷、用途に応じて調整してください。
開発
セットアップ
git clone https://github.com/LGDiMaggio/mcp-motor-current-signature-analysis.git
cd mcp-motor-current-signature-analysis
uv sync --dev
テストの実行
uv run pytest
MCP Inspector で実行
uv run mcp dev src/mcp_server_mcsa/server.py
リントと型チェック
uv run ruff check src/ tests/
uv run pyright src/
依存関係
ドキュメント
すべてのツール、リソース、プロンプトの詳細なリファレンス(パラメーター表、診断ワークフロー、統合パターン、重大度のしきい値を含む)については、使用ガイド をご覧ください。
引用
このソフトウェアを研究で使用する場合は、以下の形式で引用してください。
@software{dimaggio_mcsa_2025,
author = {Di Maggio, Luigi Gianpio},
title = {mcp-server-mcsa: MCP Server for Motor Current Signature Analysis},
year = 2025,
url = {https://github.com/LGDiMaggio/mcp-motor-current-signature-analysis},
license = {MIT}
}
GitHub では、
CITATION.cffファイルに基づいて 「このリポジトリを引用」 ボタンが自動的に表示されます。
ライセンス
MIT — 詳細は LICENSE をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。