Auto-Manager MCP

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.

Category
Visit Server

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 lbf channel 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):

  1. Natural-language analysis over measurement files ← you are here
  2. 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)
  3. 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)
  4. 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

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured