Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Measurements with a Siglent SDM3045X bench multimeter via USB or LAN (unofficial)
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
SDM_RESOURCE, SDM_SERIAL, SDM_ALLOW_SCPI, SDM_VISA_BACKENDต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"siglent-sdm3045x": {
"command": "uvx",
"args": [
"mcp-server-siglent-sdm3045x"
],
"env": {
"SDM_RESOURCE": "ใส่ค่าของคุณ",
"SDM_SERIAL": "ใส่ค่าของคุณ",
"SDM_ALLOW_SCPI": "ใส่ค่าของคุณ",
"SDM_VISA_BACKEND": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add siglent-sdm3045x --env SDM_RESOURCE='ใส่ค่าของคุณ' --env SDM_SERIAL='ใส่ค่าของคุณ' --env SDM_ALLOW_SCPI='ใส่ค่าของคุณ' --env SDM_VISA_BACKEND='ใส่ค่าของคุณ' -- uvx mcp-server-siglent-sdm3045xเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"siglent-sdm3045x": {
"command": "uvx",
"args": [
"mcp-server-siglent-sdm3045x"
],
"env": {
"SDM_RESOURCE": "ใส่ค่าของคุณ",
"SDM_SERIAL": "ใส่ค่าของคุณ",
"SDM_ALLOW_SCPI": "ใส่ค่าของคุณ",
"SDM_VISA_BACKEND": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"siglent-sdm3045x": {
"type": "stdio",
"command": "uvx",
"args": [
"mcp-server-siglent-sdm3045x"
],
"env": {
"SDM_RESOURCE": "ใส่ค่าของคุณ",
"SDM_SERIAL": "ใส่ค่าของคุณ",
"SDM_ALLOW_SCPI": "ใส่ค่าของคุณ",
"SDM_VISA_BACKEND": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
SDM_RESOURCE envSDM_SERIAL envSDM_ALLOW_SCPI envSDM_VISA_BACKEND envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 9 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub shaag7967 ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.1.1) เข้า registry 10 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Python (uv) ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, Systemdox
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Your architecture in your agents' context: checks, specs, ADRs and docs over MCP, at write time.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
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.
| Tool | Description |
|---|---|
read | One reading with the function and range set on the instrument, keeping them |
measure | Select a function (DC/AC voltage and current, 2/4-wire resistance, capacitance, frequency, period, continuity, diode, temperature) and take one reading |
sample | Timestamped readings over a period (max 600 s, interval ≥ 0.1 s) with min/max/mean/stdev |
burst | Up to 10000 readings as fast as the instrument can (about 180/s at speed fast), with statistics |
get_device_info | 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 |
|---|---|
scpi | 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.
usbtmc driver 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 trigger
--visa-backend @ivi.SYST:COMM:LAN:IPAD? (e.g. with the scpi tool) shows the address in use.claude mcp add siglent-sdm3045x -- uvx mcp-server-siglent-sdm3045x
claude mcp add siglent-sdm3045x -- uvx mcp-server-siglent-sdm3045x --resource 192.168.1.50
{
"mcpServers": { "siglent-sdm3045x": { "command": "uvx", "args": ["mcp-server-siglent-sdm3045x"] } } }
| Option | Environment variable | Default |
|---|---|---|
--resource RESOURCE | SDM_RESOURCE | auto-detect on USB, then LAN |
--serial SERIAL | SDM_SERIAL | any SDM3045X |
--allow-scpi | SDM_ALLOW_SCPI=1 | off |
--visa-backend BACKEND | SDM_VISA_BACKEND | @py (pyvisa-py) |
--log-level LEVEL | SDM_LOG_LEVEL | WARNING (or DEBUG, INFO, ERROR, CRITICAL) |
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 (leaving out those already asked through /dev/usbtmc*, since pyvisa-py would take them away from the kernel driver), then VXI-11 instruments in every network this computer is connected to (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.
uv sync
uv run pytest # tests use a simulated instrument npx @modelcontextprotocol/inspector uv run mcp-server-siglent-sdm3045x # try the tools interactively
To 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 asked
The 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.
MIT