diff --git a/src/content/docs/getting-started/installation.mdx b/src/content/docs/getting-started/installation.mdx
index 882e43e..a45d081 100644
--- a/src/content/docs/getting-started/installation.mdx
+++ b/src/content/docs/getting-started/installation.mdx
@@ -10,10 +10,12 @@ import { Tabs, TabItem, Aside } from '@astrojs/starlight/components';
### From PyPI (Recommended)
-
+
+ For Claude Code:
```bash
claude mcp add mcnanovna -- uvx mcnanovna
```
+ For other MCP clients, configure `uvx mcnanovna` as a server.
```bash
@@ -53,10 +55,12 @@ MCNANOVNA_WEB_PORT=8080 uv run mcnanovna
### From PyPI
-
+
+ For Claude Code:
```bash
claude mcp add mcpositioner -- uvx mcpositioner
```
+ For other MCP clients, configure `uvx mcpositioner` as a server.
```bash
@@ -94,15 +98,12 @@ mcpositioner requires the ESP32 positioner hardware. See [Hardware Build](/hardw
## Both Servers Together
-For automated 3D antenna pattern measurement, run both servers:
+For automated 3D antenna pattern measurement, add both servers to your MCP client:
```bash
-# Add both to Claude Code
+# Claude Code example
claude mcp add mcnanovna -- uvx mcnanovna
claude mcp add mcpositioner -- uvx mcpositioner
-
-# Restart Claude Code to load both
-claude
```
Then use the `measure_antenna_range` prompt to run automated pattern sweeps.
diff --git a/src/content/docs/getting-started/quickstart.mdx b/src/content/docs/getting-started/quickstart.mdx
index cf08771..4e9cef3 100644
--- a/src/content/docs/getting-started/quickstart.mdx
+++ b/src/content/docs/getting-started/quickstart.mdx
@@ -7,26 +7,25 @@ import { Steps, Tabs, TabItem, Aside } from '@astrojs/starlight/components';
## Prerequisites
-- Claude Code CLI installed
+- An MCP client (Claude Code, Cursor, Zed, or any MCP-compatible app)
- NanoVNA-H connected via USB
- Python 3.11+ (handled automatically by uvx)
## Installation
-1. **Add the MCP server to Claude Code**
+1. **Add the MCP server to your client**
+ For Claude Code:
```bash
claude mcp add mcnanovna -- uvx mcnanovna
```
-2. **Start a new Claude Code session**
+ For other clients, configure `uvx mcnanovna` as an MCP server per your client's documentation.
- ```bash
- claude
- ```
+2. **Start a new session**
-3. **Ask Claude to use your VNA**
+3. **Ask your assistant to use your VNA**
Try these prompts:
- "Scan my antenna from 144 to 148 MHz"
@@ -42,7 +41,7 @@ The VNA auto-connects on first tool call. No configuration needed if using defau
## Verify Connection
-Ask Claude: "Get VNA info"
+Try: *"Get VNA info"*
You should see device details like firmware version, serial number, and frequency range.
diff --git a/src/content/docs/index.mdx b/src/content/docs/index.mdx
index a865d24..16c982e 100644
--- a/src/content/docs/index.mdx
+++ b/src/content/docs/index.mdx
@@ -26,7 +26,7 @@ import nanoVNA from '../../assets/hardware/NanoVNA-H-2.jpg';
## What is this?
-Two MCP servers that let Claude control RF test equipment:
+Two MCP servers that let LLMs control RF test equipment:
@@ -39,7 +39,7 @@ Two MCP servers that let Claude control RF test equipment:
Both servers work together for automated 3D antenna pattern measurement.
- Claude orchestrates positioning and VNA measurements across the grid.
+ Your assistant orchestrates positioning and VNA measurements across the grid.
Optional Three.js 3D viewer for radiation patterns.
@@ -73,12 +73,12 @@ Direct access to professional RF measurement capabilities:
## Quick Install
```bash
-# Add both servers to Claude Code
+# Add both servers (Claude Code example)
claude mcp add mcnanovna -- uvx mcnanovna
claude mcp add mcpositioner -- uvx mcpositioner
```
-Then ask Claude to analyze your antenna, measure a filter, or run a 3D pattern sweep.
+Then ask your assistant to analyze your antenna, measure a filter, or run a 3D pattern sweep.
## Hardware
@@ -104,7 +104,7 @@ Then ask Claude to analyze your antenna, measure a filter, or run a 3D pattern s
## Example Prompts
-Once installed, try asking Claude:
+Once installed, try prompts like:
- *"Connect to my NanoVNA and sweep 7.0-7.3 MHz to check my 40m dipole"*
- *"Measure the insertion loss of this BPF from 144-148 MHz"*
diff --git a/src/content/docs/mcnanovna/overview.mdx b/src/content/docs/mcnanovna/overview.mdx
index c5f15d4..1295484 100644
--- a/src/content/docs/mcnanovna/overview.mdx
+++ b/src/content/docs/mcnanovna/overview.mdx
@@ -5,7 +5,7 @@ description: MCP server for NanoVNA-H vector network analyzers
import { Aside } from '@astrojs/starlight/components';
-mcnanovna gives Claude direct control of NanoVNA-H vector network analyzers over USB serial. It exposes 78 MCP tools for frequency sweeps, S-parameter measurements, calibration, LCD capture, RF analysis, and 3D antenna radiation pattern visualization.
+mcnanovna gives LLMs direct control of NanoVNA-H vector network analyzers over USB serial. It exposes 78 MCP tools for frequency sweeps, S-parameter measurements, calibration, LCD capture, RF analysis, and 3D antenna radiation pattern visualization.
## Capabilities
@@ -49,7 +49,7 @@ Other NanoVNA variants using the same USB serial protocol (VID 0x0483, PID 0x574
```
┌─────────────────────────────────────────────────────────┐
-│ Claude Code │
+│ MCP Client │
│ │ │
│ MCP Protocol │
│ ▼ │
diff --git a/src/content/docs/mcnanovna/prompts.mdx b/src/content/docs/mcnanovna/prompts.mdx
index 9505c72..36c9ab3 100644
--- a/src/content/docs/mcnanovna/prompts.mdx
+++ b/src/content/docs/mcnanovna/prompts.mdx
@@ -5,7 +5,7 @@ description: Guided workflow prompts for mcnanovna
import { Aside } from '@astrojs/starlight/components';
-Prompts are pre-built conversation templates that guide Claude through multi-step procedures. They set up context and provide step-by-step instructions for common workflows.
+Prompts are pre-built conversation templates that guide your assistant through multi-step procedures. They set up context and provide step-by-step instructions for common workflows.
## Available Prompts
diff --git a/src/content/docs/mcnanovna/tools.mdx b/src/content/docs/mcnanovna/tools.mdx
index 38b1858..553d5ab 100644
--- a/src/content/docs/mcnanovna/tools.mdx
+++ b/src/content/docs/mcnanovna/tools.mdx
@@ -130,30 +130,30 @@ import { Tabs, TabItem } from '@astrojs/starlight/components';
```
User: Scan my antenna from 144 to 148 MHz with 201 points
- Claude uses: sweep(144000000, 148000000, 201)
- Claude uses: scan(s11=true)
- Claude uses: analyze()
+ Calls: sweep(144000000, 148000000, 201)
+ Calls: scan(s11=true)
+ Calls: analyze()
```
```
User: Analyze this bandpass filter from 1 to 500 MHz
- Claude uses: sweep(1000000, 500000000, 201)
- Claude uses: analyze_filter()
+ Calls: sweep(1000000, 500000000, 201)
+ Calls: analyze_filter()
```
```
User: Calibrate for the 2m band
- Claude uses: sweep(144000000, 148000000, 101)
- Claude uses: cal("load") # user connects load
- Claude uses: cal("open") # user connects open
- Claude uses: cal("short") # user connects short
- Claude uses: cal("thru") # user connects through
- Claude uses: cal("done")
- Claude uses: save(0)
+ Calls: sweep(144000000, 148000000, 101)
+ Calls: cal("load") # user connects load
+ Calls: cal("open") # user connects open
+ Calls: cal("short") # user connects short
+ Calls: cal("thru") # user connects through
+ Calls: cal("done")
+ Calls: save(0)
```
diff --git a/src/content/docs/mcpositioner/overview.mdx b/src/content/docs/mcpositioner/overview.mdx
index ca9310b..a04e6f2 100644
--- a/src/content/docs/mcpositioner/overview.mdx
+++ b/src/content/docs/mcpositioner/overview.mdx
@@ -5,7 +5,7 @@ description: MCP server for ESP32 dual-axis antenna positioner
import { Aside } from '@astrojs/starlight/components';
-mcpositioner gives Claude control of an ESP32-based dual-axis antenna positioner over WiFi. It drives two NEMA 17 stepper motors via TMC2209 drivers for theta (polar, 0-180°) and phi (azimuth, 0-360°) rotation.
+mcpositioner gives LLMs control of an ESP32-based dual-axis antenna positioner over WiFi. It drives two NEMA 17 stepper motors via TMC2209 drivers for theta (polar, 0-180°) and phi (azimuth, 0-360°) rotation.
## Purpose
@@ -36,7 +36,7 @@ Full build instructions and KiCad schematics are in the [Hardware section](/hard
```
┌─────────────────────────────────────────────────────────┐
-│ Claude Code │
+│ MCP Client │
│ │ │
│ MCP Protocol │
│ ▼ │
diff --git a/src/content/docs/mcpositioner/prompts.mdx b/src/content/docs/mcpositioner/prompts.mdx
index e1d82d5..73b1aa4 100644
--- a/src/content/docs/mcpositioner/prompts.mdx
+++ b/src/content/docs/mcpositioner/prompts.mdx
@@ -86,12 +86,12 @@ This prompt requires both mcpositioner AND mcnanovna MCP servers to be running.
## Using Prompts
-In Claude Code, invoke prompts by name:
+Invoke prompts by name:
```
User: Run the measure_pattern_grid prompt for my Yagi on 70cm
-Claude: [Uses measure_pattern_grid prompt with antenna_type="yagi", band="70cm"]
+[Uses measure_pattern_grid prompt with antenna_type="yagi", band="70cm"]
```
-The prompt provides step-by-step guidance, and Claude executes the tools from both mcpositioner and mcnanovna as needed.
+The prompt provides step-by-step guidance, and your assistant executes the tools from both mcpositioner and mcnanovna as needed.
diff --git a/src/content/docs/tutorials/antenna-analysis.mdx b/src/content/docs/tutorials/antenna-analysis.mdx
index c1a5c87..5d96a22 100644
--- a/src/content/docs/tutorials/antenna-analysis.mdx
+++ b/src/content/docs/tutorials/antenna-analysis.mdx
@@ -11,9 +11,9 @@ This tutorial covers common antenna analysis tasks using mcnanovna.
The most common antenna measurement is SWR (Standing Wave Ratio) and impedance at the feedpoint.
-Ask Claude: "Analyze my antenna from 144 to 148 MHz"
+Say: "Analyze my antenna from 144 to 148 MHz"
-Claude will:
+Your assistant will:
1. Run a sweep across the band
2. Find the resonant frequency (minimum SWR)
3. Calculate impedance at resonance
@@ -32,17 +32,17 @@ Return loss at resonance: -23.4 dB
For antennas with multiple resonances (like a multi-band antenna):
-Ask Claude: "Find all resonances from 1 to 30 MHz"
+Say: "Find all resonances from 1 to 30 MHz"
-Claude uses `analyze_s11_resonance` to find all points where the antenna is resonant.
+This uses `analyze_s11_resonance` to find all points where the antenna is resonant.
## Impedance Matching
If your antenna doesn't match 50Ω, design a matching network:
-Ask Claude: "Design a matching network for 35+j25 ohms at 145 MHz"
+Say: "Design a matching network for 35+j25 ohms at 145 MHz"
-Claude uses `analyze_lc_match` to compute L-network solutions:
+This uses `analyze_lc_match` to compute L-network solutions:
```
Solution 1: Series L (27 nH) + Shunt C (18 pF)
Solution 2: Shunt C (12 pF) + Series L (42 nH)
@@ -57,7 +57,7 @@ Solution 2: Shunt C (12 pF) + Series L (42 nH)
- Narrow bandwidth
- Figure-8 radiation pattern
- Ask Claude: "Analyze my dipole on 20m"
+ Say: "Analyze my dipole on 20m"
**Expected characteristics:**
@@ -65,7 +65,7 @@ Solution 2: Shunt C (12 pF) + Series L (42 nH)
- Needs matching network or radials
- Omnidirectional pattern
- Ask Claude: "Analyze my vertical on 40m"
+ Say: "Analyze my vertical on 40m"
**Expected characteristics:**
@@ -73,7 +73,7 @@ Solution 2: Shunt C (12 pF) + Series L (42 nH)
- Narrow bandwidth
- Directional pattern
- Ask Claude: "Analyze my Yagi from 144 to 148 MHz"
+ Say: "Analyze my Yagi from 144 to 148 MHz"
**Expected characteristics:**
@@ -81,7 +81,7 @@ Solution 2: Shunt C (12 pF) + Series L (42 nH)
- High Q (narrow bandwidth)
- Figure-8 pattern (small loop)
- Ask Claude: "Analyze my magnetic loop on 40m"
+ Say: "Analyze my magnetic loop on 40m"
@@ -114,7 +114,7 @@ For a dipole, each side is approximately λ/4 in length. At 145 MHz, that's abou
The antenna is resonant but not at 50Ω.
-Ask Claude: "Design a matching network for my measured impedance"
+Say: "Design a matching network for my measured impedance"
### Narrow bandwidth
@@ -127,7 +127,7 @@ High-Q antennas (small loops, loaded verticals) have narrow bandwidth. Options:
For a quick analytical pattern based on antenna type:
-Ask Claude: "Show the radiation pattern for my dipole"
+Say: "Show the radiation pattern for my dipole"
This uses the S11 data to determine resonance and impedance, then generates an idealized 3D pattern.
diff --git a/src/content/docs/tutorials/calibration.mdx b/src/content/docs/tutorials/calibration.mdx
index 617aa68..4590c70 100644
--- a/src/content/docs/tutorials/calibration.mdx
+++ b/src/content/docs/tutorials/calibration.mdx
@@ -34,7 +34,7 @@ An SMA calibration kit includes precision standards. For casual use, a 50Ω term
1. **Set the sweep range**
- Ask Claude: "Set sweep from 144 to 148 MHz with 101 points"
+ Say: "Set sweep from 144 to 148 MHz with 101 points"
Calibration is frequency-specific. Always calibrate at the frequencies you'll measure.
@@ -42,43 +42,43 @@ An SMA calibration kit includes precision standards. For casual use, a 50Ω term
Connect the 50Ω load termination to Port 1.
- Ask Claude: "Run cal load"
+ Say: "Run cal load"
3. **Connect the OPEN**
Remove the load, leave Port 1 open (or use an open standard).
- Ask Claude: "Run cal open"
+ Say: "Run cal open"
4. **Connect the SHORT**
Connect the short standard to Port 1.
- Ask Claude: "Run cal short"
+ Say: "Run cal short"
5. **Connect the THROUGH**
Connect Port 1 to Port 2 with a short cable or barrel adapter.
- Ask Claude: "Run cal thru"
+ Say: "Run cal thru"
6. **Optional: Isolation**
Connect 50Ω loads to both ports.
- Ask Claude: "Run cal isoln"
+ Say: "Run cal isoln"
This corrects for crosstalk between ports.
7. **Apply calibration**
- Ask Claude: "Run cal done"
+ Say: "Run cal done"
This computes and applies the error correction coefficients.
8. **Save calibration**
- Ask Claude: "Save calibration to slot 0"
+ Say: "Save calibration to slot 0"
Saves to NanoVNA flash for later recall.
@@ -109,7 +109,7 @@ Each slot holds one calibration. Common approach:
## Recalling Calibration
-Ask Claude: "Recall calibration from slot 0"
+Say: "Recall calibration from slot 0"
The NanoVNA will use the stored calibration. Note that calibration must match the current sweep settings.
diff --git a/src/content/docs/tutorials/pattern-measurement.mdx b/src/content/docs/tutorials/pattern-measurement.mdx
index 33a3967..40ea067 100644
--- a/src/content/docs/tutorials/pattern-measurement.mdx
+++ b/src/content/docs/tutorials/pattern-measurement.mdx
@@ -11,7 +11,7 @@ This tutorial walks through measuring a complete 3D antenna radiation pattern us
- NanoVNA-H connected via USB
- ESP32 positioner built and on WiFi
-- Both MCP servers added to Claude Code:
+- Both MCP servers added to your client (e.g., for Claude Code):
```bash
claude mcp add mcnanovna -- uvx mcnanovna
claude mcp add mcpositioner -- uvx mcpositioner
@@ -56,27 +56,27 @@ For accurate patterns, the transmit antenna should have a known, broad pattern (
1. **Verify both servers are connected**
- Ask Claude: "Check positioner status and VNA info"
+ Say: "Check positioner status and VNA info"
- Claude will call `positioner_status` and `info` to verify both devices respond.
+ This will call `positioner_status` and `info` to verify both devices respond.
2. **Home the positioner**
- Ask Claude: "Home the positioner on both axes"
+ Say: "Home the positioner on both axes"
This establishes the reference position (theta=0, phi=0).
3. **Calibrate the VNA**
- Ask Claude: "Calibrate for the 2m band"
+ Say: "Calibrate for the 2m band"
Follow the SOLT calibration procedure. This is critical for accurate S21 measurements.
4. **Run the pattern measurement**
- Ask Claude: "Measure a 3D radiation pattern for my dipole antenna on 2m"
+ Say: "Measure a 3D radiation pattern for my dipole antenna on 2m"
- Claude uses the `measure_pattern_grid` prompt to guide the measurement:
+ This uses the `measure_pattern_grid` prompt to guide the measurement:
- Confirms grid resolution (default: 5° theta × 10° phi)
- Moves through each grid point in serpentine order
- Measures S21 at each position
@@ -86,7 +86,7 @@ For accurate patterns, the transmit antenna should have a known, broad pattern (
If the mcnanovna web UI is running (`MCNANOVNA_WEB_PORT=8080`), the pattern renders in 3D automatically.
- Or ask Claude: "Show the pattern statistics"
+ Or say: *"Show the pattern statistics"*
## Resolution Tradeoffs