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.0rc2.tar.gz (27.8 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.0rc2-py3-none-any.whl (21.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: wisent_wire_mcp-0.9.0rc2.tar.gz
  • Upload date:
  • Size: 27.8 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.0rc2.tar.gz
Algorithm Hash digest
SHA256 cf3587c38d0c849f907baa3297c13fbeb8b9bfb6f87a7387d528e42cac49105a
MD5 059ff00c770465d32bea89534dc703bc
BLAKE2b-256 b5caeb80e4fcedfdab5a107b216dac911dfd8274b8d7c0de429d74d8650df050

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wisent_wire_mcp-0.9.0rc2-py3-none-any.whl
Algorithm Hash digest
SHA256 54634ebd493a0ea2f242ba2df18b29fb0e26d0203a2abdf8c7e1adc2e9902c9e
MD5 b9ecacad895d2854767585c1c43ec470
BLAKE2b-256 17592c4b897dbc1b266b7049c7e8b6aa9284e736be728f891427c987d61bbfd8

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