Skip to main content
Glama

be-amsa-reporter-te

MCP server that automates a BE AMSA review end-to-end. Trigger it in chat with:

create a backend amsa report

Refactored, optimized and watchdog-guarded successor to be-amsa-manager-te. It keeps only the proven, active automation path, runs the whole multi-minute pipeline on a worker thread behind a hard timeout (so the chat can never hang), and stages all EFF/report I/O on local disk to avoid slow SMB round-trips.

What it does

  1. Lists the sub-folders under \\Mucsdn31\ATV_Power_Pro\MOSFET_TE\Test_program_status_tracking\Copilot_BE_AMSA\effdata and asks which one to analyse.

  2. Validates the chosen folder: exactly one .eff file ending in each of _S1R1, _S1R2, _S2R1, _S2R2 (no duplicates). If not, it returns an actionable message.

  3. Stages the four EFFs locally and drives AMSA 5.1:

    • Launches it from a clean slate (kills any stale GageAnalysis.exe) and dismisses the Precondition failed popup with Yes.

    • File > New → Setup Dialog → adds the four EFF files with TestSetup = 1, 1, 2, 2.

    • Sets the option groups (Test ID by Name and Number, Device no further identification, Unit no rescaling + dB/log(A) linearisation, Override die coordinates).

    • Start → ticks the listed Test Nr to exclude → ContinueContinueOK.

    • Reads the results grid, sorts by GrR, self-calibrates the row geometry, and for every test with GrR ≥ 10 % ensures both S (Scatter) and P (Probability) are marked; unmarks any below threshold. Marks are verified and re-tried until they converge.

    • Configuration > Setup information → sets each row's Description to its EFF file name (matched by Setup No / Rep No).

    • Results > Write HTML-Report → writes the report + a Graphs\ sub-folder of JPGs.

  4. Copies the report + Graphs back to the share and builds a PowerPoint into Copilot_BE_AMSA\generatedppt\<folder>.pptx:

    • Slide 1: <folder> AMSA Review

    • Slide 2: Data Description (the four EFF file names)

    • Slide 3: GrR Summary (Gr&R > 25 % and 10 % ≤ Gr&R ≤ 25 %)

    • Slide 4: GrR Summary (all tests) — bar chart with 10 %/25 % red boundary lines

    • Slide 5+: one slide per test with GrR ≥ 10 %, scatter + probability JPG + assessment.

Related MCP server: PowerPoint MCP

Why it will not hang

The create_backend_amsa_report tool only awaits the folder pick on the event loop; the entire blocking pipeline runs on a worker thread (anyio.to_thread.run_sync). A watchdog (BEAR_RUN_TIMEOUT, default 20 min) wraps the run — on timeout the worker is abandoned, AMSA is force-killed and a clear timeout result is returned. A progress heartbeat (BEAR_HEARTBEAT_SECONDS, default 10 s) reports the current phase so the run never looks stuck.

Install

cd C:\Users\maunahan\.copilot\MCPservers\be-amsa-reporter-te
python3.11 -m pip install -r requirements.txt

Registration (mcp.json)

Registered in C:\Users\maunahan\AppData\Roaming\Code\User\mcp.json:

"be-amsa-reporter-te": {
  "type": "stdio",
  "command": "C:/Users/maunahan/AppData/Local/Microsoft/WindowsApps/python3.11.exe",
  "args": ["-m", "be_amsa_reporter_te.server"],
  "cwd": "C:/Users/maunahan/.copilot/MCPservers/be-amsa-reporter-te",
  "env": {
    "BEAR_BASE_ROOT": "\\\\Mucsdn31\\ATV_Power_Pro\\MOSFET_TE\\Test_program_status_tracking\\Copilot_BE_AMSA",
    "BEAR_AMSA_LNK": "C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\AMSA 5.1\\AMSA 5.1.lnk"
  }
}

Restart the MCP server (Command Palette → MCP: List Serversbe-amsa-reporter-teRestart) after any code/config edit — a running server keeps the old modules in memory.

Configuration

Everything is overridable via BEAR_* environment variables (no code changes needed). Common knobs: BEAR_MAIN_WINDOW_TITLE_RE, BEAR_UI_BACKEND, BEAR_EXCLUDE_TEST_NRS, BEAR_GRR_PLOT_THRESHOLD, BEAR_GRR_HIGH_THRESHOLD, BEAR_RUN_TIMEOUT, BEAR_HEARTBEAT_SECONDS, and the results-grid geometry / control IDs in config.py.

Modules

  • config.py — all paths/selectors/tunables from BEAR_* env.

  • folders.py — list + validate effdata folders.

  • amsa_driver.py — pywinauto automation of AMSA 5.1 (active path only).

  • html_report.py — parse the generated HTML for Test Nr / name / GrR / limits.

  • ppt_report.py — build the review PowerPoint from the HTML + Graphs\ JPGs.

  • server.py — FastMCP server exposing create_backend_amsa_report, worker thread + watchdog + heartbeat.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers