
Keithley SourceMeter SMU
io.github.K-Dense-AI由 GitHub 帳號 K-Dense-AI 發布v0.1.2更新於 Oct 28, 2026
MCP server for Keithley SourceMeter SMUs (2400 series SCPI, 2450 family SCPI, 2600B TSP).
發布方自己的服務:Source
概覽
讓 AI 助理驅動 Keithley SourceMeter SMU 的 MCP 伺服器:輸出源電壓或電流、量測並執行具安全限值的 IV 掃描。
- 可以做什麼
- 設定源功能、位準、順從限值、檔位與量測速度,並在兩線/四線感測間切換
- 開啟或關閉輸出、變更執行中源的位準,以及斷電重啟後重新連線
- 進行單次源-量測讀值,回傳電壓、電流、功率與順從狀態
- 執行階梯式 IV 掃描(線性、對數、雙向),結束時必定關閉輸出,回傳曲線、線性擬合及可選 CSV
- 檢視連線資訊、裝置身分、狀態與原始命令日誌以便除錯
- 適用情境
- 適合在實驗室或測試台上由助理操作 Keithley SMU 進行元件特性量測:二極體、LED、憶阻器、光電二極體的 IV 曲線、電阻量測或腳本化量測流程。也可先以內建模擬器在沒有硬體的情況下試用。
- 執行需求
- 以 Python 套件(uvx 或 pip)透過 stdio 在本機執行,僅限桌機。需透過 GPIB、USB(USBTMC)、乙太網路或 RS-232 連上儀器,GPIB/USBTMC 需 VISA 函式庫。以 LABMCP_ADDRESS 指定儀器位址;LABMCP_LIMITS、LABMCP_READ_ONLY、LABMCP_SIMULATE 為選用。2450 系列須設為 SCPI 命令集模式。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Keithley SourceMeter SMU,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
Keithley SourceMeter SMU — MCP Server
Let an AI agent source voltage or current with a compliance limit, measure V and I, and run bounded IV sweeps (linear, log, dual) on Keithley (Tektronix) SourceMeter SMUs. Every sweep ends with the output switched off, even when something goes wrong. The server speaks all three Keithley remote dialects: 2400-series SCPI, 2450-family SCPI, and 2600B TSP.
Try it without hardware
The simulated DUT is a resistor (1 kΩ by default) or a 1N4148-like diode (Shockley equation, I_s = 2.52 nA, n = 1.752, R_s = 0.568 Ω). Compliance clamping behaves as on a real SMU.
Connect your SMU
- Instrument side.
- 2400 series: GPIB (default address 24) or RS-232. For RS-232 set MENU > COMMUNICATION > RS-232: 9600 baud, 8 data bits, no parity, TERMINATOR LF, no flow control.
- 2450 / 2460 / 2461 / 2470: use the SCPI command set (MENU > System > Settings > Command Set > SCPI, then reboot). If the instrument is in TSP mode the server stops with instructions. In
SCPI2400emulation mode it is driven with the 2400 dialect. Above ±21 V the 2450 needs its safety interlock closed. - 2600B: works as shipped (TSP). Leave
localnode.promptsdisabled (the default); prompts would be mixed into replies.
- Find the address:
uvx labmcp ports(orpython -m pyvisa info). GPIB and USBTMC need a VISA library with GPIB support. NI-VISA works everywhere; pyvisa-py covers USBTMC/LAN (and GPIB withgpib-ctypes/linux-gpib). - Test the connection:
The dialect is detected from
*IDN?(and*LANG?on the 2450 family). Force it with--option dialect=2400|2450|2600.
Add to your MCP client
Claude Code
Claude Desktop / Cursor / Windsurf (claude_desktop_config.json, .cursor/mcp.json, …)
Add --read-only to allow status and measurements but block configuration, output-on and sweeps (output_off stays available). For other clients, generate the snippet with uvx labmcp config keithley-smu --address <resource> --client vscode (also cursor, codex, claude-code).
Tools
get_connection_info, get_command_log and reconnect are built into every LabMCP server.
Safety limits
The limits are checked before anything is sent: by configure_source and set_source_level, by run_iv_sweep (on the largest |start|, |stop|), and by output_on, which reads the programmed level and compliance back from the instrument. A level set on the front panel is therefore caught too. Requests beyond the model's own maximum (e.g. 40 V on a 2602B) are also refused. Override at launch: --limit max_voltage_v=60 --limit max_power_w=10. Tighten the defaults for fragile DUTs.
Example prompts
- "Measure the IV curve of this LED from 0 to 3 V in 61 steps with a 20 mA compliance, then tell me the turn-on voltage at 1 mA."
- "Source 1 mA through the sample in 4-wire mode and give me its resistance; then turn the output off."
- "Run a dual sweep from −1 V to +1 V on the memristor with 1 mA compliance and 0.1 s per point, and save it to ~/data/memristor_run3.csv."
- "Do a log current sweep from 1 nA to 10 mA on the photodiode with a 2 V limit and fit the ideality factor."
- "What is the SMU doing right now? If the output is on, turn it off."
Notes
-
Simple, verifiable commands. Sweeps are stepped loops: set the level, wait
delay_s, take one reading, check compliance. Built-in instrument sweeps and trigger models are not used, so every point shows up inget_command_log. The output is switched off in atry/finallyat the end of every sweep. Callingoutput_offwhile a sweep runs (even while it is still configuring) sets an abort flag and switches the output off at once; the sweep then stops without switching the output on again and reportsaborted: true. -
Sweep duration. Besides
max_sweep_duration_s, one sweep can take at most 1740 s (the tool's 30-minute timeout minus a margin): longer estimates are refused, and a sweep that runs slower than estimated stops early with the output off and returns the points measured so far (stop_reasonsays why). -
save_pathmust end in.csvand must not exist yet (an existing file is never overwritten); missing folders are created. It is checked before the output is switched on. -
Overflow readings (the SMU's +9.9E37 marker) are returned as
nullin the sweep curve, counted inoverflow_pointsand left out of the statistics and the fit;measurereports them as an error. -
What is measured.
- 2400: concurrent V and I (
:SENS:FUNC:CONC ON,:SENS:FUNC "VOLT","CURR"), read with:READ?(:FORM:ELEM VOLT,CURR,STAT). Compliance comes from status-word bit 3. - 2450: the measure function is the non-sourced quantity, source readback is on, and
:READ? "defbuffer1",SOUR,READreturns both. Compliance comes from:SOUR:VOLT:ILIM:TRIP?/:SOUR:CURR:VLIM:TRIP?. - 2600B:
print(smuX.measure.iv())andprint(smuX.source.compliance).
In compliance, the reported V and I are the measured values, not the programmed level.
- 2400: concurrent V and I (
-
The 2400's
:MEAS?turns the output on by itself (manual p. 18-72), so it is never used.measurerefuses to run when the output is off. -
Reconfiguration happens with the output off.
configure_sourceandset_4wirerefuse while the output is on. Useset_source_level(a hazard tool) to change a running source. -
Output-off state (normal / zero / high-Z / guard) is left as configured on the instrument. With the default normal state, a current source turned off becomes a 0 V source. For batteries, charged capacitors or solar cells, select high-impedance first (2450 manual p. 6-40).
-
The 2460/2461/2470 maxima are not built in (their manuals weren't reviewed). The safety limits still apply, and the instrument rejects anything beyond its range. The 2430 pulse mode and the 2600B's
limitppower compliance are not used. -
Timing: NPLC sets the integration time (1 PLC = 16.7 ms at 60 Hz, 20 ms at 50 Hz). Source auto-delay stays at the instrument default (on), and
delay_sadds settling time per point. -
Simulator error replies follow the manuals' error lists (
+802 "Not permitted with OUTPUT off",-222,-113; 2600B1101 "Parameter too big",-285/-286). The exact message wording on real firmware may differ.
Hardware verification
來源:servers/physics/keithley-smu/README.md,提交 46545ea
工具
0版本歷史
2- v0.1.2最新Sep 27, 2026
- v0.1.0Sep 26, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分
其他 Source 整合
Source
app.source官方發布者
Source 提供的遠端 MCP 端點,讓助理存取已連接 Source 的網站的行銷歸因與分析資料。

ArxSource
由 GitHub 帳號 nicolaiprodromov 發布
本機 MCP 伺服器,讓助理檢索 arXiv 論文、依章節或 LaTeX 原文閱讀、追蹤引用,並找出論文對應的程式碼。
SourceMed
io.sourcemed
SourceMed 為助理提供經來源核實的臨床證據庫:可提出證據問題、瀏覽書架並閱讀附引用的卡片。

Spree Commerce: open-source B2B and marketplace ecommerce
由 GitHub 帳號 spree 發布
Spree 的 MCP 伺服器讓 AI 助理以自然語言管理 Spree 商店的商品目錄、回答報表問題並完成商店設定。

PlushSource
由 GitHub 帳號 quickman924 發布
本機 MCP 伺服器,內建訂製絨毛玩具製造商名錄,讓助理搜尋、篩選、比較並引用廠商條目。