HomeOps MCP Server

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.

Category
访问服务器

README

HomeOps MCP Server

Python 3.11 FastAPI License: MIT CI

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.

Browse Issues →


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 .env file 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:

  1. Lives in homeops_mcp/adapters/<name>_adapter.py
  2. Implements a common interface (BaseAdapter)
  3. Returns mock/demo data when the upstream service is not configured
  4. 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

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
mcp-server-qdrant

mcp-server-qdrant

这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。

官方
精选
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选