Devsignal
FreeNot checkedSignal generator control for the embedded bench — CLI + MCP server for AI agents (Siglent SDG series)
About
Signal generator control for the embedded bench — CLI + MCP server for AI agents (Siglent SDG series)
README
Agent-friendly signal generator control for the embedded bench, built for the Agentic Firmware Workbench. Configure waveforms and switch outputs on Siglent SDG-series generators — from the command line or from an AI agent via MCP.
Sibling of devpower (USB power control). Typical use: an agent testing an ADC driver or input-capture firmware needs a known stimulus — it sets a 1 kHz sine at 2 Vpp, enables the output, runs the test, and switches the output off.
Supported hardware
Built and verified against the SDG2042X; the C{n}:BSWV / C{n}:OUTP
SCPI dialect is shared across the Siglent SDG family (SDG1000X/2000X/6000X),
so other models are expected to work.
Transport is PyVISA with the pure-Python pyvisa-py backend:
- USB (USBTMC): plug in and go — needs
libusb(brew install libusb/ distro package). - LAN: pass
--resource "TCPIP::<ip>::INSTR"— no drivers needed.
Install
pip install .
Requires Python 3.10+.
CLI
devsignal list # find instruments (USB)
devsignal idn # identity
devsignal status # both channels: wave + output
devsignal wave 1 sine --freq 1000 --amp 3.3 # configure CH1
devsignal wave 1 square --freq 1e6 --amp 3.3 --duty 25
devsignal output 1 on --load HZ # enable CH1 into Hi-Z
devsignal output 1 off
devsignal raw "C1:BSWV?" # raw SCPI escape hatch
devsignal --json status # machine-readable
MCP server
devsignal-mcp runs an MCP server over stdio exposing list_instruments,
get_status, set_wave, set_output, and scpi (raw escape hatch), with
agent-facing safety guidance baked into the tool descriptions.
Register with Claude Code:
claude mcp add --scope user devsignal devsignal-mcp
Safety notes
- Load setting scales the delivered voltage. A 50 Ω setting driving a
high-impedance input delivers twice the programmed amplitude. Use
--load HZwhen driving MCU/logic inputs. - Session limits (human-in-the-loop): on the first amplitude-affecting
MCP call of a session, the user is prompted (MCP elicitation) for the
session's max amplitude; agent requests above it require explicit user
approval, and raw
scpiamplitude changes are gated the same way. Hosts without elicitation support fail safe (over-limit requests are refused). - Hard ceiling: set
DEVSIGNAL_MAX_VPP(e.g.3.3) in the MCP server's environment and nothing above it is accepted - not even with in-session user approval. - Configure the waveform first, verify with
status, then enable the output.
Development
pip install -e ".[dev]"
pytest
The test suite runs against a fake VISA layer — no instrument required.
License
MIT
Installing Devsignal
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/JacobBeningo/devsignalFAQ
Is Devsignal MCP free?
Yes, Devsignal MCP is free — one-click install via Unyly at no cost.
Does Devsignal need an API key?
No, Devsignal runs without API keys or environment variables.
Is Devsignal hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Devsignal in Claude Desktop, Claude Code or Cursor?
Open Devsignal on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Fetch
Web content fetching and conversion for efficient LLM usage.
AWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
by modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
by xuzexin-hzCompare Devsignal with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All ai MCPs
