Skip to main content

MCP server for the Wisent Wire hardware testing platform — drive power, GPIO, UART/RS485/CAN, firmware flashing, and GDB debug from an AI agent

Project description

wisent-wire-mcp

MCP (Model Context Protocol) server for the Wisent Wire hardware testing platform. Lets AI assistants interact with WisentWire devices — power control, firmware flashing & flasher catalog, UART / RS485 / CAN buses, GPIO control & telemetry, GDB debug sessions, device registry, reservations, and protocol frame definitions.

Installation

Requires Python 3.10+. Install with pipx — it puts the MCP server in an isolated environment and adds the wisent-wire-mcp binary to your PATH.

1. Install pipx (one-time)

# macOS
brew install pipx
pipx ensurepath

# Linux / WSL
python3 -m pip install --user pipx
python3 -m pipx ensurepath

Open a new terminal so the updated PATH is picked up.

2. Install the MCP server

pipx install wisent-wire-mcp

Verify:

which wisent-wire-mcp         # ~/.local/bin/wisent-wire-mcp (or similar)

3. Upgrade / uninstall

pipx upgrade   wisent-wire-mcp
pipx uninstall wisent-wire-mcp

Configuration

.mcp.json location

Claude Code reads MCP servers from .mcp.json. Two scopes:

Scope Path When to use
Project <repo-root>/.mcp.json Shared with the project (checked into VCS or per-repo)
User ~/.claude.json under the mcpServers key Available in every Claude Code session for this user

Claude Desktop uses a separate file:

Platform Path
macOS ~/Library/Application Support/Claude/claude_desktop_config.json
Windows %APPDATA%\Claude\claude_desktop_config.json
Linux ~/.config/Claude/claude_desktop_config.json

Example .mcp.json

{
  "mcpServers": {
    "wisent-wire": {
      "command": "wisent-wire-mcp",
      "env": {
        "WISENT_WIRE_URL": "https://app.wisent-wire.com",
        "WISENT_WIRE_EMAIL": "user@company.com",
        "WISENT_WIRE_PASSWORD": "..."
      }
    }
  }
}

After editing .mcp.json, restart Claude Code (or reload the window) for the server to be picked up.

Environment variables

Variable Required Description
WISENT_WIRE_URL No Explicit API base URL. Overrides WISENT_WIRE_ENV.
WISENT_WIRE_ENV No Target environment: prod or int. inthttps://int.wisent-wire.com
WISENT_WIRE_EMAIL Yes* Account email
WISENT_WIRE_PASSWORD Yes* Account password
WISENT_WIRE_TOKEN Yes* API token (alternative to email/password)

* Provide either TOKEN or EMAIL + PASSWORD.

Choosing a backend. Precedence is WISENT_WIRE_URLWISENT_WIRE_ENV → production default (https://app.wisent-wire.com). Set neither and you get production. To point at integration, no URL needed:

"env": {
  "WISENT_WIRE_ENV": "int",
  "WISENT_WIRE_TOKEN": "..."
}

Available tools

47 tools, grouped below.

System & Device

Tool Description
get_backend_version Get the backend version
list_wisentwires List all WisentWire devices
get_ww_status Get current device status
check_ww_available Check if a device is available

Device Registry

Tool Description
list_registered_devices List registered devices, optionally filtered by label
list_connected_devices Scan a WisentWire and list physically connected devices
register_device Register a device against a fingerprint

Power & Telemetry

Tool Description
power_on / power_off Control power supply
update_power_supply Change voltage / current limit while powered
get_telemetry Recent voltage/current readings
set_power_supply_telemetry Enable or disable power telemetry streaming

GPIO

Tool Description
get_gpio_shadow Current GPIO pin states
get_gpio_names Pin name mapping for a device
set_gpio_output Drive an output pin high or low
set_gpio_input_pull_policy Set an input pin's pull policy
set_gpio_telemetry Enable or disable GPIO telemetry streaming
get_gpio_telemetry Recent GPIO telemetry readings

Firmware & Flashing

Tool Description
list_firmware List firmware binaries
upload_firmware Upload a firmware binary
delete_firmware Delete a firmware binary
flash_firmware Flash firmware to a device (msp430/openocd/st-link/j-link)
list_launch_commands List available flasher launch commands
get_flash_status Check a flash job's status by job id
get_flasher_logs Get flasher debug logs

Debug

Tool Description
get_debug_state Get the current GDB debug session state
get_debug_job_status Get a debug job's status by id
stop_debug Stop the active debug session

UART & Buses

Tool Description
send_uart_command Send a text command over UART
send_uart_hex Send raw hex bytes over UART
send_rs485_hex Send raw hex bytes over RS485
send_can_frame Send a CAN frame
get_uart_log Get TX/RX message history
get_bus_log Get TX/RX message history for a given bus (uart/rs485/can)

Frame Definitions

Tool Description
list_frame_definitions List all frame definitions
get_frame_definition Get a frame definition with fields
create_frame_definition Create a new frame definition
update_frame_definition Update a frame definition
delete_frame_definition Delete a frame definition

Commands

Tool Description
list_commands List commands for a frame definition
create_command Create a command
update_command Update a command
delete_command Delete a command

Reservations

Tool Description
list_reservations List reservations
get_reservation Get a single reservation
create_reservation Create a reservation
delete_reservation Delete a reservation

Development

pip install -e ".[dev]"
pytest tests/ -v
ruff check src/ tests/

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wisent_wire_mcp-0.9.0rc1.tar.gz (27.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wisent_wire_mcp-0.9.0rc1-py3-none-any.whl (21.9 kB view details)

Uploaded Python 3

File details

Details for the file wisent_wire_mcp-0.9.0rc1.tar.gz.

File metadata

  • Download URL: wisent_wire_mcp-0.9.0rc1.tar.gz
  • Upload date:
  • Size: 27.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for wisent_wire_mcp-0.9.0rc1.tar.gz
Algorithm Hash digest
SHA256 0cb69c396736e17fe1af4fb432f751d9004f0a8010a01095806cd359352f16fd
MD5 051ececa05ca6783d5952e713b1e90dd
BLAKE2b-256 1205dd05e9570f7f901f6ce09fc802581019b720b4f0bf0bab92346ced2fe11a

See more details on using hashes here.

File details

Details for the file wisent_wire_mcp-0.9.0rc1-py3-none-any.whl.

File metadata

File hashes

Hashes for wisent_wire_mcp-0.9.0rc1-py3-none-any.whl
Algorithm Hash digest
SHA256 905921b650f40d17687aabf6c31245a9bf30a64b54c1206a1df7dff61cc56ecf
MD5 ba5707b9632895f4feaa702cb05f74cd
BLAKE2b-256 242f0974da6547edf77eca9c52cf677a3b0ba72b08d4256f7d64792d219640aa

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page