home-mcp
Provides tools to list Home Assistant devices, read entity state and history, and control lights and plugs — with control restricted to an allowlist file that defines which entities are visible and which actions each may take, and optional confirmation before acting on sensitive devices.
Read-only access to a Plex Media Server: search the library, list recently added items, show continue-watching queues (using each Plex Home user's own token), browse watch history, and report what is currently playing.
Read-only tools over Prometheus metrics for the home: a devices overview, individual device status, metric history queries, and listing of active alerts.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@home-mcpturn on the living room lights"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
home-mcp
Home MCP server for the familIA voice assistant. One process, four optional modules; each is enabled only when its settings are present.
The Python package and the installed command are still named familia-mcp (familia_mcp): the deployed host
(/opt/familia-mcp, the familia-mcp service user) and the familIA proxy's forced SSH command rely on that name.
Module | Tools | Access |
Prometheus |
| read-only |
Home Assistant |
| lights and plugs in an allowlist |
Plex |
| read-only |
Photos (PhotoPrism) |
| read-only |
How it runs
The server speaks MCP over stdio. It is not a network service: the familIA proxy starts it through SSH with a
restricted key whose forced command is the server
(restrict,command="/opt/familia-mcp/venv/bin/familia-mcp"). Nothing listens on the LAN.
voice (OVOS) -> familIA proxy -- SSH, forced command --> familia-mcp (this repo) -> Prometheus / HA / Plex / PhotoPrismThe tool calls themselves come from the familIA Lambda as "return of control": the model never reaches the home services directly; the proxy runs the tool here and sends back the result.
Related MCP server: HomeLab MCP
Safety model
Home Assistant: only
lightandswitchdomains exist in the module./etc/familia/ha_allowlist.jsondecides which entities are visible and which actions each may take (missing or invalid file -> nothing exposed). Devices with"confirm": trueare only parked: the proxy asks the user and runs the internalha_confirm_actiontool itself after a spoken "yes"; that tool is never declared to the model. Seedeploy/ha_allowlist.example.json.Plex: the owner token can do anything on the server, so the client only issues
GETrequests to a fixed list of paths. "Continue watching" for Plex Home users uses each user's own token and never falls back to the owner's.Photos: a thin client of PhotoPrism's built-in read-only MCP endpoint (
/api/v1/mcp). Use an app password with scopemcp read photos albums people labels; withoutplacesno coordinates are ever returned.Tokens live only in
/etc/familia/mcp.envon the MCP host (mode 600, owned by the service user).
Install / upgrade (Raspberry Pi OS, Python 3.11+)
On a dev machine:
uv run pytest -q
uv build --wheel
scp dist/familia_mcp-*.whl requirements.lock.txt deploy/install.sh deploy/mcp.env.example <mcp-host>:/tmp/familia-mcp/
# optional: your allowlist and a secrets.env (KEY=VALUE, merged into mcp.env and then deleted)On the MCP host:
sudo bash /tmp/familia-mcp/install.shinstall.sh is idempotent: service user, venv with hash-verified dependencies (requirements.lock.txt), config
files that are never overwritten except by an explicit ha_allowlist.json / secrets.env next to it, and a final
check that calls one read tool per enabled module. Then authorize the proxy's key with
deploy/authorize_proxy_key.sh and restart the proxy so it re-reads the tool list.
Helpers: deploy/ha_token.sh (store the HA token without echoing it), deploy/ha_notify_services.sh (list HA
notify services).
Configuration
All settings are KEY=VALUE lines in /etc/familia/mcp.env (override the path with FAMILIA_MCP_ENV_FILE);
see deploy/mcp.env.example.
Module | Required | Optional |
Prometheus |
|
|
Home Assistant |
|
|
Plex |
|
|
Photos |
|
|
Development
uv sync
uv run pytest -q # fake HTTP backends and an in-process fake PhotoPrism MCP servermcp is pinned (mcp==2.3.0): the 2.x API differs from 1.x, and the familIA proxy must use the same version.
Tool descriptions are in English; the assistant answers in the user's language.
License
GPL-3.0-only. See LICENSE.
Maintenance
Related MCP Connectors
Control your existing Philips lights, Sonos speakers, Roborock vacuums and other supported devices through Port OS cloud. Give ChatGPT, Claude and other MCP-compatible assistants access to the devices you connect. Turn off the living room lights, play music on your speakers, adjust the thermostat, run a vacuum in a room, check a camera snapshot or find a connected tracker. Available actions depend on your linked provider accounts and each device’s supported capabilities. Port OS runs in the cloud; no local server is required. You choose the account, device and capability permissions each assistant receives. Device operations require user OAuth; public tool discovery does not grant device access. Port OS is in alpha. Setup: https://portoperatingsystem.com/docs/getting-started/ Support: https://portoperatingsystem.com/contact/
Remote streamable-HTTP MCP server running on a single Cloudflare Worker. Your assistant gets live Airbnb, Amazon, Booking.com, Google Flights, Maps and Reddit data, social search on X, Instagram and TikTok, the Meta Ad Library, and image/video generation without any keys. Connect your own accounts to let it send WhatsApp or Telegram messages, work an IMAP inbox, manage Meta Ads campaigns and publish to X and LinkedIn. OAuth 2.1 with PKCE; stored credentials are AES-256-GCM encrypted.
Self-hosted AI workspace: semantic RAG document search, long-term memory, and AI chat via MCP.
Remote MCP server exposing your Node Command fleet (files, shell, processes, browser) to AI hosts.
Related MCP Servers
- AlicenseAqualityCmaintenanceA self-hosted MCP server for Home Assistant that exposes full control over entity states, service calls, history, templates, and areas via local stdio, enabling AI assistants to manage your smart home.9122 npmMIT
- FlicenseCqualityDmaintenanceMCP server that integrates Home Assistant, Frigate, Docker, and Proxmox via STDIO, enabling secure read and write operations with configurable confirmation.26-
- AlicenseNot gradedqualityBmaintenanceRead-only MCP adapter for Homelab Core that lets AI assistants inspect health, services, redacted logs, nodes, and jobs via a local Unix socket. Optionally enables job queuing when changes are explicitly allowed.MIT
- AlicenseNot gradedqualityAmaintenanceMCP server for Home Assistant that lets you control and query your smart home through natural language via MCP clients. Provides tools for entities, devices, services, automations, scripts, history, add-ons, and system info, with read-only access by default and optional configurable write support.1MIT