Skip to main content
Glama
matsvandamme

fishball-sdr-mcp

by matsvandamme

Measure the spectrum

sdr_spectrum

Capture IQ to identify the signals present on a frequency, returning frequency and level tables with noise floor and statistics, plus an optional ASCII plot.

Instructions

Capture IQ and return the strongest signals as a table of frequency and level, with the noise floor and capture statistics, optionally with a compact ASCII plot. This is the tool for 'what is on this frequency right now'.

Levels are dBFS referred to the 12-bit converter's full scale. Only the sample rate's worth of spectrum around the current LO is visible - use sdr_scan_band to cover more.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
plotNoInclude an ASCII plot
peaksNoHow many peaks
samplesNoSamples for the transform
channel_pairNo
response_formatNomarkdown for reading, json for structured outputmarkdown

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations include openWorldHint=true, indicating the tool may interact with external systems, and no destructive or read-only hints. The description adds important behavior beyond annotations: it mentions the dBFS reference to the 12-bit converter, implying a specific hardware context, and the frequency visibility limitation around the current LO. It does not contradict the annotations, but could disclose more about side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, with the first sentence front-loading the core functionality and output. The second sentence delivers critical usage guidance. Every word serves a purpose, and there is no fluff or repetition of schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema (returning a table of signals and statistics), the description needs not explain the return structure in detail. It provides essential context: the dBFS reference, the frequency coverage limitation, and the alternative tool. With another tool (sdr_capture_iq) that likely captures raw IQ, the description clarifies that this tool analyzes and summarizes, which is a complete picture for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 80%, so many parameters have descriptions, but the description adds valuable context: it explains the dBFS reference and the frequency visibility scope, which helps interpret the samples parameter (transform size). The parameters 'response_format' and 'plot' are well described in the schema, and the description's mention of 'optionally with a compact ASCII plot' reinforces 'plot'. Overall, it adds useful meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Capture IQ' and the specific resource 'the spectrum', and explains that the tool returns a table of strongest signals, noise floor, and statistics. It also differentiates itself from the sibling tool sdr_scan_band by explicitly stating its coverage limitation, which is critical for an agent to choose the right tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'This is the tool for "what is on this frequency right now"', giving a clear use case. It also provides an exclusion: 'Only the sample rate's worth of spectrum around the current LO is visible - use sdr_scan_band to cover more', directly pointing to the alternative tool when broader coverage is needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.