Real World MCPbeta
Radio · 2 tools

KiwiSDR

Tune hundreds of volunteer-run shortwave receivers around the world and record what they hear.

ListedUnconfirmedFree tier

Why it's listed only. Listed only: each KiwiSDR receiver is run by a volunteer who sets their own limits, and several ask that automated use get their permission first. Source

Notes. kiwisdr.com and rx.kiwisdr.com returned 503 / connection reset on 2026-11-01, so free public access and receiver count could not be confirmed on the official site today. Each receiver has a few user slots and owners may set time limits. Needs Python 3 and numpy.

List public shortwave receivers

kiwisdr.list_receivers
FreeListed

List the volunteer-run KiwiSDR receivers that are open to the public, with location, band coverage and free user slots.

Inputs

NameTypeDescription
near_latnumber
near_lonnumber
limitintegerdefault: 20

Example output

Not connected: the public receiver list (rx.kiwisdr.com) was down on 2026-11-01 and owners set their own automation rules.

Try it

Not connected yet: use KiwiSDR directly at kiwisdr.com . Calling it through our MCP returns this same message.

Call it

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "kiwisdr.list_receivers",
    "arguments": {
      "near_lat": 52.4,
      "near_lon": 4.9,
      "limit": 5
    }
  }
}

Record from a receiver

kiwisdr.record_audio
FreeListed

Tune one KiwiSDR receiver to a frequency and record audio, IQ or waterfall data with kiwirecorder.py. Each receiver has a few user slots and owner-set time limits; ask the owner before automating.

Inputs

NameTypeDescription
server_hostrequiredstringReceiver host (kiwirecorder -s)
server_portintegerReceiver port (-p)default: 8073
frequency_khzrequirednumberTuning frequency in kHz (-f)
moderequiredstringDemodulation mode (-m)one of: am, lsb, usb, cw, nbfm, iq
duration_srequiredintegerRecording length (--tlimit)range: … to 600

Example output

kiwirecorder.py writes WAV audio (or IQ .wav with GNSS timestamps) and waterfall .npy files.

Try it

Not connected yet: use KiwiSDR directly at kiwisdr.com . Calling it through our MCP returns this same message.

Call it

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "kiwisdr.record_audio",
    "arguments": {
      "server_host": "example-kiwi.local",
      "server_port": 8073,
      "frequency_khz": 4625,
      "mode": "usb",
      "duration_s": 60
    }
  }
}