Skip to content

Tools Reference

All 34 RFlect MCP tools, organized by category. Full signatures and return shapes.

Import (6)

Tool Purpose
import_antenna_file(file_path, scan_type) Single measurement file (auto-detects scan type from filename)
import_antenna_folder(folder_path, pattern, scan_type) Every file in folder matching glob
import_passive_pair(hpol_file, vpol_file, cable_loss, name) HPOL+VPOL → full passive calc pipeline
import_active_processed(file_path, name) Single TRP file with full active calc pipeline
list_loaded_data() Currently loaded measurements
clear_data() Drop all loaded measurements

Analysis (5)

Tool Purpose
list_frequencies() Available frequencies across loaded data
analyze_pattern(frequency, polarization) HPBW, F/B ratio, nulls, sidelobes
get_gain_statistics(frequency) Min / max / spherical avg gain
compare_polarizations(frequency) AR / tilt / XPD / sense
get_all_analysis(frequency) Combined pattern + gain + polarization

Reports (3)

Tool Purpose
generate_report(output_path, options, title, metadata) DOCX with plots, tables, AI summary
preview_report(options) What the report would contain — no file written
get_report_options() All filtering / customization options

Bulk (5)

Tool Purpose
list_measurement_files(folder_path) Scan folder, categorize HPOL/VPOL/TRP/VSWR
bulk_process_passive(folder_path, frequencies, cable_loss, save_path, datasheet_plots) Batch HPOL/VPOL pairs
bulk_process_active(folder_path, save_path, interpolate) Batch TRP files
validate_file_pair(hpol_path, vpol_path) Are these two files a valid pair?
convert_to_cst(hpol, vpol, vswr, frequency, cable_loss, output_path) Export CST .ffs

UWB (3)

Tool Purpose
calculate_sff_from_files(file_paths, pulse_type, min_freq_ghz, max_freq_ghz) SFF per angle from a list of files
analyze_uwb_channel(file_path, distance_m, pulse_type) Full UWB analysis from one file
get_impedance_bandwidth(file_path, threshold_dB) S11 bandwidth metrics

Cal Drift (8)

Tool Purpose
cal_drift_ingest(directory) Walk a directory of TRP Cal *.txt and record each
cal_drift_list_runs(antenna, band) List recorded runs, optionally filtered
cal_drift_compare(baseline_run_id, current_run_id, max_delta_rows) Per-frequency ΔdB + consistency
cal_drift_report(baseline_run_id, current_run_id, output_path, format) Export markdown / pdf / png
cal_drift_history_dir() Current history directory
cal_drift_set_history_dir(directory) Persist a new history directory
cal_drift_set_setup_group(run_id, setup_group) Tag a run's methodology epoch
cal_drift_set_notes(run_id, notes) Free-text operator notes

Orchestration (1)

Tool Purpose
process_folder(folder_path, intent, report, freqs, report_path) Scan folder, pick + run the right workflow

Returns:

{
  "intent_used":        "passive" | "active" | "cal_drift" | "uwb" | None,
  "files_scanned":      int,
  "files_processed":    int,
  "frequencies_loaded": list[float],
  "warnings":           list[str],     # never raises; failures here
  "report_path":        str | None,
  "extra":              dict           # intent-specific (uwb results, cal_drift run_ids, …)
}

See Recipes for usage patterns.

Misc (3)

Tool Purpose
get_measurement_details(measurement_name) Inspect one loaded measurement
batch_analyze_frequencies() Re-run analysis across all loaded frequencies
rflect://help Help resource — server prints categorized tool list

Source of truth

Registration entry points:

  • rflect-mcp/tools/import_tools.pyregister_import_tools(mcp)
  • rflect-mcp/tools/analysis_tools.pyregister_analysis_tools(mcp)
  • rflect-mcp/tools/report_tools.pyregister_report_tools(mcp)
  • rflect-mcp/tools/bulk_tools.pyregister_bulk_tools(mcp)
  • rflect-mcp/tools/uwb_tools.pyregister_uwb_tools(mcp)
  • rflect-mcp/tools/cal_drift_tools.pyregister_cal_drift_tools(mcp)
  • rflect-mcp/tools/orchestration.pyregister_orchestration_tools(mcp)

All registered in rflect-mcp/server.py.