GNU Radio Model Context Protocol Server - Exposes GNU Radio's block library, flowgraph management, and code generation through the Model Context Protocol (MCP) for use with LLM clients.
GR-MCP has 20 tools with consistent naming (verb_noun pattern) and reasonable descriptions (avg ~100 chars). All tools have input schemas with type definitions and parameter descriptions. However, output schemas are not documented, LLMs cannot predict return structure. Error handling is absent; tools provide no recovery guidance. Parameter descriptions lack constraints (enums, ranges, formats). No tool annotations (readOnlyHint/destructiveHint). Composition is sound (single responsibility per tool), but missing idempotency guarantees and chaining metadata.
Add a block instance to a flowgraph
Create a connection between two blocks
Create a new empty flowgraph
Delete a flowgraph from the manager
Detect available SDR (Software Defined Radio) devices on the system
Perform detailed diagnosis of a flowgraph to identify issues
Remove a connection between two blocks
Generate Python code from a flowgraph
No output schemas documented. LLMs cannot predict return structure, forcing them to guess what fields are available for downstream tool calls. This breaks tool chaining and increases hallucination risk.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). LLMs cannot distinguish safe reads from destructive writes without explicit hints. Tools like delete_flowgraph and remove_block should be marked destructive.
Parameter descriptions lack constraints. 'filepath' accepts any string; should specify format (absolute/relative), file extension (.grc), and validation rules. 'value' in set_block_parameter has no type hint or range.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
Get detailed information about a specific GNU Radio block type
Get the complete YAML recipe for a block including templates and detailed specifications
Get the complete structure of a flowgraph
List all available GNU Radio blocks with summaries
List all managed flowgraphs
Load a flowgraph from a .grc file
Automatically arrange blocks in a flowgraph for a clean, readable layout
Remove a block instance from a flowgraph
Save a flowgraph to a .grc file
Set the active flowgraph for single-flowgraph mode operations
Set a parameter value on a block instance
Validate a flowgraph for errors and warnings
No error handling guidance. Tools provide no recovery hints (e.g., 'Block not found. Call list_blocks() to see available blocks'). Agents cannot self-correct on failures.
No idempotency guarantees. Tools like create_flowgraph, add_block, and connect_blocks do not document whether repeated calls with identical inputs produce the same result or duplicate side effects. Agents retry on ambiguous failures, non-idempotent tools risk duplicates.