sandraschi

SDR MCP Server

Community sandraschi
Updated

SDR MCP Server

Conversational AI control for Software Defined Radio via the Model Context Protocol.

Control RTL-SDR hardware through natural dialogue — query spectrum, tune frequencies,browse station databases, and visualize real-time waterfall displays. Works withClaude Desktop, any MCP client, or the included web dashboard.

Quick Start

# Install
pip install sdr-mcp

# Check hardware
sdr-mcp check

# Start server (STDIO mode for Claude Desktop)
sdr-mcp serve

For the web dashboard:

cd web_sota
npm install
npm run dev

Documentation

Document What it covers
INSTALL.md Full setup, drivers, configuration
ARCHITECTURE.md System design, data flow, transport
MCP_SERVER.md All 17 MCP tools with examples
SDR_TECHNOLOGY.md Radio basics for beginners
RTL_SDR_V4.md Recommended hardware specs

Features

Hardware Control

  • Auto-detect RTL-SDR devices, initialize and configure
  • Set frequency (24 MHz — 1.766 GHz), gain (auto or manual)
  • Real-time IQ sample capture and spectrum processing

Spectrum Analysis

  • 2048-point FFT with Hamming window
  • Peak detection and signal strength analysis
  • Waterfall history (100 lines) for time-varying signals

Frequency Database

  • 11 pre-loaded stations across LW/MW/SW/VHF bands
  • Program schedules with current-playing info
  • Online search via radio-browser.info (25k+ stations)

WebSocket Streaming

  • Real-time spectrum broadcast to web clients
  • Remote frequency/gain control via WebSocket commands
  • Canvas-based spectrum and waterfall visualizations

Web Dashboard

  • Spectrum Analyzer — live FFT plot with frequency/gain controls
  • Waterfall Display — color-coded time-frequency visualization
  • Station Browser — search, favorites, band filters
  • Online DB — query radio-browser.info by name/country/genre
  • Signal ID — lookup signal types on SigID Wiki

Hardware

Recommended: RTL-SDR Blog v4 (~$35)

  • 24 MHz — 1.766 GHz continuous coverage
  • 0.5 ppm TCXO for frequency stability
  • SMA connector, aluminum enclosure, bias tee

Any RTL2832U-based SDR with R820T2 tuner works. See RTL_SDR_V4.md for full specs.

Project Structure

sdr-mcp/
├── README.md              # This file
├── docs/                  # Documentation
│   ├── INSTALL.md         # Setup guide
│   ├── ARCHITECTURE.md    # System design
│   ├── MCP_SERVER.md      # Tool reference
│   ├── SDR_TECHNOLOGY.md  # Radio primer
│   └── RTL_SDR_V4.md      # Hardware specs
├── pyproject.toml         # Python package config
├── justfile               # Lint, fix, security recipes
├── start.ps1              # Launch backend + webapp
├── src/sdr_mcp/           # Python backend
│   ├── server.py          # FastMCP server, 17 tools
│   ├── capture.py         # RTL-SDR hardware interface
│   ├── processor.py       # FFT / spectrum processing
│   ├── frequency_db.py    # Station database
│   ├── online_db.py       # radio-browser.info API
│   ├── websocket_server.py # Real-time WebSocket stream
│   ├── transport.py       # STDIO / HTTP transport
│   └── cli.py             # Command-line interface
├── web_sota/              # React/TypeScript webapp
│   └── src/
│       ├── pages/         # Spectrum, Waterfall, Stations, etc.
│       └── components/    # Layout, UI components
└── tests/                 # Pytest test suite

Tech Stack

Layer Technology
Protocol FastMCP 3.2, MCP 2.14+
Backend Python 3.12, asyncio
Hardware pyrtlsdr, RtlSdr
Signal numpy, scipy (FFT)
Streaming websockets (RFC 6455)
Frontend React 19, TypeScript, Vite
UI Tailwind CSS, Radix UI, Lucide icons
Standards Fleet SOTA, ruff, Biome, just

License

MIT

MCP Server · Populars

MCP Server · New