Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
FLDIGI_HOSTNofldigi XML-RPC host127.0.0.1
FLDIGI_PATHNoExplicit path to the fldigi executable (for application launch)
FLDIGI_PORTNofldigi XML-RPC port7362
FLDIGI_REGIONNoIARU region for band guidance: 1, 2, or 32
FLDIGI_CALLSIGNNoOperator callsign. The single transmit gate — set it to enable transmit; blank keeps the station receive-only
FLDIGI_BAND_GUIDANCENoExperimental advisory band guidance. 'on' to enableoff

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
statusB

Snapshot: version, modem, frequency (Hz), TX/RX state, transmit gate, region, band.

diagnosticsA

Host + network diagnostics for troubleshooting connectivity.

Does NOT connect to fldigi. Reports the resolved FLDIGI_HOST/PORT, this process's Python and hostname, the transmit-gate state, and the host's network interfaces — so you can tell whether the process can even see the target's network (e.g. when running host-side vs. sandboxed). If a non- loopback host times out, see mcp-host-bridge (docs/INSTALL.md).

applicationC

The fldigi program and its process.

Info operations: version, version_struct, name, name_version, config_dir, list_methods. Process operations: launch, stop, terminate, is_running.

launch starts fldigi pointed at the configured XML-RPC endpoint; stop/ terminate ask it to quit (saving options; optionally the log/macros) and fall back to ending a process this server started.

modemC

Operating mode (the fldigi "Op Mode" menu) and modem settings. operations: get, list, get_id, get_max_id, set (value=mode name e.g. 'BPSK31'), set_by_id (value=id), get_io_names (modems usable for KISS/ARQ I/O), get/set/inc_carrier, get/set/inc_afc_range, get/set/inc_bandwidth, get_quality, search_up, search_down, olivia_get/set_bandwidth, olivia_get/set_tones.

frequencyC

RF frequency and waterfall sideband. operations: get, set (value=Hz), increment (value=Hz), get_sideband, set_sideband (value='USB'|'LSB').

controlsC

fldigi operating controls (the AFC / SQL / Rev / Lock / RxID / TxID buttons) and status. operations: get/set/toggle_afc, get/set/toggle_squelch (SQL), get/set/inc_squelch_level, get/set/toggle_reverse (Rev), get/set/toggle_lock (Lock), get/set/toggle_rxid (RxID), get/set/toggle_txid (TxID), get_status1, get_status2, get_trx_status, get_trx_state.

transmitA

Transmitter control. operations: tx, tune, rx, abort, disable_tx, enable_tx, run_macro (value=id), get_max_macro_id, send (text=...), and timing information: tx_timing (value=test string), char_rates, char_timing (value=one character); both timings return 'samples : sample rate : seconds'.

Keying operations (tx, tune, run_macro, send) require a configured callsign; rx, abort, disable_tx and the timing operations never key and are always allowed. send queues text and transmits, auto-returning to receive by default.

rigA

