mcp-rs-cmw500
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CMW_DEFAULT_HOST | No | CMW500 IP address | 127.0.0.1 |
| CMW_DEFAULT_PORT | No | SCPI TCP port | 5025 |
| CMW_ALLOW_RAW_SCPI | No | Enable raw SCPI commands | false |
| CMW_MAX_FREQUENCY_HZ | No | Upper frequency bound | 6e9 |
| CMW_MIN_FREQUENCY_HZ | No | Lower bound for frequency | |
| CMW_MAX_EXPECTED_POWER_DBM | No | Max analyzer input | 33 |
| CMW_MAX_GENERATOR_POWER_DBM | No | Max generator output | 0 |
| CMW_MIN_GENERATOR_POWER_DBM | No | Lower bound for generator power |
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| cmw_bt_configureC | Configure Bluetooth/BLE non-signaling measurement |
| cmw_bt_set_technologyC | Set Bluetooth technology (Classic or Low Energy) |
| cmw_bt_set_ble_modeB | Set BLE PHY mode (1M, 2M, Coded S2/S8) |
| cmw_bt_set_packet_typeB | Set Bluetooth Classic packet type (DH1/DH3/DH5/etc.) |
| cmw_bt_set_frequencyC | Set Bluetooth measurement frequency in Hz |
| cmw_bt_set_expected_powerB | Set Bluetooth expected input power in dBm |
| cmw_bt_triggerC | Trigger Bluetooth multi-evaluation measurement |
| cmw_bt_fetch_powerC | Fetch Bluetooth TX power measurement results |
| cmw_bt_fetch_modulationC | Fetch Bluetooth modulation (DEVM) measurement results |
| cmw_bt_fetch_frequencyC | Fetch Bluetooth frequency measurement results |
| cmw_bt_fetch_allB | Fetch all Bluetooth measurement results (power, modulation, frequency) |
| cmw_discoverA | Scan for CMW500 instruments on the network (port 5025) |
| cmw_connectA | Connect to CMW500 at specified host:port |
| cmw_disconnectC | Disconnect from CMW500 |
| cmw_identifyB | Get CMW500 identification (*IDN?): manufacturer, model, serial, firmware |
| cmw_get_statusC | Get CMW500 connection and configuration status |
| cmw_query_optionsC | Query installed hardware and software options |
| cmw_get_errorsA | Drain the instrument's SCPI error queue and report what it rejected. A write command returns no response, so this is the only way to learn that a setting silently failed to apply. Reading the queue clears it. |
| cmw_get_capabilitiesA | Report which technology families this instrument can actually be asked to use, based on its installed options. Call this before planning a campaign: a CMW500 is a chassis, and WLAN, Bluetooth, LTE measurement and LTE signaling are each separately licensed. Without it, an unlicensed application answers '-113 Undefined header', which reads like a client bug rather than a missing licence. |
| cmw_gen_set_frequencyB | Set GPRF generator output frequency in Hz |
| cmw_gen_set_levelB | Set GPRF generator output level in dBm |
| cmw_gen_output_onB | Enable GPRF generator RF output |
| cmw_gen_output_offA | Disable GPRF generator RF output (safe state) |
| cmw_gen_load_arbB | Load ARB waveform file on CMW500 generator |
| cmw_gen_configure_arbC | Configure ARB waveform playback mode (continuous/single) |
| cmw_meas_configure_powerC | Configure GPRF power measurement parameters |
| cmw_meas_configure_spectrumA | Configure GPRF spectrum measurement: centre frequency, span, resolution and video bandwidth |
| cmw_meas_set_frequencyC | Set GPRF analyzer measurement frequency in Hz |
| cmw_meas_set_expected_powerB | Set expected input power for GPRF analyzer in dBm |
| cmw_meas_triggerC | Trigger GPRF power measurement |
| cmw_meas_fetch_powerC | Fetch GPRF power measurement results (current, average, max, min) |
| cmw_meas_fetch_spectrumC | Fetch GPRF spectrum measurement results |
| cmw_set_signal_pathC | Set GPRF measurement signal path scenario (standalone or combined) |
| cmw_get_signal_pathC | Get current GPRF signal path scenario |
| cmw_measureA | Run a complete measurement: arm it, wait for the instrument to report the acquisition finished, then fetch the results. Prefer this over separate trigger and fetch calls -- INITiate returns as soon as the measurement is armed, so a separate fetch cannot tell whether it is reading this acquisition or the previous one. Results are marked stale if a setting changed after the trigger. |
| cmw_rf_route_setA | Route a measurement or generator application to a front-panel connector and internal converter, e.g. 'RF1C,RX1'. Routing is per-application: setting it for GPRF does nothing for WLAN, Bluetooth or LTE. A converter serves one application at a time, which is what produces resource conflicts when two technologies run at once. |
| cmw_rf_route_getA | Report an application's routing scenario and the path this server last applied to it. The connector and converter are not readable from the instrument, so the path is only known if it was set here. |
| cmw_meas_set_triggerC | Set GPRF measurement trigger source and threshold |
| cmw_meas_set_power_filterB | Set GPRF power measurement filter type and bandwidth |
| cmw_gen_set_baseband_modeB | Set GPRF generator baseband mode (CW, ARB, etc.) |
| cmw_set_portC | Set GPRF generator/analyzer RF port connector |
| cmw_meas_set_user_marginC | Set GPRF analyzer user margin in dB |
| cmw_system_all_offC | Turn off all generators and measurements (safe state) |
| cmw_set_external_attenuationA | Declare the cable and fixture loss between the CMW connector and the DUT, so levels and measured powers refer to the DUT rather than the instrument. Without this every absolute power reading is wrong by the path loss. Attenuation is PER-APPLICATION -- pass the applications you are measuring with, because declaring it for GPRF does nothing for a WLAN or Bluetooth measurement. Setting it also tightens the safety clamps, which check both the DUT plane and the instrument connector. |
| cmw_get_external_attenuationA | Report the external attenuation declared for the generator and analyser paths. Check this before trusting any absolute power measurement. |
| cmw_define_limitC | Define a pass/fail limit for measurement checking |
| cmw_check_limitsC | Check measurement values against defined limits |
| cmw_clear_limitsA | Clear all defined limits |
| cmw_list_limitsA | List all defined limits |
| cmw_lte_configure_cellB | Configure LTE cell parameters (band, BW, EARFCN, DL level) |
| cmw_lte_cell_onB | Turn on LTE cell (start base station emulation) |
| cmw_lte_cell_offC | Turn off LTE cell |
| cmw_lte_get_connection_stateC | Get LTE UE connection state (ATT, CONN, IDLE, etc.) |
| cmw_lte_configure_nasC | Configure LTE NAS parameters (MCC, MNC) |
| cmw_lte_configure_bearerB | Configure default EPS bearer (APN and IP version) |
| cmw_lte_configure_cdrxB | Configure Connected DRX (C-DRX) enable/disable |
| cmw_lte_get_ue_infoC | Get UE (User Equipment) information including connection state |
| cmw_lte_meas_configureC | Configure LTE multi-evaluation measurement (subframe count, repetition) |
| cmw_lte_meas_triggerC | Trigger LTE multi-evaluation measurement |
| cmw_lte_meas_fetch_powerC | Fetch LTE TX power measurement results |
| cmw_lte_meas_fetch_evmC | Fetch LTE EVM (Error Vector Magnitude) measurement results |
| cmw_lte_meas_fetch_aclrC | Fetch LTE ACLR (Adjacent Channel Leakage Ratio) measurement results |
| cmw_lte_meas_fetch_semC | Fetch LTE SEM (Spectrum Emission Mask) measurement results |
| cmw_lte_meas_fetch_frequency_errorC | Fetch LTE frequency error measurement results |
| cmw_lte_meas_fetch_allB | Fetch all LTE measurement results (power, EVM, ACLR, SEM) |
| cmw_scpi_sendA | Send raw SCPI command to CMW500 (no response) |
| cmw_scpi_queryC | Send SCPI query and return response |
| cmw_resetC | Reset CMW500 to default state (*RST) |
| cmw_presetD | Full system preset of CMW500 |
| cmw_save_stateB | Save current CMW500 state to file |
| cmw_load_stateB | Load and restore CMW500 state from file |
| cmw_get_full_stateC | Get current CMW500 full configuration state |
| cmw_list_templatesA | List available measurement templates |
| cmw_load_templateA | Load a measurement template by name, optionally one of its named presets. Call cmw_list_templates to see each template's presets and its valid parameter names. |
| cmw_apply_templateC | Apply currently loaded template to CMW500 |
| cmw_wlan_configureC | Configure WLAN non-signaling measurement (standard, BW, freq, power) |
| cmw_wlan_set_standardB | Set WLAN 802.11 standard (A/B/G/N/AC/AX) |
| cmw_wlan_set_bandwidthB | Set WLAN channel bandwidth (20/40/80/160 MHz) |
| cmw_wlan_set_frequencyB | Set WLAN measurement frequency in Hz |
| cmw_wlan_set_expected_powerB | Set WLAN expected input power in dBm |
| cmw_wlan_triggerC | Trigger WLAN multi-evaluation measurement |
| cmw_wlan_fetch_powerC | Fetch WLAN TX power measurement results |
| cmw_wlan_fetch_evmC | Fetch WLAN EVM (Error Vector Magnitude) measurement results |
| cmw_wlan_fetch_spectrum_flatnessC | Fetch WLAN spectrum flatness measurement results |
| cmw_wlan_fetch_frequency_errorC | Fetch WLAN frequency error measurement results |
| cmw_wlan_fetch_allA | Fetch all WLAN results (power, EVM, spectrum flatness, freq error) |
| cmw_wlan_set_triggerA | Set the WLAN measurement trigger source. The instrument defaults to 'IF Power', which waits for the input to cross a threshold and will time out on infrequent bursts such as a beacon. Use 'Free Run' to sample continuously, or 'IF Power' to catch the burst itself. Call cmw_wlan_trigger_catalog for the sources this instrument supports. |
| cmw_wlan_trigger_catalogA | List the WLAN trigger sources this instrument supports |
| cmw_wlan_set_repetitionA | Set WLAN repetition to SINGleshot or CONTinuous. The application defaults to CONTinuous, in which it never reports a finished state, so a synchronised measurement requires SINGleshot. |
| cmw_wlan_abortA | Stop a running WLAN measurement and release its RF converter. A measurement left in RDY still owns its converter, which causes a resource conflict for the next application that needs it. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/RFingAdam/mcp-rs-cmw500'
If you have feedback or need assistance with the MCP directory API, please join our Discord server