Agent-to-agent discussion between gr-mcp and gnuradio-codebase agents: - 001: gnuradio-agent proposes RuntimeProvider for XML-RPC control - 002: gr-mcp-agent initial response with architecture ideas - 003: gnuradio-agent provides technical details (lock/unlock, types, ControlPort) - 004: gr-mcp-agent responds with Docker-based architecture proposal Key design decisions: - Docker container for GNU Radio runtime (librespace/gnuradio) - Xvfb for headless QT GUI rendering - Support both XML-RPC and ControlPort/Thrift transports - OOT block generation via epy_block and full modules
GR-MCP: A gnuradio MCP Server
GNURadio MCP Server is a modern, extensible Machine Control Protocol (MCP) server for GNURadio, enabling programmatic, automated, and AI-driven creation of GNURadio flowgraphs. Designed for seamless integration with Large Language Models (LLMs), automation frameworks, and custom clients, it empowers you to generate .grc files and control SDR workflows at scale.
Why GNURadio MCP Server?
- Automate SDR workflows and flowgraph generation
- Integrate with LLMs, bots, and custom tools
- Build, modify, and validate flowgraphs programmatically
- Save time and reduce manual errors in SDR prototyping
Features
- 🌐 MCP API: Exposes a robust MCP interface for GNURadio
- 🛠️ Programmatic Flowgraph Creation: Build, edit, and save
.grcfiles from code or automation - 🤖 LLM & Automation Ready: Designed for AI and automation integration
- 🧩 Extensible: Modular architecture for easy extension and customization
- 📝 Example Flowgraphs: Includes ready-to-use
.grcexamples in themisc/directory - 🧪 Tested: Comprehensive unit tests with
pytest
Quickstart
Requirements
- Python >= 3.13
- GNURadio (Tested with GNURadio Companion v3.10.12.0)
- UV
Usage
- Clone the repository
git clone https://github.com/yoelbassin/gr-mcp
-
Set up a UV environment
cd gr-mcp
uv venv --system-site-packages
The
--system-site-packagesflag is required because GNURadio installs thegnuradioPython package globally.
- Add the MCP server configuration to your client configuration. For example, for Claude Desktop or Cursor:
"mcpServers": {
"gr-mcp": {
"command": "uv",
"args": [
"--directory",
"/path/to/gr-mcp",
"run",
"main.py"
]
}
}
Development
Install development dependencies and run tests with:
pip install -e ".[dev]"
pytest
Project Status
In active development. Core server functionality is available, but the API and features are evolving. Your feedback and contributions are highly valued!
Languages
Python
98.6%
Shell
0.9%
C++
0.5%