Rig (CAT) control via flrig/Hamlib/RigCAT. operations: get/set_name, get/set_frequency (value=Hz), get/set_mode (value=name), get_modes, set_modes (value=[...]), get/set_bandwidth, get_bandwidths, set_bandwidths (value=[...]), get/set_notch, enable_qsy (value=1|0), set_smeter / set_pwrmeter (value=int, drives fldigi's meter display).

logA

Logbook (QSO / contest) fields. operations: get (field=...), set (field=..., value=...), clear, last_record, all_records.

Settable fields: call, name, qth, locator, serial_number, exchange, rst_in, rst_out, contest_counter (set only: the starting contest serial number). Gettable fields also include frequency, time_on/off, serial_number_sent, state, province, country, band, notes, az. last_record / all_records return ADIF.

textC

RX/TX text and data. operations: read (decoded RX text; start/length), rx_length, get_rx (value=[start, length], the raw byte range), clear_rx, add_tx (value=text), add_tx_queue, add_tx_bytes (value=text or bytes), clear_tx, get_rxtx_data, get_rx_data, get_tx_data.

add_tx / add_tx_bytes only stage text in the TX widget; they do not transmit.

spotC

Spotting / PSK Reporter. operations: get_auto, set_auto (value=bool), toggle_auto, pskrep_count.

wefaxC

WEFAX (weather fax) mode. operations: state, skip_apt, skip_phasing, tx_abort, end_reception, start_manual_reception, set_adif_log (value=bool), set_max_lines (value=int), get_received_file (value=timeout), send_file (value=[filename, timeout_seconds]).

send_file transmits and is callsign-gated.

navtexC

NAVTEX / SitorB mode. operations: get_message (value=timeout seconds), send_message (value=text).

send_message transmits and is callsign-gated.

flmsgB

flmsg (message forms) interworking. operations: online, available, transfer, squelch, get_data (RX data since the last query).

These signal or hand data to a running flmsg; none of them key the transmitter.

ioC

ARQ / KISS I/O port. operations: in_use (which port is active), enable_kiss, enable_arq.

legacyA

Deprecated fldigi methods, kept so the whole catalog is reachable. Each has a current equivalent, which you should prefer: get/set_sideband -> frequency get/set_sideband; rsid -> controls toggle_rxid; get/set_rig_name, get/set_rig_frequency, get/set_rig_mode(s), get/set_rig_bandwidth(s) -> the rig tool; log_get_sideband -> frequency get_sideband; flmsg_online/available/transfer/squelch -> the flmsg tool.

browserA

fldigi's Signal Browser over XML-RPC: every station the multi-channel decoder bank has locked to in the passband, with the text decoded on each channel. This is what the left-hand browser panel shows, and it copies stations far too weak for the waterfall to show. operations: channels (list of {channel, freq, active, text}; text accumulates since the last clear, a newline marks a lost-and-regained signal), clear, available.

Runs for PSK, RTTY and CW modems (fldigi's browser covers those). Needs a fldigi built with the patch in fldigi-mcp/patches; stock 4.2.13 has no browser.* methods, and then this tool says so instead of failing. Receive only.

rsidB

RSID bursts the detector heard: which modes were announced in the passband and where, as {utc, mode, hz} entries since the last clear. Works with fldigi's RSID set to notify-only (RxID on, "do not change modem"), so the current modem keeps decoding while the list tells you what else is on. operations: hits, clear, available.

Needs a fldigi built with the rsid-hits patch in fldigi-mcp/patches; on stock 4.2.13 the tool says so instead of failing. Receive only.

fldigi_callA

Escape hatch: call ANY fldigi XML-RPC method by dotted name (e.g. 'rig.get_mode').

Use station with operation 'list_methods' to discover every method the running build supports. Keying methods remain callsign-gated.

signal_huntA

Find and name the signals in the receiver audio and rank them the way a contest operator reads the waterfall: the station that sits still and calls CQ scores highest.

method 'audio' (default): tap seconds of audio from the input device (FLDIGI_AUDIO_DEVICE, the device fldigi listens on; or device as a name substring or index; wav analyses a file instead). Needs the optional extra: pip install 'fldigi-mcp[hunt]'. method 'devices': list the input devices the tap can open. method 'browser': read fldigi's Signal Browser (needs the browser patch, see the browser tool): one candidate per channel the decoder bank holds, with its text, for the current modem family (PSK, RTTY or CW). Finds stations the spectrum analyser ranks near the floor, but names no mode: it reports what fldigi is set to. method 'api': blind fallback with no audio access; steps modem.search_up across the passband for each modem (mode='RTTY,BPSK31,...') and reads modem.get_quality. Slow.

Each candidate carries carrier_hz, mode (RTTY with shift, CW, BPSK31/63/125, Olivia with tones and bw, MFSK16, DominoEX, MT63, or unknown), db_over_floor, persistence (fraction of the window it was present), periodicity (a CQ loop repeats), score, and fldigi_modem, the name tune_to needs. Nothing here transmits.

tune_toA

Set fldigi to a signal_hunt candidate: modem by fldigi name (e.g. 'RTTY', 'BPSK31', 'OLIVIA-8/250', 'MFSK16', 'DOMEX11', 'MT63-500'), the audio carrier, AFC on, and RxID off by default so another station's RSID burst cannot retune the modem mid-pass. Read the result with text read after 20 seconds; modem get_quality says whether it locked. Does not transmit.

band_guidanceA

Advisory band guidance (experimental, region-aware) — informational / QSY help only.

operations:

  • lookup (frequency_hz, optional mode): what the band plan says at a frequency.

  • watering_hole (mode, optional band): the preferred calling frequency for a mode.

  • move_to_watering_hole (mode): set the dial to that frequency (does NOT transmit).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

C2.9/5.0

Scored across 22 tools

Disambiguation2/5

Several tools overlap in triggering technical operations (e.g., 'legacy' deprecated methods mixed with 'fldigi_call' escape hatch and 'transmit' keying operations create ambiguity about which to use). Additionally, 'controls' vs 'status' fields are not clearly delineated from 'application' info operations, and 'signal_hunt' and 'browser' both serve signal detection, though with different methods.

Naming Consistency2/5

Naming is inconsistent: some tools use single-word verbs (status, legacy, transmit, rig, log, text) while others use compound nouns (signal_hunt, tune_to, band_guidance, wefax, navtex). Operations within tools are mostly verb_noun (get/set/toggle) but the tool-level names mix styles, and 'legacy' is a category name not a clear action.

Tool Count3/5

22 tools is on the higher side but not extreme, given fldigi's broad feature set (transmit, rig, modem, log, text, special modes). However, some tools like 'legacy' and 'fldigi_call' add bulk without distinct value, making the count feel heavier than needed; a leaner set around 15 would be more appropriate.

Completeness4/5

The server covers core fldigi operations well: transmit, receive, modem control, frequency, log, text, rig, special modes (WEFAX, NAVTEX), and diagnostics. Minor gaps include lack of a direct receive-while-transmitting control, but the 'transmit' send with auto-return and 'text' read cover most workflows. The presence of 'legacy' and 'fldigi_call' suggests full reachability, but they are fallback rather than missing functionality.

Maintenance

ActivityMaintained
ResponsivenessNo issues