mcp服务器mcsa
  
A. 模型上下文协议(MCP)服务器 为了 电机电流特征分析(MCSA) --利用定子电流信号对电动机进行无创频谱分析和故障检测。
mcp服务器mcsa 将任何LLM变成预测性维护专家。通过整合先进技术,如 快速傅里叶变换(FFT) 和 包络分析,系统可以 *听* 通过自然语言自动识别电机的电气特征,并自动识别机械和电气异常。
MCSA是一种行业标准的状态监测技术,它分析定子电流的谐波含量,以检测电动机中的转子、定子、轴承和气隙故障,而不需要振动传感器、停机时间或物理访问机器。该服务器将完整的MCSA诊断工作流程带到任何兼容MCP的AI助手(Claude Desktop、VS Code Copilot等),实现交互式专家分析和自动状态监测管道。
特性
- 真实信号加载 --从CSV、TSV、WAV和NumPy读取测量数据
.npy文件 - 电机参数计算 --铭牌数据中的转差、同步速度、转子频率
- 故障频率计算 --转子断条、偏心、定子故障、混合偏心
- 轴承缺陷频率 --轴承几何形状的BPFO、BPFI、BSF、FTF
- 信号预处理 --直流去除、归一化、开窗、带通/陷波滤波
- 光谱分析 --FFT频谱、Welch PSD、频谱峰值检测
- 包络分析 --机械/轴承故障的Hilbert变换解调
- 时频分析 --非平稳条件下具有频率跟踪的短时傅里叶变换
- 故障检测 --自动严重程度分类(健康/初期/中度/重度)
- 一次性诊断 --来自信号阵列或直接来自文件的完整管道
- 测试信号生成 --用于演示和基准测试的具有可配置故障注入的合成信号
- 持久数据存储 --信号和频谱保存到
~/.mcsa_data/压缩后.npz文件夹;由短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 | 直流去除、滤波、归一化、开窗管道→ 返回新 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 | 调制分析的Hilbert包络谱 |
compute_band_energy | 频带内的积分频谱能量 |
compute_time_frequency | 带可选频率跟踪的短时傅里叶变换分析 |
generate_test_current_signal | 带可选故障的合成电机电流→ 回报 signal_id |
run_full_diagnosis | 从信号或 signal_id |
diagnose_from_file | 直接从文件中完成MCSA诊断流程 |
list_stored_data | 列出磁盘上保存的所有信号和光谱 |
clear_stored_data | 从磁盘中删除一个或所有存储的项目 |
资源
| URI | 描述 |
|---|---|
mcsa://fault-signatures | 故障特征、频率和经验阈值参考表 |
提示
| 提示 | 描述 |
|---|---|
analyze_motor_current | MCSA分析的分步指导工作流程 |
安装和设置
步骤1--安装uv(一次性,如果你没有的话)
紫外线 是推荐的Python包管理器。它在一个工具中处理所有内容(Python、包、虚拟环境),并在整个MCP生态系统中使用。
视窗 (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客户端
选择您的客户端并在下面添加配置。 不需要其他步骤。
克劳德桌面
打开配置文件:
- 视窗:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
添加 mcsa 里面 mcpServers object(如果文件不存在,则创建该文件):
{
"mcpServers": {
"mcsa": {
"command": "uvx",
"args": ["mcp-server-mcsa"]
}
}
}然后 重新启动克劳德桌面.
VS代码(复制/继续)
创建(或编辑) .vscode/mcp.json 在您的工作空间中:
{
"servers": {
"mcsa": {
"command": "uvx",
"args": ["mcp-server-mcsa"]
}
}
}光标
首选 设置→ MCP服务器→ 添加新服务器:
- 类型:
command - 命令:
uvx mcp-server-mcsa
第4步——测试
在您的MCP客户端中,尝试:
生成转子条断裂故障的测试信号,并进行全面诊断。电机:4极,50 Hz,1470 RPM
如果服务器返回诊断报告,则一切就绪。
______________________________________________________________________
Alternative: install with pip (not recommended — see note)
pip install mcp-server-mcsa然后使用以下配置您的客户端:
{
"mcpServers": {
"mcsa": {
"command": "python",
"args": ["-m", "mcp_server_mcsa"]
}
}
}⚠️ Windows上的常见问题:如果您从Microsoft Store安装了Pythonmcp-server-mcsa命令可能不在您的PATH中,导致“服务器断开连接”错误。在这种情况下,使用以下命令查找Python路径python -c "import sys; print(sys.executable)"并在配置中使用完整路径: ``json { "mcpServers": { "mcsa": { "command": "C:/Users/YOU/AppData/Local/.../python.exe", "args": ["-m", "mcp_server_mcsa"] } } }`使用uvx` 完全避免了这个问题。
Alternative: install from source (for development)
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检查器进行调试:
uv run mcp dev src/mcp_server_mcsa/server.py故障排除
| 问题 | 修复 |
|---|---|
| Claude Desktop上的“服务器已断开连接” | 请查看以下日志 %APPDATA%\Claude\logs\ (Windows)或 ~/Library/Logs/Claude/ (macOS)。最常见的原因:找不到配置中的命令。使用 uvx 以避免PATH问题。 |
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。
- 数据在服务器重启后仍然存在 --明天重新打开克劳德桌面
你的信号仍然存在。
- 所有数据集中在一个地方 --加载测量和生成测试
信号并排显示在同一文件夹中。
~/.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 --50Hz电源, 4极,1470转/分”服务器加载文件,预处理信号,计算频谱, 运行所有故障检测器,并返回一个完整的JSON报告 严重程度分级结果。
分步工作流程(带信号ID)
- 加载测量信号 (或生成一个合成的):
> “从以下位置加载信号 measurement.wav" → 回报 signal_id: sig_a1b2 > 或:“生成转子断条故障的测试信号”→ sig_c3d4
- 计算电机参数:
> “计算以1470 RPM运行的4极50 Hz电源电机的电机参数”
- 计算预期故障频率:
> “此电机的预期故障频率是多少?”
- 对信号进行预处理:
> “预处理信号sig_a1b2”→ 返回新 signal_id: sig_e5f6
- 分析频谱:
> “计算sig_e5f6的FFT频谱”→ 回报 spectrum_id: spec_g7h8
- 检测特定故障:
> “检查spec_g7h8中的转子线棒是否断裂”
- 包络分析(可选):
> “计算sig_e5f6的包络谱”
基于存储信号的快速诊断
这 run_full_diagnosis 该工具根据存储的信号运行整个管道 在一次通话中:
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)
$(1\\pm2s)\\cdot f_s$处的边带,其中$s$为滑动,$f_s$为供电频率。 严重性根据边带与基波振幅的dB比进行分类。
偏心
$f_s\\pm k\\cdot f_r$处的边带,其中$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检查器运行
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 文件。
许可证
麻省理工学院——见 许可证 了解详情。
