Device Scanner MCP
An MCP (Model Context Protocol) server that detects WiFi, Ethernet, and USB devices — and lets you SSH into them, deploy files, run tests, and manage services, all through Claude Code.
Works with any company/product — all config lives in .env.
Features
- 23 tools covering scanning, SSH, SCP, deployment, testing, health checks, logs, services, and more
- WiFi-hop: auto-switches WiFi to a device (no internet), runs commands, switches back
- Ethernet/USB: direct SSH — no hopping needed
- Multi-device: run commands across multiple devices in one call
- GTest parser: structured pass/fail results from test binaries
- Zero hardcoded secrets — everything in
.env
Quick Install
For Claude Code users
claude mcp add device-scanner -- uvx device-scanner-mcp
Or with pip:
pip install device-scanner-mcp
claude mcp add device-scanner -- python -m device_scanner_mcp
Setup
- Create a
.envfile in your working directory (copy from.env.example):
COMPANY_NAME=MyCompany
OFFICE_SSIDS=Office-WiFi,Guest-WiFi
DEVICE_PREFIXES=MYDEVICE_,SENSOR_
DEVICE_MYDEVICE=192.168.4.1,192.168.5.1,,root,password
DEVICE_ALIASES=Robot:MYDEVICE
- Run Claude Code and start using the tools.
Tools
Scanning
| Tool | Description |
|---|---|
scan_wifi |
List visible WiFi networks |
scan_network_adapters |
List Ethernet/WiFi/BT adapters |
scan_usb_devices |
List USB devices |
scan_all_connections |
All of the above |
Direct SSH/SCP (Ethernet & USB)
| Tool | Description |
|---|---|
device_ssh |
Run commands on device |
device_ssh_batch |
Run a script on device |
device_scp_push |
Push file to device |
device_scp_pull |
Pull file from device |
device_ping |
Check device reachability |
multi_device_ssh |
Run commands on multiple devices |
WiFi Hop (auto switches WiFi back and forth)
| Tool | Description |
|---|---|
wifi_hop_ssh |
Hop + run commands + hop back |
wifi_hop_ssh_batch |
Hop + run script + hop back |
wifi_hop_scp_push |
Hop + push file + hop back |
wifi_hop_scp_pull |
Hop + pull file + hop back |
Device Management
| Tool | Description |
|---|---|
device_deploy |
Tar + push + extract in one call |
device_health |
CPU, RAM, disk, temp, uptime |
device_reboot |
Reboot + wait for recovery |
device_run_tests |
Run test binaries, parse GTest results |
device_logs |
Fetch dmesg, syslog, journal logs |
device_service |
Start/stop/restart systemd services |
device_process_list |
List running processes |
WiFi Management
| Tool | Description |
|---|---|
wifi_switch |
Switch between office WiFi networks |
wifi_status |
Current WiFi connection info |
.env Configuration
See .env.example for full documentation. Key settings:
# Company
COMPANY_NAME=MyCompany
# Office WiFi (with internet)
OFFICE_SSIDS=Office-5G,Guest-WiFi
# Device SSID prefixes (no internet)
DEVICE_PREFIXES=ROBOT_,SENSOR_
# Device profiles: wifi_ip,eth_ip,usb_ip,user,password
DEVICE_ROBOT=192.168.4.1,192.168.5.1,192.168.6.1,root,password
# Aliases: product_name:ssid_prefix
DEVICE_ALIASES=MainRobot:ROBOT
License
MIT
Metadata
Release files for device-scanner-mcp 1.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 | |
|---|---|---|---|
| device_scanner_mcp-1.1.0.tar.gz | 28.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| device_scanner_mcp-1.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 46.0 kB
Release files / device_scanner_mcp-1.1.0.tar.gz
| Download URL | device_scanner_mcp-1.1.0.tar.gz |
|---|---|
| Size | 28.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
660f871b320d0d92dd423409d851f504f957763efa3010c8eaa70698feb08560
|
|
BLAKE2b-256 checksum How to use checksums |
fd0056aba3023772f35a478ef1c1cd3812b17eeb984298f84b638394c2834c24
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2
|
Release files / device_scanner_mcp-1.1.0-py3-none-any.whl
| Download URL | device_scanner_mcp-1.1.0-py3-none-any.whl |
|---|---|
| Size | 17.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7ab00af2fde5b312417e2528cddb3ee2284affb3acdbdbeff196773cd387a800
|
|
BLAKE2b-256 checksum How to use checksums |
a144dde97f4a670efbd72f3f4bdbdaac03c80cec23cee8392cdca8091376bcb8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2
|