Homelab ManagerSAFE
Model Context Protocol (MCP) servers for managing homelab infrastructure through Claude Desktop. Monitor Docker/Podman containers, Ollama AI models, Pi-hole DNS, Unifi networks, and Ansible inventory. Includes security checks, templates, and automated pre-push validation. Production-ready for homela
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
[](https://github.com/bjeans/homelab-mcp/releases) [](https://github.com/bjeans/homelab-mcp/actions/workflows/security-check.yml) [](https://github.com/bjeans/homelab-mcp/actions/workflows/docker-publish.yml) [](https://hub.docker.com/r/bjeans/homelab-mcp) [](https://hub.docker.com/r/bjeans/homelab-mcp) [](https://github.com/bjeans/homelab-mcp/blob/main/LICENSE)
Model Context Protocol (MCP) servers for managing homelab infrastructure through Claude Desktop.
A collection of Model Context Protocol (MCP) servers for managing and monitoring your homelab infrastructure through Claude Desktop.
🔒 Security Notice
⚠️ IMPORTANT: Please read SECURITY.md before deploying this project.
This project interacts with critical infrastructure (Docker APIs, DNS, network devices). Improper configuration can expose your homelab to security risks.
Key Security Requirements:
- NEVER expose Docker/Podman APIs to the internet - Use firewall rules to restrict access
- Keep `.env` file secure - Contains API keys and should never be committed
- Use unique API keys - Generate separate keys for each service
- Review network security - Ensure proper VLAN segmentation and firewall rules
See SECURITY.md for comprehensive security
7e0e620888caOBSERVED · 2026-10-08Exposed tools (6)
5 read · 1 write · 0 destructive.
| Tool | Risk | Description |
|---|---|---|
get_claude_config | read | Get the Claude Desktop MCP server configuration. Shows all registered MCP servers. |
list_mcp_directory | read | List all files and directories in the MCP development directory. |
list_mcp_servers | read | List all MCP servers registered in Claude Desktop config with their details. |
read_mcp_file | read | Read the contents of a specific MCP file. Provide either absolute path or relative to MCP directory. |
search_mcp_files | read | Search for files in MCP directory by name. Optionally filter by extensions. |
write_mcp_file | write | Write content to an MCP file. Creates parent directories if needed. Path can be absolute or relative to MCP directory. |
Trust audit
SAFEgrade B · trust 88/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | WARN |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (1 observation(s))
- Network
- declared (6 observation(s))
- Shell
- declared (1 observation(s))
- Dependencies
- not all pinned
- Secrets in source
- none-found
Findings (15)
logger.info(f"Loaded from env: {display_name} -> {host}:{port} (api_key: {'***' if api_key else 'NOT SET'})").env.docker.example
minio_endpoint: "http://192.0.2.10:9000"
docker exec homelab-mcp-docker curl http://192.168.1.100:2375/containers/json
- **Centralized Access**: Single endpoint (e.g., `http://192.0.2.10:4000`) for all models
flake8, pylint, black, isort, mypy, bandit, safety, pip-audit
mcp, fastmcp, ansible-core, aiohttp, requests, urllib3, PyYAML, orjson
- ✅ Full access to source code
2. Ensure the API key has admin/full access rights
# Load environment variables
# Only load .env if NOT in unified mode (to avoid duplicate loading)
# Load environment variables
- `DOCKERHUB_TOKEN` - Docker Hub access token (not password!)
- Use Docker Hub access tokens, never passwords
assets/Homelab-mcp-logo-transparent.png
Gates applied: no_behavioural_pass.
7e0e620888cafull audit observations/trust-audit/mcp-server/bjeans__homelab-manager.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-08 | 7e0e620888ca | SAFE | B | 88 | first audit |
Questions
What is the Homelab Manager MCP server?
Model Context Protocol (MCP) servers for managing homelab infrastructure through Claude Desktop. Monitor Docker/Podman containers, Ollama AI models, Pi-hole DNS, Unifi networks, and Ansible inventory. Includes security checks, templates, and automated pre-push validation. Production-ready for homela
What tools does Homelab Manager expose?
6 in total: 5 read-only, 1 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.
Is Homelab Manager safe to connect to an agent?
The audit found nothing in the source that contradicts what it says it does, and graded it B (88/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.
What credentials does Homelab Manager need?
It reads NUT_PASSWORD and UNIFI_API_KEY from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How does Homelab Manager run?
It speaks sse and stdio, so it runs as a local process your client starts.
How current is this page?
The grade is for one exact copy of the source (7e0e620888ca), read on 2026-10-08. The repository is watched and re-audited when it changes.