34 Platform Tools
Create blocks, connect ports, validate flowgraphs, and generate Python code
GR-MCP is a FastMCP server that exposes GNU Radio’s flowgraph capabilities through the Model Context Protocol. This enables:
.grc files from code or automation34 Platform Tools
Create blocks, connect ports, validate flowgraphs, and generate Python code
40+ Runtime Tools
Launch containers, control XML-RPC variables, monitor ControlPort knobs
Block Development
Generate blocks from descriptions, analyze protocols, export to OOT modules with GRC YAML
24 OOT Modules
Curated catalog with gr-osmosdr, gr-satellites, gr-lora_sdr, and more
# Create an FM receiver flowgraphmake_block(block_type="osmosdr_source")make_block(block_type="low_pass_filter")make_block(block_type="analog_wfm_rcv")make_block(block_type="audio_sink")
# Connect the signal chainconnect_blocks("osmosdr_source_0", "0", "low_pass_filter_0", "0")connect_blocks("low_pass_filter_0", "0", "analog_wfm_rcv_0", "0")connect_blocks("analog_wfm_rcv_0", "0", "audio_sink_0", "0")
# Validate and savevalidate_flowgraph()save_flowgraph("/tmp/fm_receiver.grc")# Launch flowgraph in Docker containerlaunch_flowgraph( flowgraph_path="/tmp/fm_receiver.py", name="fm-radio", xmlrpc_port=8080, enable_vnc=True)
# Connect and tuneconnect_to_container("fm-radio")set_variable("freq", 101.1e6)
# Capture displaycapture_screenshot("fm-radio")# Check what's available# Resource: oot://directory
# Install gr-lora_sdr for LoRa receptioninstall_oot_module( git_url="https://github.com/tapparelj/gr-lora_sdr", branch="master")
# Launch with the new modulelaunch_flowgraph( flowgraph_path="lora_rx.py", image="gnuradio-lora_sdr-runtime:latest")Installation
Set up GR-MCP with uv and GNU Radio
Your First Flowgraph
Build and validate a complete flowgraph
Block Development
Generate blocks, analyze protocols, export to OOT
OOT Modules
Install and combine Out-of-Tree modules