SDR MCP Server
Conversational AI control for Software Defined Radio via the Model Context Protocol.
README
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 with Claude 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
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.