WaveCap-SDR Controller
Control the WaveCap-SDR server using MCP (Model Context Protocol) tools. This skill enables AI-assisted radio tuning, capture management, and trunking system control.
Prerequisites
- WaveCap-SDR server running at
http://localhost:8087
- MCP enabled in
wavecapsdr.yaml:mcp:
enabled: true
api_key: your-secret-key
- Environment variable set:
export WAVECAP_MCP_KEY=your-secret-key
Available MCP Tools
Device Management
| Tool |
Description |
list_devices |
List available SDR devices with capabilities |
refresh_devices |
Rescan for connected devices |
get_device_health |
Check SDRplay API service health |
Capture Control
| Tool |
Description |
list_captures |
List active RF captures |
create_capture |
Create new capture (device, freq, sample_rate, gain) |
get_capture |
Get capture details |
start_capture |
Start a capture |
stop_capture |
Stop a capture |
update_capture |
Update capture settings |
Channel Control
| Tool |
Description |
list_channels |
List channels for a capture |
create_channel |
Create demodulation channel (mode, offset, squelch) |
update_channel |
Update channel settings |
delete_channel |
Remove a channel |
get_channel_metrics |
Get RSSI, SNR, S-meter readings |
P25 Trunking
| Tool |
Description |
list_trunking_systems |
List configured trunking systems |
start_trunking |
Start a trunking system |
stop_trunking |
Stop a trunking system |
get_active_calls |
Get active voice calls |
get_talkgroups |
List talkgroups with aliases |
Utilities
| Tool |
Description |
get_recipes |
List available capture recipes |
identify_frequency |
Identify radio service by frequency |
get_system_health |
Overall system health check |
Usage Examples
Tune to NOAA Weather Radio
User: "Tune to NOAA weather on 162.475 MHz"
Steps:
1. Call create_capture with center_hz=162475000, sample_rate=250000
2. Call create_channel with offset_hz=0, mode="nbfm", name="NOAA Weather"
3. Call start_capture
Monitor Marine VHF Channel 16
User: "Listen to marine distress channel"
Steps:
1. Call create_capture with center_hz=156800000, sample_rate=250000
2. Call create_channel with offset_hz=0, mode="nbfm", name="Ch 16 Distress"
3. Call start_capture
Check Signal Quality
User: "How's the signal on my current channel?"
Steps:
1. Call list_captures to get capture ID
2. Call list_channels to get channel ID
3. Call get_channel_metrics to get RSSI, SNR, S-meter
Start P25 Trunking
User: "Start monitoring the SA-GRN trunking system"
Steps:
1. Call list_trunking_systems to find system ID
2. Call start_trunking with system_id
3. Call get_active_calls to see current activity
Frequency Reference
Common frequencies:
- NOAA Weather: 162.400-162.550 MHz (NBFM)
- Marine VHF Ch 16: 156.800 MHz (NBFM)
- Aviation Guard: 121.500 MHz (AM)
- FRS/GMRS: 462.5625-467.7125 MHz (NBFM)
- 2m Ham Calling: 146.520 MHz (NBFM)
Demodulation Modes
nbfm - Narrowband FM (12.5-25 kHz, public safety, ham, marine)
wbfm - Wideband FM (200 kHz, broadcast radio)
am - Amplitude Modulation (aviation, shortwave)
usb / lsb - Single Sideband (ham, marine HF)
p25 - P25 Phase 1 digital voice
dmr - DMR digital voice
raw - Raw IQ samples
Troubleshooting
MCP Connection Failed
- Verify server is running:
curl http://localhost:8087/api/v1/health
- Check MCP is enabled in config
- Verify API key matches environment variable
No Devices Found
- Call
refresh_devices to rescan
- Check
get_device_health for SDRplay issues
- Verify SDR is connected via USB
Poor Signal Quality
- Use
get_channel_metrics to check SNR
- Increase gain via
update_capture
- Adjust squelch via
update_channel
1---2name: wavecap-controller3description: Control WaveCap-SDR server via MCP tools. Use when the user wants to tune frequencies, start/stop captures, manage channels, or control P25 trunking systems.4---5
6# WaveCap-SDR Controller
7
8Control the WaveCap-SDR server using MCP (Model Context Protocol) tools. This skill enables AI-assisted radio tuning, capture management, and trunking system control.
9
10## Prerequisites
11
121. **WaveCap-SDR server running** at `http://localhost:8087`
132. **MCP enabled** in `wavecapsdr.yaml`:
14 ```yaml
15 mcp:
16 enabled: true
17 api_key: your-secret-key
18 ```
193. **Environment variable** set: `export WAVECAP_MCP_KEY=your-secret-key`
20
21## Available MCP Tools
22
23### Device Management
24
25| Tool | Description |
26|------|-------------|
27| `list_devices` | List available SDR devices with capabilities |
28| `refresh_devices` | Rescan for connected devices |
29| `get_device_health` | Check SDRplay API service health |
30
31### Capture Control
32
33| Tool | Description |
34|------|-------------|
35| `list_captures` | List active RF captures |
36| `create_capture` | Create new capture (device, freq, sample_rate, gain) |
37| `get_capture` | Get capture details |
38| `start_capture` | Start a capture |
39| `stop_capture` | Stop a capture |
40| `update_capture` | Update capture settings |
41
42### Channel Control
43
44| Tool | Description |
45|------|-------------|
46| `list_channels` | List channels for a capture |
47| `create_channel` | Create demodulation channel (mode, offset, squelch) |
48| `update_channel` | Update channel settings |
49| `delete_channel` | Remove a channel |
50| `get_channel_metrics` | Get RSSI, SNR, S-meter readings |
51
52### P25 Trunking
53
54| Tool | Description |
55|------|-------------|
56| `list_trunking_systems` | List configured trunking systems |
57| `start_trunking` | Start a trunking system |
58| `stop_trunking` | Stop a trunking system |
59| `get_active_calls` | Get active voice calls |
60| `get_talkgroups` | List talkgroups with aliases |
61
62### Utilities
63
64| Tool | Description |
65|------|-------------|
66| `get_recipes` | List available capture recipes |
67| `identify_frequency` | Identify radio service by frequency |
68| `get_system_health` | Overall system health check |
69
70## Usage Examples
71
72### Tune to NOAA Weather Radio
73
74```
75User: "Tune to NOAA weather on 162.475 MHz"
76
77Steps:
781. Call create_capture with center_hz=162475000, sample_rate=250000
792. Call create_channel with offset_hz=0, mode="nbfm", name="NOAA Weather"
803. Call start_capture
81```
82
83### Monitor Marine VHF Channel 16
84
85```
86User: "Listen to marine distress channel"
87
88Steps:
891. Call create_capture with center_hz=156800000, sample_rate=250000
902. Call create_channel with offset_hz=0, mode="nbfm", name="Ch 16 Distress"
913. Call start_capture
92```
93
94### Check Signal Quality
95
96```
97User: "How's the signal on my current channel?"
98
99Steps:
1001. Call list_captures to get capture ID
1012. Call list_channels to get channel ID
1023. Call get_channel_metrics to get RSSI, SNR, S-meter
103```
104
105### Start P25 Trunking
106
107```
108User: "Start monitoring the SA-GRN trunking system"
109
110Steps:
1111. Call list_trunking_systems to find system ID
1122. Call start_trunking with system_id
1133. Call get_active_calls to see current activity
114```
115
116## Frequency Reference
117
118Common frequencies:
119- **NOAA Weather**: 162.400-162.550 MHz (NBFM)
120- **Marine VHF Ch 16**: 156.800 MHz (NBFM)
121- **Aviation Guard**: 121.500 MHz (AM)
122- **FRS/GMRS**: 462.5625-467.7125 MHz (NBFM)
123- **2m Ham Calling**: 146.520 MHz (NBFM)
124
125## Demodulation Modes
126
127- `nbfm` - Narrowband FM (12.5-25 kHz, public safety, ham, marine)
128- `wbfm` - Wideband FM (200 kHz, broadcast radio)
129- `am` - Amplitude Modulation (aviation, shortwave)
130- `usb` / `lsb` - Single Sideband (ham, marine HF)
131- `p25` - P25 Phase 1 digital voice
132- `dmr` - DMR digital voice
133- `raw` - Raw IQ samples
134
135## Troubleshooting
136
137### MCP Connection Failed
138
1391. Verify server is running: `curl http://localhost:8087/api/v1/health`
1402. Check MCP is enabled in config
1413. Verify API key matches environment variable
142
143### No Devices Found
144
1451. Call `refresh_devices` to rescan
1462. Check `get_device_health` for SDRplay issues
1473. Verify SDR is connected via USB
148
149### Poor Signal Quality
150
1511. Use `get_channel_metrics` to check SNR
1522. Increase gain via `update_capture`
1533. Adjust squelch via `update_channel`