mcp-server-siglent-sdm3045x
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-server-siglent-sdm3045xtake a DC voltage reading and tell me the accuracy"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-server-siglent-sdm3045x
An MCP server that lets AI assistants take measurements with a Siglent SDM3045X bench multimeter connected via USB or LAN.
Unofficial project, not affiliated with or endorsed by Siglent. Tested with an SDM3045X, firmware 5.02.01.10, over USB (Linux) and LAN.
Tools
Tool | Description |
| One reading with the function and range set on the instrument, without changing them |
| Select a function (DC/AC voltage and current, 2/4-wire resistance, capacitance, frequency, period, continuity, diode, temperature) and take one reading |
| Timestamped readings over a period (max 600 s, interval ≥ 0.1 s) with min/max/mean/stdev |
| Up to 10000 readings as fast as the instrument can (about 180/s at speed fast), with statistics |
| Model, serial number, firmware, connection and the present measurement configuration |
Every reading comes with its unit, the range used and, where the data sheet gives a single
figure, its accuracy (e.g. ±(0.06 % of reading + 8 counts) as an absolute value). Overloads
are reported as "overload": true instead of the instrument's 9.9E37.
With --allow-scpi one more tool is available:
Tool | Description |
| Send any SCPI command or query from the Remote Manual (statistics, limits, null, …) |
The raw SCPI tool is off by default because it can change any setting, including the LAN configuration.
Related MCP server: sdm-mcp
Requirements
Python ≥ 3.10 and uv
The instrument connected to the USB device port on the rear, or to the network.
Linux, USB: the kernel
usbtmcdriver makes the instrument available as/dev/usbtmc0. Give logged-in users access with a udev rule:echo 'SUBSYSTEM=="usbmisc", KERNEL=="usbtmc[0-9]*", TAG+="uaccess"' | sudo tee /etc/udev/rules.d/70-usbtmc.rules sudo udevadm control --reload && sudo udevadm triggerWindows / macOS, USB: install a VISA (NI-VISA or Keysight IO Libraries) and start the server with
--visa-backend @ivi.LAN: no extra software. The instrument needs an address in your subnet; then the server finds it by itself. On the instrument open Utility → I/O Config → LAN Settings and turn on DHCP, or enter a static IP address, subnet mask and gateway under Modify Settings (User Manual, section I/O Configuration, available on the Siglent product page). Check that the instrument's subnet matches your network: ours came with the static address 10.11.13.220, which the broadcast search does not reach. While USB is connected,
SYST:COMM:LAN:IPAD?(e.g. with thescpitool) shows the address in use.
Configuration
Claude Code
claude mcp add siglent-sdm3045x -- uvx mcp-server-siglent-sdm3045x
# fixed address instead of auto-detection:
claude mcp add siglent-sdm3045x -- uvx mcp-server-siglent-sdm3045x --resource 192.168.1.50Claude Desktop and other clients
{
"mcpServers": {
"siglent-sdm3045x": {
"command": "uvx",
"args": ["mcp-server-siglent-sdm3045x"]
}
}
}Options
Option | Environment variable | Default |
|
| auto-detect on USB, then LAN |
|
| any SDM3045X |
|
| off |
|
|
|
|
|
|
RESOURCE can be a device file (/dev/usbtmc0), an IP address or host name (VXI-11), or any
VISA resource string such as TCPIP::192.168.1.50::5025::SOCKET (raw socket) or
USB0::0xF4EC::0x1203::SDM34XXXXXXXXX::INSTR. Port 5024 is a telnet console and does not work
as a socket resource.
Auto-detection tries /dev/usbtmc* first, then Siglent instruments listed by VISA on USB, then
VXI-11 instruments in the local network (UDP broadcast to the portmapper, about 1 s). It accepts
the first one that identifies itself as an SDM3045X. With several instruments, --serial picks
one by its serial number (shown by get_device_info, on the rear label and under
Utility → System Setup → System Info). Set --resource instead if the instrument is in
another subnet, where the broadcast does not reach it; the two options exclude each other.
Measurement notes
The server cannot see how the test leads are connected. It tells the assistant to only switch to functions that match the wiring: currents need the red lead in the I jack; resistance, continuity, diode and capacitance drive a test current of up to 1 mA through the circuit.
Switching function or range remotely also changes what the front panel shows.
Once the server has sent a command, the instrument is in remote mode: the front panel shows "Immediate Trig" and its keys are locked. Press Shift to return to front panel operation. The instrument offers no remote command for this, so the server cannot release it by itself.
Above 7 A, the data sheet recommends 30 s off after 30 s on.
Accuracy figures are the one-year data sheet values (23 °C ± 5 °C, 30 min warm-up, speed slow). 2-wire resistance adds 0.2 Ω unless the leads were nulled; AC accuracy depends on the signal frequency and is given per frequency band; thermocouple figures exclude the cold junction error (up to ±3.5 °C with the built-in sensor).
Development
uv sync
uv run pytest # tests use a simulated instrument
npx @modelcontextprotocol/inspector uv run mcp-server-siglent-sdm3045x # try the tools interactivelyTo check a real instrument, connect it and run:
uv run python scripts/hardware_test.py # voltage-type functions only
uv run python scripts/hardware_test.py --with-test-current # also resistance, current, capacitance, …
uv run python scripts/hardware_test.py --reconnect # also unplug/replug USB when askedThe basic checks only use functions that put no current into the inputs. Observed instrument behaviour, including where it differs from the Remote Manual, is described in docs/protocol.md.
License
MIT
Available Tools
5 toolsburstAIdempotent
Take a series of readings as fast as the instrument can and return statistics plus all values.
Readings are paced by the instrument and have no individual timestamps. Approximate rates (50 Hz mains): dc_voltage, dc_current and resistance 4/s at speed slow, 40/s medium, 175/s fast; ac functions and temperature 4/s; frequency and period 2/s. Bursts estimated to take longer than 600 s are refused. Without function the present function and range are kept; otherwise they are set as in measure.
Args: count: Number of readings, 1 to 10000. function: Measurement function. Leads in HI/LO for voltage, resistance_2w, capacitance, frequency, period, continuity, diode and temperature; in I/LO for currents; resistance_4w also uses HI Sense/LO Sense. range: Fixed range in V, A, Ω or F; omit for autorange. dc_voltage 0.6, 6, 60, 600, 1000; ac_voltage 0.6, 6, 60, 600, 750; dc_current 0.0006, 0.006, 0.06, 0.6, 6, 10; ac_current 0.06, 0.6, 6, 10; resistance_2w/4w 600, 6e3, 60e3, 600e3, 6e6, 60e6, 100e6; capacitance 2e-9, 20e-9, 200e-9, 2e-6, 20e-6, 200e-6, 0.01. Other functions have no range. speed: Only for dc_voltage, dc_current and resistance: slow (10 PLC, default, most accurate), medium (1 PLC) or fast (0.3 PLC). sensor: Required for temperature: pt100 (RTD) or thermocouple type B, E, J, K, N, R, S or T.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | ||
| range | No | ||
| speed | No | ||
| sensor | No | ||
| function | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=false, idempotentHint=true) the description discloses substantial behavior: readings have no individual timestamps, pacing is instrument-controlled, bursts projected over 600 s are refused, and function/range may be mutated as a side effect. This is exactly the context annotations cannot carry, and the readOnlyHint=false is consistent with that state-changing behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded, then timing behavior, then an Args block that maps cleanly to the parameters. The per-function range list is long but each value is decision-relevant, so nothing is padding; only the repeated function enumerations could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description need not explain return values, and it still summarizes them. All five parameters, the timing/refusal constraint, and the state-mutation semantics are covered, leaving no gap an agent needs filled before calling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden, and it does: count bounds (1–10000), per-function lead wiring for function, explicit valid range values for every rangeable function, PLC meanings for speed, and the sensor requirement for temperature. This adds far more than the bare enums in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence states a specific verb and resource ('Take a series of readings as fast as the instrument can') and even names the return ('statistics plus all values'). It hints at the relationship to the sibling 'measure' ('set as in measure'), but never explicitly contrasts burst with sample or read, so an agent must infer the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description supplies practical constraints (600 s refusal limit, per-speed sampling rates that let you estimate duration, default function/range retention), which implicitly guide speed selection. However, it never says when to choose burst over sample, read, or measure, and names no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_device_infoBRead-onlyIdempotent
Instrument model, serial number, firmware, VISA resource and the present measurement configuration.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=false, so the safety profile and repeatability are covered by structured data. The description contributes the notable behavioral detail that the returned configuration is the 'present' one, implying a live snapshot rather than cached data. It does not state whether the call actually touches the instrument bus or whether it can fail/time out on a disconnected device.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact clause with zero filler, front-loading the most identifying fields (model, serial, firmware). It is a noun phrase rather than a sentence, which makes it slightly less self-explanatory as a standalone statement but costs no reading effort.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, a full output schema, and annotations covering safety and idempotency, the definition only needs to establish purpose – which the field list does adequately. The only missing element is a usage cue relative to the measurement siblings, a minor gap for such a simple read-only query.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The description correctly implies the tool is argument-free by framing itself purely as a retrieval of device attributes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description enumerates exactly what is retrieved: instrument model, serial number, firmware, VISA resource, and current measurement configuration. Combined with the verb in the name (get_device_info), the resource and scope are unambiguous, and the other siblings (read, measure, sample, burst) are clearly measurement operations rather than identity queries. It stops short of an explicit sentence stating the action, relying on the name for the verb.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus the measurement siblings, and no stated preconditions (e.g., whether a VISA session must already be open). An agent must infer that this is a discovery/identity call made before measurement, which is plausible but not stated anywhere.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
measureAIdempotent
Select a measurement function and take one reading.
This switches the instrument (front panel included) to the given function, with autorange unless a range is given. Returns value, unit, range used, timestamp (UTC) and, where the data sheet allows, the accuracy of the reading.
Args: function: Measurement function. Leads in HI/LO for voltage, resistance_2w, capacitance, frequency, period, continuity, diode and temperature; in I/LO for currents; resistance_4w also uses HI Sense/LO Sense. range: Fixed range in V, A, Ω or F; omit for autorange. dc_voltage 0.6, 6, 60, 600, 1000; ac_voltage 0.6, 6, 60, 600, 750; dc_current 0.0006, 0.006, 0.06, 0.6, 6, 10; ac_current 0.06, 0.6, 6, 10; resistance_2w/4w 600, 6e3, 60e3, 600e3, 6e6, 60e6, 100e6; capacitance 2e-9, 20e-9, 200e-9, 2e-6, 20e-6, 200e-6, 0.01. Other functions have no range. speed: Only for dc_voltage, dc_current and resistance: slow (10 PLC, default, most accurate), medium (1 PLC) or fast (0.3 PLC). sensor: Required for temperature: pt100 (RTD) or thermocouple type B, E, J, K, N, R, S or T.
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | ||
| speed | No | ||
| sensor | No | ||
| function | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes beyond the annotations by disclosing the real side effect: 'This switches the instrument (front panel included) to the given function,' which explains the non-read-only hint. It also lists return content and the accuracy caveat ('where the data sheet allows'), though it omits timing/duration expectations for slow vs fast modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core action and follows with a clearly labeled Args block. The range enumeration is long but each entry is operationally necessary; a little redundancy remains in restating defaults already implied by the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return-format explanation is optional, yet the description still names value, unit, range, timestamp and accuracy. All four parameters, the autorange default and the function-dependent interactions (speed validity, sensor requirement) are covered, leaving nothing needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description carries the full load and does so: per-function valid range values, units (V, A, Ω, F), the autorange default when range is omitted, PLC semantics for speed with the slow default, and the requirement that sensor is mandatory for temperature.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource combination: 'Select a measurement function and take one reading.' The phrase 'one reading' implicitly distinguishes it from burst and sample, but it never names those siblings, so the agent must infer the split.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied rather than stated: single-reading acquisition with defaults to autorange and slow speed. There is no explicit 'use burst/sample instead when you need multiple readings' routing, which matters given three nearby acquisition siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
readARead-onlyIdempotent
Take one reading with the function and range currently set on the instrument (does not change them).
Returns value, unit, range, timestamp (UTC) and, where the data sheet allows, the accuracy.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint=false, so the safety profile is covered. The description adds real value by stating it does not alter the instrument's function or range and that accuracy is only returned where the data sheet allows, but it omits behavior like settling/wait time or what happens if the instrument is mid-measurement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and its key constraint. The enumerated return list partly duplicates the existing output schema, which is the only mild waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the return-value enumeration is redundant but harmless; annotations cover safety and idempotency. What is missing is decision guidance relative to the sibling measurement tools, which matters for a tool whose name ('read') is generic.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so the baseline is 4; the description nonetheless explains the implicit input — the device's currently-set function and range — which is meaningful context for a no-arg tool. Schema coverage is 100% and there is nothing further to document.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Take one reading with the function and range currently set on the instrument', and the parenthetical clarifies the non-configuring scope. It separates itself from configuration-style siblings by implication, but never names measure/sample/burst, so the distinction is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical '(does not change them)' hints that this is the passive single-reading option, but there is no explicit statement of when to prefer it over measure, sample, or burst. Usage is implied rather than directed, leaving the agent to guess among four sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sampleAIdempotent
Record timestamped readings at a fixed interval and return statistics plus all samples.
Readings are paced by this computer. A reading takes about 0.3 s at speed slow and in most other functions, 0.6 s for frequency and period; with a shorter interval readings are taken back to back. Without function the present function and range are kept; otherwise they are set as in measure.
Args: duration_s: Recording time in seconds (max 600). interval_s: Time between readings in seconds (min 0.1). function: Measurement function. Leads in HI/LO for voltage, resistance_2w, capacitance, frequency, period, continuity, diode and temperature; in I/LO for currents; resistance_4w also uses HI Sense/LO Sense. range: Fixed range in V, A, Ω or F; omit for autorange. dc_voltage 0.6, 6, 60, 600, 1000; ac_voltage 0.6, 6, 60, 600, 750; dc_current 0.0006, 0.006, 0.06, 0.6, 6, 10; ac_current 0.06, 0.6, 6, 10; resistance_2w/4w 600, 6e3, 60e3, 600e3, 6e6, 60e6, 100e6; capacitance 2e-9, 20e-9, 200e-9, 2e-6, 20e-6, 200e-6, 0.01. Other functions have no range. speed: Only for dc_voltage, dc_current and resistance: slow (10 PLC, default, most accurate), medium (1 PLC) or fast (0.3 PLC). sensor: Required for temperature: pt100 (RTD) or thermocouple type B, E, J, K, N, R, S or T.
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | ||
| speed | No | ||
| sensor | No | ||
| function | No | ||
| duration_s | No | ||
| interval_s | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=false is consistent with the documented state change when `function` is supplied), the description discloses real behavioral traits: readings are paced by the host, per-reading timing varies by function and speed, sub-interval values are taken back to back, and omitted settings persist the instrument's current function/range. It does not state whether the call blocks for the whole duration (potentially 600 s) or what happens on error/timeout, which is a material gap for an agent scheduling this call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with a one-line summary, then behavior, then a tight Args block; the long range enumeration is verbose but justified given zero schema descriptions. A few clauses (lead naming for every function) could be trimmed for agents that never set those functions, but nothing is wasted in the core path.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description rightly avoids explaining return values and instead covers what the schema cannot: timing, state carry-over, and per-function constraints. The remaining gap is invoking-behavior detail (blocking duration, failure modes) for a tool that can run for up to 600 seconds.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description carries the full burden and does: duration_s max 600, interval_s min 0.1, function semantics including which front/rear terminals it uses, per-function legal range values, speed as PLC accuracy trade-offs, and the conditional requirement of `sensor` for temperature. This is meaning an agent could not recover from the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opening sentence gives a specific verb + resource + output shape: 'Record timestamped readings at a fixed interval and return statistics plus all samples,' which distinguishes it from a single-shot measure. It stops short of naming a sibling such as `burst` or `measure` as the alternative, so the differentiation is implied rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied through timing guidance (0.3 s vs 0.6 s per reading, back-to-back when interval is short) and the note that omitted `function` reuses the present setting, which is effectively a pointer to `measure`. However, there is no explicit 'use this instead of X when Y' routing versus `measure` or `burst`, and no stated exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v0.1.0- First observed
burst - First observed
get_device_info - First observed
measure - First observed
read - First observed
sample
TDQS
Scored across 5 tools
The tools are mostly distinct, but read vs. measure both return a single reading, and sample vs. burst both return statistics plus multiple readings. The detailed descriptions clarify the differences (preserve settings vs. change function; computer-paced timed sampling vs. instrument-paced count-based burst), so confusion should be limited.
All names use consistent lower_snake_case, with readable action-oriented terms. Most are single verbs (read, measure, sample, burst), while get_device_info uses a verb_noun form, which is a minor deviation from the otherwise uniform pattern.
Five tools is well-scoped for a multimeter server: single reading, configured measurement, timed sampling, fast burst acquisition, and device information. Each tool maps to a meaningful operation without unnecessary surface area.
The core measurement lifecycle is covered: current-settings reading, function/range selection, timed acquisition, fast burst acquisition, and device/configuration inspection. Minor gaps exist for advanced instrument features such as zero/relative, limit testing, or explicit configuration without immediately taking a reading, but standard workflows are supported.
Maintenance
Related MCP Connectors
Protocol-native energy infrastructure orchestration for AI data centers. Provides 46 MCP tools across 8 grid protocols (IEC-61850, DNP3, Modbus, OCPP, OpenADR, IEEE 2030.5, IEC 60870-5-104, ICCP) with 5 core API primitives: connect, dispatch, settle, comply, and intel. Enables AI agents to programmatically interact with substations, grid interfaces, and energy assets for real-time workload-grid coordination.
60+ units, live FX, timezones, and date arithmetic for AI agents.
- mcpOAuthcom.vibgrate
Query your team's drift, vulnerability, and upgrade data from any AI assistant. OAuth 2.1, 51 tools.
- AskMyEVOAuthcom.askmyev
Tesla data for your AI: battery, range, charging, tires, alerts, history. Controls off by default.
Related MCP Servers
- AlicenseCqualityDmaintenanceEnables AI tools to remotely control a SIGLENT SDS800X HD series oscilloscope, configure acquisition, capture waveforms, and analyze signal quality safely through high-level SCPI tools.203GPL 3.0
- FlicenseNot gradedqualityDmaintenanceMCP server to remotely control Siglent SDM3000 series digital multimeters via TCP/IP SCPI protocol, enabling measurement, configuration, and data acquisition.-
- AlicenseAqualityAmaintenanceEnables LLMs to control RIGOL oscilloscopes over SCPI via LAN or USB, including configuring channels/timebase/trigger, taking measurements, capturing waveforms and screenshots, decoding serial protocols, running FFT analysis, and controlling the built-in AFG.38MIT
- AlicenseNot gradedqualityCmaintenanceEnables MCP clients to connect to and control Siglent oscilloscopes and power supplies over SCPI/TCP using typed tool calls with input validation, safety controls, and built-in observability.1Apache 2.0