loading…
Search for a command to run...
loading…
A Model Context Protocol server for home infrastructure management that provides a unified API for Docker and Emby. It enables users to monitor containers, mana
A Model Context Protocol server for home infrastructure management that provides a unified API for Docker and Emby. It enables users to monitor containers, manage media sessions, and search libraries through an extensible adapter-based architecture.
Note: This project was developed with and is supported exclusively by AI. There is no human support — issues and PRs are triaged and responded to by AI agents. If AI-assisted software isn't for you, no hard feelings — but you might want to reconsider, since so is most of the software you already use.
A Model Context Protocol (MCP) server for home infrastructure management. Provides a unified API for Docker, Emby, and future Servarr/UniFi/CrowdSec integrations. Built with FastAPI and Python 3.11 for homelab automation with Claude.
| Phase | Scope | Status |
|---|---|---|
| Phase 0 | Skeleton -- project structure, CI, Docker build, health endpoint | Done |
| Phase 1 | Docker + Emby adapters, API-key auth middleware, full CI pipeline | Planned |
| Phase 2 | Servarr (Sonarr/Radarr/Prowlarr), WordPress, Synology, UniFi, CrowdSec adapters | Planned |
| Phase 3 | UI dashboard, audit logs, secrets management (Vault/SOPS), production hardening | Planned |
cp .env.example .env
# Edit .env with your real values
docker compose up -d
The server will be available at http://localhost:8000.
# Requires Python 3.11+ and Poetry
poetry install
bash scripts/run_local.sh
All configuration is via environment variables. Copy .env.example to .env and edit as needed.
| Variable | Required | Default | Description |
|---|---|---|---|
MCP_ADMIN_KEY |
Yes | changeme-to-a-strong-random-key |
API key for admin endpoints |
LOG_LEVEL |
No | INFO |
Logging level (DEBUG, INFO, WARNING, ERROR) |
EMBY_URL |
No | (mock data) | Emby server URL, e.g. http://192.168.1.100:8096 |
EMBY_API_KEY |
No | (mock data) | Emby API key for authentication |
DOCKER_SOCKET |
No | unix:///var/run/docker.sock |
Path to Docker socket |
| Method | Path | Auth | Description |
|---|---|---|---|
GET |
/health |
No | Health check -- returns {"status": "ok"} |
GET |
/v1/docker/containers |
API Key | List Docker containers |
GET |
/v1/docker/containers/{id}/stats |
API Key | Container resource stats |
GET |
/v1/emby/sessions |
API Key | List active Emby sessions |
GET |
/v1/emby/search?q=term |
API Key | Search Emby library |
POST |
/v1/actions/execute |
API Key | Log action (non-destructive) |
All authenticated endpoints require the X-API-Key header set to the value of MCP_ADMIN_KEY.
.env file is git-ignored..env.example.docker-compose.yml.appuser).HomeOps MCP uses an adapter pattern to integrate with external services:
Client Request
|
v
FastAPI Router
|
v
Auth Middleware (validates X-API-Key)
|
v
Adapter Layer
|
+---> DockerAdapter --> Docker Engine API (socket)
+---> EmbyAdapter --> Emby REST API
+---> ServarrAdapter --> Sonarr / Radarr / Prowlarr APIs (Phase 2)
+---> UniFiAdapter --> UniFi Controller API (Phase 2)
+---> CrowdSecAdapter --> CrowdSec LAPI (Phase 2)
Each adapter:
homeops_mcp/adapters/<name>_adapter.pyBaseAdapter)tests/# Install all dependencies (including dev)
poetry install
# Run linter
poetry run ruff check .
# Run tests
poetry run pytest -v
# Build Docker image
docker build -t homeops-mcp .
Every issue in this repo is AI-Ready — structured with full context, file paths, implementation guides, and a ready-to-use AI prompt.
MIT -- see LICENSE.
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"homeops-mcp-server": {
"command": "npx",
"args": []
}
}
}