WE Multitool DUT MCP
multitool-mcp is a dependency-free Model Context Protocol server for inspecting and debugging a device under test (DUT) through a Wise Electronics WE Multitool.
It runs over standard input/output and bridges the Multitool's JSON-over-WebSocket API. It exposes bounded MCP tools for GPIO, I2C, SPI, UART, PWM, and GPIO ownership.
Requirements
- Python 3.11 or later
- A WE Multitool reachable over WebSocket
Install
Install from PyPI once published:
python -m pip install multitool-mcp
For development from a clone:
python -m pip install -e .
Configure an MCP client
Run the installed command:
[mcp_servers.we_multitool_dut]
command = "multitool-mcp"
env_vars = ["WE_MULTITOOL_URL", "WE_MULTITOOL_TIMEOUT_SECONDS"]
startup_timeout_sec = 10
tool_timeout_sec = 35
default_tools_approval_mode = "prompt"
By default, the server connects to ws://we-multitool.local/ws. Set these environment variables before starting the MCP client to change that:
WE_MULTITOOL_URL=ws://10.0.0.1/ws
WE_MULTITOOL_TIMEOUT_SECONDS=8
On PowerShell:
$env:WE_MULTITOOL_URL = "ws://10.0.0.1/ws"
$env:WE_MULTITOOL_TIMEOUT_SECONDS = "8"
Safety and firmware behavior
Read pins_get before configuring pins, and verify wiring, voltage, bus role, and DUT limits before driving signals.
- Commands are serialized because firmware responses do not carry request IDs.
- UART data received while another command awaits a response is buffered.
- The
gpio_setfirmware command has no acknowledgement;gpio_writereports it as dispatched but unverified. - The firmware tracks one active WebSocket response socket. Do not use the browser UI and MCP bridge concurrently.
Development
python -m pip install -e ".[test]"
python -m pytest
The runtime has no third-party dependencies. The optional test extra installs pytest.
License
Licensed under the GNU General Public License, version 3 or later (GPL-3.0-or-later). See LICENSE.
Release files for multitool-mcp 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| multitool_mcp-0.1.0.tar.gz | 12.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| multitool_mcp-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 24.9 kB
Release files / multitool_mcp-0.1.0.tar.gz
| Download URL | multitool_mcp-0.1.0.tar.gz |
|---|---|
| Size | 12.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
11e694e3573a2e50e324169de5fd6a52bb4ae36f96946709a41ffd4be932de18
|
|
BLAKE2b-256 checksum How to use checksums |
91d042d3a3dd9f3d858ffd319b827f65c5389ef4add258f3a0e88977475d225d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.
Transparency logRelease files / multitool_mcp-0.1.0-py3-none-any.whl
| Download URL | multitool_mcp-0.1.0-py3-none-any.whl |
|---|---|
| Size | 12.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
444b86e685061f47b44d2fcaf067d522f6aac52e1a1fcef6747447c9e028d6dc
|
|
BLAKE2b-256 checksum How to use checksums |
92c197f6b96a481f58e39aa2fef72927bdc5e6f065f0c4c50fecd5a9b848fa53
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.
Transparency log