Homelab Infra Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Homelab Infra 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.
A unified MCP server for homelab ops — manage Nginx Proxy Manager, Docker, and Cloudflare DNS from Claude Code, Cursor, or any MCP-compatible AI assistant.
One server. Three domains. 46 tools.
Homelabbers manage infrastructure across disconnected tools. Existing MCP servers handle these individually, but real homelab tasks span all three:
"Expose my new container to the internet" = start container + create proxy host + add DNS record
This server does that in one expose_service call.
Proxy hosts, SSL certificates, redirections, access lists. Full CRUD via the NPM REST API.
Containers (list, start, stop, restart, remove, logs, stats), images (list, pull, remove), volumes, networks, prune.
Cloudflare zones, records (CRUD), zone export. More providers planned.
expose_service — DNS + proxy + container verification in one callteardown_service — reverse of exposeservice_status — full picture of a service across all three systemsinfrastructure_overview — dashboard in a tool callnormal, read-only, dry-runpip install homelab-infra-mcpclaude mcp add homelab -- python -m homelab_infra_mcpSet environment variables:
export NPM_URL=http://localhost:81
export [email protected]
export NPM_PASSWORD=changeme
export CLOUDFLARE_API_TOKEN=your-tokenservices:
homelab-mcp:
image: ghcr.io/seayniclabs/homelab-infra-mcp:latest
environment:
- TZ=America/Chicago
- NPM_URL=http://host.docker.internal:81
- [email protected]
- NPM_PASSWORD=changeme
- DOCKER_HOST=unix:///var/run/docker.sock
- DNS_PROVIDER=cloudflare
- CLOUDFLARE_API_TOKEN=your-token
- HOMELAB_MCP_MODE=normal
- HOMELAB_MCP_TRANSPORT=sse
- HOMELAB_MCP_PORT=8200
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
ports:
- "8200:8200"| Variable | Required | Default | Description |
|---|---|---|---|
NPM_URL | Yes | http://localhost:81 | NPM API URL |
NPM_EMAIL | Yes | — | NPM admin email |
NPM_PASSWORD | Yes | — | NPM admin password |
DOCKER_HOST | No | unix:///var/run/docker.sock | Docker socket |
DNS_PROVIDER | No | cloudflare | DNS provider |
CLOUDFLARE_API_TOKEN | Cond. | — | Required for DNS module |
CLOUDFLARE_ZONE_ID | No | — | Default zone ID |
HOMELAB_MCP_MODE | No | normal | normal / readonly / dryrun |
HOMELAB_MCP_MODULES | No | npm,docker,dns | Comma-separated enabled modules |
HOMELAB_MCP_TRANSPORT | No | stdio | stdio or sse |
HOMELAB_MCP_PORT | No | 8200 | SSE server port |
Don't use NPM? Disable it:
export HOMELAB_MCP_MODULES=docker,dnsOnly NPM tools will register. No Docker/DNS connection errors.
All destructive operations (delete, prune, remove) follow a two-step confirmation pattern:
confirm_destructive to executeTokens expire after 60 seconds. Dry-run mode previews all changes without executing.
Contributions welcome. See CONTRIBUTING.md for guidelines.
MIT. See LICENSE.
Built by Seaynic Labs.
<!-- mcp-name: io.github.seayniclabs/homelab-infra-mcp -->
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.