JDS2800 MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| JDS2800_PORT | No | Serial port to use. If not set, the server probes USB serial ports and selects a single matching JDS generator. An explicit port always overrides discovery. | |
| JDS2800_TIMEOUT | No | Timeout in seconds per serial reply/write. Default is 1 second. | 1 |
| JDS2800_CALIBRATION | No | Path to an alternate power calibration file. It must match the actual device and use the same sine/zero-offset/50-ohm convention. | |
| JDS2800_LOCK_TIMEOUT | No | Timeout in seconds waiting for another operation to release the serial lock. Default is 5 seconds. | 5 |
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
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_manualA | Read the bundled manual reference: model/frequency/voltage limits, 50-ohm power estimates, modes, synchronization, protocol notes, and tested behavior. Includes source page numbers and discrepancies. No serial port is opened. |
| get_calibrationA | Read measured power calibration metadata/ranges without opening a port. include_points=true also returns the full amplitude/frequency measurement table. Applies to zero-offset SINE into a physical 50-ohm load through measured cables. |
| preview_powerA | Check generator identity and calculate calibrated voltage for sine power into 50 ohms. Interpolates measured levels/frequencies; no extrapolation or writes. Returns predicted power after 1 mV amplitude quantization, not a live measurement. |
| set_powerA | Set calibrated sine power into a physical 50-ohm load using the measured table. Sets waveform=SINE, DC offset=0, duty=50, and frequency/amplitude. Requires wave mode and matching serial number. Preserves enabled state unless supplied. Predicted dBm includes measured cable loss; other loads/waveforms are unsupported. Uses register readback; it does not remeasure the signal with the scope. |
| list_portsA | List USB serial ports without opening the generator. |
| list_waveformsA | List built-in waveform names/IDs and the 60 arbitrary waveform slots. |
| get_device_infoA | Read the model code, serial number, port and detected sine frequency limit. |
| get_stateA | Read mode, phase and channel settings. Omit channel to read both. |
| configure_channelA | Set channel parameters in wave mode and verify them. Unspecified settings are preserved. Output is gated during changes; its previous enable state is restored unless enabled is supplied. Limits follow the detected model. On communication/readback failure the target output is requested off. SQUARE is physically 50% duty; use PULSE for adjustable duty. |
| set_outputsA | Enable or disable outputs independently, preserving unspecified output state. |
| set_phaseA | Set inter-channel phase, normalized to 0..359.9 degrees, with readback. |
| set_modeA | Stop current actions, select the operating mode and verify it. |
| configure_sweepB | Switch to sweep mode, configure and read back limits. start=true starts the sweep. Output enable state is preserved; use set_outputs separately. |
| stop_outputsA | Stop sweep/counter/pulse/burst actions and disable both output channels. |
| read_registerA | Read a protocol register 0..89 for diagnostics or measurement/counter data. Unsupported registers may time out; this does not select a mode. |
| read_arbitraryA | Read all 2048 samples from an arbitrary waveform slot, numbered 1..60. |
| upload_arbitraryA | Overwrite slot 1..60 with 2048 integer samples (0..4095) and verify readback. This changes device waveform storage; it does not select the slot or enable output. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| JDS2800 reference | Manufacturer manual summary, protocol notes, and local hardware findings. |
| JDS2800 power calibration | Measured 50-ohm sine calibration metadata and covered frequency/power ranges. |
| JDS2800 dBm guide | Calibration conditions, measured tables, dBm examples, and uncertainty notes. |
TDQS
Scored across 17 tools
Most tools have a clear primary purpose, but there are overlapping boundaries around output control (stop_outputs vs set_outputs), power/amplitude setting (set_power vs configure_channel vs preview_power), and sweep/mode selection (configure_sweep vs set_mode). The detailed descriptions mostly resolve these, so misselection is possible but not severe.
All tools use snake_case verb_noun names (get_/set_/list_/read_/configure_/stop_/upload_/preview_) with no mixed conventions. The pattern is predictable throughout.
17 tools is slightly above the typical 3-15 range, but the complex signal-generator domain (calibration, power, modes, arbitrary waveforms, diagnostics) justifies most tools. It is not excessive but feels a bit heavy.
Core signal generation workflows are covered: ports/info/state, channel config, outputs, phase, mode/sweep, calibrated sine power, arbitrary waveform read/upload, and manual/diagnostics. Minor gaps exist for configuring pulse/burst/counter modes despite stop_outputs referencing them, but agents can handle the main use cases.