MCP server for the Wisent Wire hardware testing platform
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, and UART communication.
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://int.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 | API base URL (default: https://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) |
WISENT_WIRE_LOCAL |
No | Set to 1 for local development mode |
* Provide either TOKEN or EMAIL + PASSWORD.
Available tools
Device
| Tool | Description |
|---|---|
list_wisentwires |
List all WisentWire devices |
get_ww_status |
Get current device status |
check_ww_available |
Check if a device is available |
power_on / power_off |
Control power supply |
get_telemetry |
Recent voltage/current readings |
Work Setup
| Tool | Description |
|---|---|
get_work_setup |
Get a device's work setup |
create_work_setup |
Create a work setup |
update_work_setup |
Update a work setup |
delete_work_setup |
Delete a work setup |
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) |
get_flash_status |
Check flash job status |
get_flasher_logs |
Get flasher debug logs |
UART
| Tool | Description |
|---|---|
send_uart_command |
Send a text command over UART |
send_uart_hex |
Send raw hex bytes over UART |
get_uart_log |
Get TX/RX message history |
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wisent_wire_mcp-0.5.0.tar.gz.
File metadata
- Download URL: wisent_wire_mcp-0.5.0.tar.gz
- Upload date:
- Size: 18.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
69a12efb98244d7babc1b4b4cd5b235c91393984972e2a3852bc32fe0e2f2b7f
|
|
| MD5 |
050d46c38fb6190f68aa58c38f54d2be
|
|
| BLAKE2b-256 |
17e3b11454110bd4d0df0124869c9f1de4bef68c8e60f9c39210ae62bd7d86ed
|
File details
Details for the file wisent_wire_mcp-0.5.0-py3-none-any.whl.
File metadata
- Download URL: wisent_wire_mcp-0.5.0-py3-none-any.whl
- Upload date:
- Size: 16.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
61da0e08a131f9612f7113b32e06cbd267786e242dec1de53e53d6ca68f16b87
|
|
| MD5 |
a0107f8d4c8af0b6305cad9aeb891405
|
|
| BLAKE2b-256 |
ba63869dd843f39dbda310b58fbdb53ae40350cff9dbbc561b2731ab95e933bd
|