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
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
device_scanner_mcp-1.1.0.tar.gz
(28.0 kB
view details)
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 device_scanner_mcp-1.1.0.tar.gz.
File metadata
- Download URL: device_scanner_mcp-1.1.0.tar.gz
- Upload date:
- Size: 28.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
660f871b320d0d92dd423409d851f504f957763efa3010c8eaa70698feb08560
|
|
| MD5 |
bdf4134c4f631529676da028a621a415
|
|
| BLAKE2b-256 |
fd0056aba3023772f35a478ef1c1cd3812b17eeb984298f84b638394c2834c24
|
File details
Details for the file device_scanner_mcp-1.1.0-py3-none-any.whl.
File metadata
- Download URL: device_scanner_mcp-1.1.0-py3-none-any.whl
- Upload date:
- Size: 17.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7ab00af2fde5b312417e2528cddb3ee2284affb3acdbdbeff196773cd387a800
|
|
| MD5 |
dc828fa70566b1be2c7528b5b4546482
|
|
| BLAKE2b-256 |
a144dde97f4a670efbd72f3f4bdbdaac03c80cec23cee8392cdca8091376bcb8
|