Auto-Manager MCP
Enables natural language analysis of mechanical test data files (CSV, TDMS, MDF) by providing tools for channel statistics, spectrum analysis, rainflow fatigue counting, thermal state detection, and report generation.
README
auto-manager
Measurement analysis for mechanical test engineers — load messy DAQ files, get answers in one command, and let your LLM drive the whole toolbox over MCP.
You ran the test. Now you have a CSV from one rig, a TDMS file from another, semicolons and decimal commas from the German lab, and a manager who wants a report. auto-manager reads all of it, figures out what each channel is (accelerometer? load cell? thermocouple?), runs the right analysis for each, and writes a self-contained HTML report with plain-English findings:
- Accel_X: dominant frequency 32.5 Hz, Q≈16, broadband RMS 0.84 g (further peaks: 120.0 Hz).
- Load: 186 fatigue cycles counted (rainflow, ASTM E1049), max range 24.6 kN; damage-equivalent constant-amplitude range 14.4 kN (m=5).
- TC_Air: 3 steady plateau(s) at 25.0, 85.1, −20.1; max transition overshoot 5.1.
- Force: possible clipping: 608 samples pinned at the minimum.
No project files, no wiring diagrams, no license server.
Install
pip install "auto-manager @ git+https://github.com/Maxpeng59/auto-manager"
# or, inside a clone: pip install .
Python ≥ 3.10. MDF/MF4 support is an extra: pip install "auto-manager[mdf] @ git+...".
Try it in 60 seconds
automgr samples # writes 3 realistic demo datasets
automgr info samples/weld_fatigue_load.csv # channels, units, detected kinds
automgr report samples/bracket_vibration.csv --open # full HTML report
automgr fatigue samples/weld_fatigue_load.csv -c Last
automgr thermal samples/thermal_chamber.csv
The demo files are deliberately awkward — a German export with semicolons, decimal commas and a metadata preamble; a tab file with ISO timestamps — because that is what real DAQ exports look like.
What it does
| command | what you get |
|---|---|
automgr info FILE |
channels, units, auto-detected kinds, sample rate, duration, metadata |
automgr stats FILE [-c CH] |
min/max/mean/RMS/crest factor + data-quality flags (NaN gaps, clipping) |
automgr spectrum FILE -c CH |
Welch PSD: dominant peaks with Q estimates, broadband & band RMS |
automgr fatigue FILE -c CH |
rainflow cycle counting per ASTM E1049 (validated against the standard's worked example), range histogram, damage-equivalent ranges, optional Miner damage with your S-N parameters |
automgr thermal FILE [-c CH] |
soak plateau detection, ramp rates, controller overshoot |
automgr report FILE |
everything above, chosen per channel automatically, as one shareable HTML file with charts, findings and a provenance footer (source hash, tool version) |
automgr mcp |
all of it as MCP tools for Claude / any MCP client |
Every command works with zero flags on a well-formed file; every error message says what to do next (--rate when a file has no time column, channel suggestions on typos, ...).
File formats
- CSV / TXT / TSV — auto-detects delimiter (
,;tab), decimal commas, metadata preambles, separate unit rows, units embedded in headers (Load (kN),Accel [g]), datetime or elapsed-time columns, text status columns, NaN gaps. - TDMS (NI LabVIEW/DIAdem) — via npTDMS, including waveform timing and units.
- MDF / MF4 (CANape, INCA, ...) — via asammdf (
[mdf]extra).
The loaders normalise everything into one channel model, so a future live-DAQ backend feeds the same analyses.
Channel auto-classification
Units and names are strongly conventional in test data. g/m/s² → acceleration → PSD. kN/µε/Nm → load/strain/torque → rainflow. °C/TC_1/PT100 → temperature → steady-state detection. You can always override by calling a specific analysis on any channel.
Use it from an LLM (MCP)
auto-manager ships an MCP server so a model can be your natural-language front end — "load bench_run_042.csv, tell me whether the 32 Hz mode shifted vs. Tuesday's baseline, and write me a report" — while the numbers come from real signal processing, not from a model's imagination.
# Claude Code
claude mcp add automgr -- automgr mcp
// Claude Desktop (claude_desktop_config.json)
{ "mcpServers": { "automgr": { "command": "automgr", "args": ["mcp"] } } }
Exposed tools: measurement_info, channel_stats, spectrum, fatigue_rainflow, thermal_steady_states, channel_segment (inspect raw samples), generate_report, supported_formats. The model sees channel kinds and units, so it knows a kN channel gets rainflow, not an FFT.
Python API
import auto_manager as am
m = am.load("samples/bracket_vibration.csv") # any supported format
psd = am.welch_psd(m.channel("Accel_X"), m.sample_rate)
print(psd["peaks"][0]) # {'freq_hz': 32.5, 'psd': ..., 'q_estimate': 16.2}
fat = am.rainflow(m.channel("Load"), sn_exponent=5, sn_ref_range=80.0, sn_ref_cycles=2e6)
soaks = am.steady_states(m.channel("TC_Air"), m.sample_rate)
from auto_manager.report import generate_report
generate_report(m) # -> bracket_vibration.report.html
Honest limitations (v0.1)
- File-based analysis only. Live DAQ (LabJack, VISA/SCPI instruments) is the next milestone — the channel model is already designed for it.
- Steady-state detection is a windowed heuristic; its parameters (
--slope-limit,--min-duration) are exposed and echoed into results for reproducibility. - Miner damage needs your S-N parameters; the reference slopes (m=3, m=5) shown by default are labelled as assumptions, not material data.
- No unit conversion (a
lbfchannel stays in lbf) and no mean-stress correction yet. - Reports are generated automatically — review before you release them.
Roadmap
This is module 1 of a four-module plan for an AI-native hardware+software test bench (see research/2026-07-02-landscape-and-architecture.md for the full landscape study):
- Natural-language analysis over measurement files ← you are here
- Auto-control of external hardware (asyncio hardware-abstraction service as the LLM's tool surface; human approval on state-changing writes; simulation/dry-run backend)
- LLM-generated firmware for a fixed companion dev-board kit (two-domain firmware: frozen safety kernel + MPU-restricted app partition; sim→HIL pipeline; A/B rollback)
- Custom companion PCB (demand-gated)
Development
uv venv && uv pip install -e ".[dev]"
uv run pytest # 47 tests, incl. ASTM E1049 vector & MCP stdio handshake
python examples/generate_sample_data.py # regenerate examples/data
License
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。