Skip to main content
Glama
ossenna-hq

ltspice-mcp

by ossenna-hq

plot_waveform

Create an interactive HTML chart for any LTspice signal from a transient, DC, AC, or noise simulation, so you can visually zoom, pan, and inspect waveforms instead of reading raw numeric data.

Instructions

Render an INTERACTIVE chart of one or more signals FOR A HUMAN to look at (zoom/pan/hover) — the co-design complement to the numeric tools. It returns NO data values to the model; it produces a picture.

Picks the chart from the run type: transient (V/I vs time), DC sweep, AC Bode (stacked magnitude-dB + phase-deg vs log frequency), noise (vs log frequency); a .step / Monte-Carlo run overlays every step as a labelled trace (or pass step for one). Full fidelity by default, with a min/max-preserving downsample above max_points (spikes survive; surfaced as a fact). Writes a self-contained HTML file and returns its path — into out_dir if given, else a '.ltspice-mcp/plots/' sidecar next to the circuit (for a job_id) or next to the raw (for a raw_file); on a host that supports MCP Apps the chart is also embedded as an interactive in-chat widget, otherwise it opens in your local browser.

Sibling egress, don't confuse: for numbers in your context use get_waveform (decimated); for every sample on disk use export_waveform (CSV); for a scalar use signal_stats/bode_metrics. This tool is for looking, not measuring.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
openNoOpen the written HTML in the local browser. Applies to terminal clients only — ignored when the chart is delivered as an in-chat widget (MCP Apps host). Set false to only write the file.
stepNoFor a .step run: omit to overlay ALL steps as separate traces, or give a 0-based step index to plot just that one.
t_endNoWindow end in SPICE notation.
formatNoResponse format: 'json' for structured data, 'text' for human-readable
job_idNoPlot a specific run of a completed sweep/MC (or single) job instead of a raw_file path; pair with ``run_index``.
out_dirNoDirectory to write the HTML into (resolved under an allowed path; created if needed). Default: a '.ltspice-mcp/plots/' sidecar next to the circuit for a job_id, or next to the raw for a raw_file.
signalsNoTrace names to plot (e.g. ['V(out)', 'I(R1)']) or 'all' for every non-axis trace.all
t_startNoWindow start in SPICE notation (e.g. '1m', '1k'); bounds the plotted range.
annotateNoAnnotate an AC/Bode plot with detected corner markers (vertical lines) + an out-of-phase-zero / delay flag, from ac_structure. AC plots only; ignored for transient/DC.
raw_fileNoPath to .raw result file. Pass this OR ``job_id`` (a job run), not both.
run_indexNo0-based run to read when ``job_id`` is given (default 0).
max_pointsNoPer-series point budget before a min/max-preserving downsample engages (default 100000). Full fidelity below this; spikes are preserved when it engages.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
pathNo
openedNo
openerNo
panelsNo
n_stepsNo
signalsNo
deliveryNo
max_pointsNo
downsampledNo
window_usedNo
observationsNo
series_countNo
analysis_typeNo
steps_plottedNo
points_per_seriesNo
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations present (readOnlyHint false, openWorldHint true, destructiveHint false), the description goes well beyond the bar. It discloses the min/max-preserving downsample behavior above max_points ('spikes survive; surfaced as a fact'), the exact output path resolution logic (out_dir, sidecar next to circuit/raw), the MCP Apps in-chat widget vs terminal browser dual behavior, and that it produces a picture, not data. No contradiction with annotations — the file-writing disclosure is consistent with readOnlyHint: false and openWorldHint: true.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the single most important fact (interactive, for humans, no data to model), then proceeds logically through chart selection, step handling, downsampling, output paths, widget/browser delivery, and ends with sibling differentiation. For a 12-parameter tool with run-type-dependent behavior, every sentence earns its place; nothing is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity — 12 parameters, run-type-dependent chart selection, step/Monte-Carlo overlay, dual output delivery modes — the description covers all major behavioral axes: rendering, output artifact, path resolution, fidelity/downsampling, and delivery channel. An output schema exists, so return-value explanation is not required. The description is complete for an agent to invoke and consume this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3; the description adds genuine meaning beyond the schema by describing parameter interactions: how `step` selects one trace vs overlaying all steps, the behavior of `max_points` triggering downsampling, and the `out_dir` fallback chain (next to circuit for job_id, next to raw for raw_file). It does not walk through every parameter, but the schema already handles that, so the added relational semantics justify a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening line is exemplary: 'Render an INTERACTIVE chart of one or more signals FOR A HUMAN to look at' — a specific verb (render) + resource (chart of signals) + explicit purpose. It immediately distinguishes from siblings by framing itself as 'the co-design complement to the numeric tools' and stating it 'returns NO data values.' This fully differentiates plot_waveform from the sibling measurement tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Contains an explicit dedicated section, 'Sibling egress, don't confuse,' that names concrete alternatives with their exact roles: get_waveform (decimated), export_waveform (CSV), signal_stats/bode_metrics (scalars), culminating in 'This tool is for looking, not measuring.' Also explains when it auto-selects chart type by run type, and when to pass `step` for .step runs. This is textbook when-to-use vs. when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

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/ossenna-hq/MCP_LTSpice'

If you have feedback or need assistance with the MCP directory API, please join our Discord server