# mcnanovna MCP server for controlling NanoVNA-H vector network analyzers over USB serial. Provides 78 tools for frequency sweeps, S-parameter measurements, calibration, LCD capture, RF analysis, 3D antenna radiation pattern visualization, and pattern import from external files. ## Installation ```bash # From PyPI (when published) uvx mcnanovna # From source uv run mcnanovna # With optional web UI for 3D pattern visualization uv sync --extra webui MCNANOVNA_WEB_PORT=8080 uv run mcnanovna ``` ## Quick Start Just plug in your NanoVNA-H and start the server. The device auto-connects on first tool call. ```bash # Add to Claude Code claude mcp add mcnanovna -- uvx mcnanovna ``` Then ask Claude to scan your antenna, analyze a filter, or measure a crystal. ## Tools ### Measurement `info`, `sweep`, `scan`, `data`, `frequencies`, `marker`, `cal`, `save`, `recall`, `pause`, `resume` ### Configuration `power`, `bandwidth`, `edelay`, `s21offset`, `vbat`, `capture`, `measure`, `config`, `saveconfig`, `clearconfig`, `color`, `freq`, `tcxo`, `vbat_offset`, `threshold` ### Display `trace`, `transform`, `smooth`, `touchcal`, `touchtest`, `refresh`, `touch`, `release` ### Device `reset`, `version`, `detect`, `disconnect`, `raw_command`, `cw`, `sd_list`, `sd_read`, `sd_delete`, `time` ### Diagnostics `i2c`, `si`, `lcd`, `threads`, `stat`, `sample`, `test`, `gain`, `dump`, `port`, `offset`, `dac`, `usart_cfg`, `usart`, `band` ### Analysis `analyze`, `export_touchstone`, `export_csv`, `analyze_filter`, `analyze_xtal`, `analyze_tdr`, `analyze_component`, `analyze_lc_series`, `analyze_lc_shunt`, `analyze_lc_match`, `analyze_s11_resonance` ### Radiation Patterns `radiation_pattern`, `radiation_pattern_from_data`, `radiation_pattern_multi` ### Pattern Import `import_pattern_csv`, `import_pattern_emcar`, `import_pattern_nec2`, `import_pattern_s1p`, `list_pattern_formats` ## Prompts | Prompt | Description | |--------|-------------| | `calibrate` | SOLT calibration walkthrough | | `export_touchstone` | S-parameter export to .s1p/.s2p | | `analyze_antenna` | SWR, impedance, bandwidth analysis | | `measure_cable` | TDR and cable characterization | | `analyze_crystal` | Crystal motional parameter extraction | | `analyze_filter_response` | Filter type classification and cutoffs | | `measure_tdr` | Time domain reflectometry | | `compare_sweeps` | Before/after comparison | | `measure_component` | Unknown L/C/R identification | | `measure_lc_series` | Series LC resonator measurement | | `measure_lc_shunt` | Shunt LC resonator measurement | | `impedance_match` | L-network matching design | | `visualize_radiation_pattern` | 3D pattern from S11 scan | | `import_pattern` | Load patterns from CSV/EMCAR/NEC2/S1P | | `measure_antenna_range` | Automated 3D pattern with positioner | ## Web UI Enable the optional 3D radiation pattern viewer: ```bash uv sync --extra webui MCNANOVNA_WEB_PORT=8080 uv run mcnanovna ``` Open http://localhost:8080 for an interactive Three.js visualization of antenna patterns. ## Antenna Positioner Integration For automated 3D pattern measurement, use together with [mcpositioner](../mcpositioner/): ```bash claude mcp add mcpositioner -- uvx mcpositioner claude mcp add mcnanovna -- uvx mcnanovna ``` The `measure_antenna_range` prompt guides through the cross-server workflow. ## Supported Hardware - NanoVNA-H (original) - NanoVNA-H4 - Other variants using the same USB serial protocol (VID 0x0483, PID 0x5740) ## License MIT