Power Switch Pro Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Power Switch Pro Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
An MCP (Model Context Protocol) server that provides tools for controlling and monitoring Digital Loggers Power Switch Pro devices. This allows AI assistants and other MCP clients to interact with your power switch hardware.
git clone https://github.com/bryankemp/power-switch-pro-mcp.git
cd power-switch-pro-mcp
pip install .The MCP server is configured via environment variables:
POWER_SWITCH_HOST - IP address or hostname of your device (required)POWER_SWITCH_PASSWORD - Admin password (required)POWER_SWITCH_USERNAME - Username (default: "admin")POWER_SWITCH_USE_HTTPS - Use HTTPS instead of HTTP (default: "false")Add to your Warp MCP settings configuration file:
{
"mcpServers": {
"power-switch-pro": {
"command": "python",
"args": ["-m", "power_switch_pro_mcp.server"],
"env": {
"POWER_SWITCH_HOST": "192.168.0.100",
"POWER_SWITCH_PASSWORD": "your-password",
"POWER_SWITCH_USERNAME": "admin",
"POWER_SWITCH_USE_HTTPS": "false"
}
}
}
}Add to your Claude Desktop MCP settings (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"power-switch-pro": {
"command": "python",
"args": ["-m", "power_switch_pro_mcp.server"],
"env": {
"POWER_SWITCH_HOST": "192.168.0.100",
"POWER_SWITCH_PASSWORD": "your-password",
"POWER_SWITCH_USERNAME": "admin"
}
}
}
}Note: POWER_SWITCH_USERNAME is optional and defaults to "admin" if not specified.
Refer to your MCP client's documentation for how to configure external MCP servers. You'll need to:
python -m power_switch_pro_mcp.serverThe server exposes the following MCP tools:
outlet_id (0-7)outlet_id (0-7)outlet_id (0-7)action ("on", "off", or "cycle"), optional outlet_ids arrayoutlet_id (0-7)outlet_id (0-7)outlet_id (0-7), name (string, max 16 chars)Once configured, you can use natural language with your MCP client:
"Turn on outlet 3"
"What's the current power consumption?"
"Cycle the server outlet"
"Show me all outlet states"
"Rename outlet 0 to 'Lab Server'"
"Turn off all outlets"For local MCP clients like Claude Desktop or Warp:
# Set environment variables
export POWER_SWITCH_HOST="192.168.0.100"
export POWER_SWITCH_PASSWORD="your-password"
export POWER_SWITCH_USERNAME="admin" # Optional, defaults to "admin"
# Run the stdio server
python -m power_switch_pro_mcp.serverThe server will start and wait for MCP protocol messages on stdin/stdout.
For remote access using the MCP streamable-http transport:
# Set environment variables
export POWER_SWITCH_HOST="192.168.0.100"
export POWER_SWITCH_PASSWORD="your-password"
export POWER_SWITCH_USERNAME="admin" # Optional, defaults to "admin"
# Run the HTTP server (default port 5000)
python -m power_switch_pro_mcp.http_server
# Or specify a custom port
PORT=3000 python -m power_switch_pro_mcp.http_serverThe HTTP server will be available at http://localhost:5000 and supports the MCP streamable-http protocol.
The easiest way to run the server is using the pre-built Docker image:
# Pull the latest image
docker pull ghcr.io/bryankemp/power-switch-pro-mcp:latest
# Run the container
docker run -d \
-p 5000:5000 \
-e POWER_SWITCH_HOST="192.168.0.100" \
-e POWER_SWITCH_PASSWORD="your-password" \
-e POWER_SWITCH_USERNAME="admin" \
--name power-switch-pro-mcp \
ghcr.io/bryankemp/power-switch-pro-mcp:latest# Copy and configure environment variables
cp .env.docker .env
# Edit .env with your Power Switch Pro settings
# Start the server
docker-compose up -d
# View logs
docker-compose logs -f
# Stop the server
docker-compose down# Build the image
docker build -t power-switch-pro-mcp .
# Run the container
docker run -d \
-p 5000:5000 \
-e POWER_SWITCH_HOST="192.168.0.100" \
-e POWER_SWITCH_PASSWORD="your-password" \
-e POWER_SWITCH_USERNAME="admin" \
--name power-switch-pro-mcp \
power-switch-pro-mcp
# View logs
docker logs -f power-switch-pro-mcp
# Stop the container
docker stop power-switch-pro-mcpThis project uses GitHub Actions to automatically build and publish Docker images to GitHub Container Registry (ghcr.io).
Docker images are automatically built and published:
latest and main-{sha}v1.0.0): Tagged with semantic versionsThe workflow builds multi-platform images for:
linux/amd64 (x86_64)linux/arm64 (ARM64/Apple Silicon)latest - Latest stable build from main branchv1.0.0, v1.0, v1 - Semantic version tagsmain-{sha} - Specific commit from main branch# Clone the repository
git clone https://github.com/bryankemp/power-switch-pro-mcp.git
cd power-switch-pro-mcp
# Install in editable mode with dev dependencies
pip install -e ".[dev]"This project uses:
Run checks:
# Format code
black src
# Lint code
ruff check src
# Type check
mypy src
# Run all checks together
black src && ruff check src && mypy src
# Run tests
pytestThe project includes automated git hooks for code quality and Docker testing:
#### Pre-commit Hooks
Automatically run on every commit:
#### Pre-push Hook
Automatically run before every push:
#### Installation
# Install pre-commit framework
pip install pre-commit
# Install all git hooks
pre-commit install
./hooks/install.sh
# Run hooks manually on all files
pre-commit run --all-filespower-switch-pro-mcp/
├── src/
│ └── power_switch_pro_mcp/
│ ├── __init__.py
│ ├── server.py # Stdio MCP server implementation
│ └── http_server.py # HTTP MCP server implementation
├── docs/ # Sphinx documentation
├── tests/ # Test suite
├── hooks/ # Git hooks
│ ├── pre-push # Pre-push hook (Docker testing)
│ └── install.sh # Hook installation script
├── Dockerfile # Docker container definition
├── docker-compose.yml # Docker Compose configuration
├── .pre-commit-config.yaml # Pre-commit hooks configuration
├── pyproject.toml # Project configuration
├── README.md # This file
├── LICENSE # BSD-3-Clause license
├── .env.example # Example environment configuration
└── .env.docker # Docker environment templatePOWER_SWITCH_USE_HTTPS=true when possibleBSD-3-Clause License - See LICENSE file for details
Bryan Kemp ([email protected])
Contributions are welcome! Please:
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.