Add README

Covers installation, all 78 tools organized by category, 15 prompts,
web UI setup, and cross-server integration with mcpositioner.
This commit is contained in:
Ryan Malloy 2026-02-03 09:10:37 -07:00
parent 748bfb8216
commit 21f4f0976e

108
README.md Normal file
View File

@ -0,0 +1,108 @@
# 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