HomeOps MCP Server
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.
README
HomeOps MCP Server
A Model Context Protocol (MCP) server for home infrastructure management. Provides a unified API for Docker, Emby, and future Servarr/UniFi/CrowdSec integrations.
We've Reinvented Contributing
Every issue in this repo is AI-Ready — structured with full context, file paths, implementation guides, acceptance criteria, and a ready-to-use AI prompt at the bottom.
Pick an issue. Copy the prompt. Paste into your AI tool. Submit a PR.
No codebase knowledge required. No onboarding docs to read. Just pick an issue and go.
Roadmap
| 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 |
Quick Start
Option A -- Docker Compose (recommended)
cp .env.example .env
# Edit .env with your real values
docker compose up -d
The server will be available at http://localhost:8000.
Option B -- Run locally
# Requires Python 3.11+ and Poetry
poetry install
bash scripts/run_local.sh
Configuration
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 |
API Endpoints
| 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.
Security
- Never commit real API keys or secrets. The
.envfile is git-ignored. - Only placeholder values appear in
.env.example. - The Docker socket is mounted read-only in
docker-compose.yml. - The container runs as a non-root user (
appuser). - All adapter API keys are loaded from environment variables at startup and are never logged.
Architecture
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:
- Lives in
homeops_mcp/adapters/<name>_adapter.py - Implements a common interface (
BaseAdapter) - Returns mock/demo data when the upstream service is not configured
- Has its own unit tests in
tests/
Development
# 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 .
Acknowledgments
Built with Microsoft Copilot and Claude.
License
MIT -- see LICENSE.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
mcp-server-qdrant
这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器