Convert scan, analyze, capture, and cal to async with MCP progress reporting via FastMCP Context. Blocking serial I/O wrapped with asyncio.to_thread() so the event loop stays free to deliver progress notifications during hardware sweeps. Add connection keepalive: _ensure_connected validates stale connections with a sync probe after 30s idle, and retries on cold-start failures (fixes flaky first-connect after MCP server restart).
Description
MCP server for NanoVNA-H vector network analyzers
Languages
Python
85.1%
TypeScript
12.1%
CSS
2.4%
HTML
0.4%