three.ws Home runs on your own machine — the client starts it, so there is no endpoint to ping. 34 installs a week from npm. Last commit 1 Nov 2026.
Read and safely act on a real Home Assistant house: rooms, live state, scenes, gated actions.
We read the source, 22 h ago · rules 995398eba69f
Things with no honest explanation: a promise that contradicts the code, code that runs at install time while hiding what it does, data leaving the machine.
'http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token',
What this server is able to do. For an MCP server this is often the job itself — a terminal server runs commands because that is what it is for. Listed so you know what you are plugging in, not as an accusation.
const r = await redis.eval(
const proc = spawn(ffmpegPath(), ['-hide_banner', '-loglevel', 'error', '-i', 'pipe:0', ...args, 'pipe:1']);
const [row] = await sql`SELECT voice_provider, voice_id FROM agent_identities WHERE id = ${agentId}`.catch(() => []);
return JSON.parse(await readFile(path.join(base, rel), 'utf8'));
return subprocess.run(
exec(compile(job["code"], "<three-ws-blender-mcp>", "exec"), namespace)
if (reset) { state.cursor = null; state.total = 0; grid.innerHTML = skeletons(); stateEl.hidden = true; }
`https://api.telegram.org/bot${cfg.token}/sendMessage`,
"bytecode": "0x60806040523480156200001157600080fd5b5060405162000dd238038062000dd2833981016040819052620000349162000351565b8383600362000044838262000477565b50600462000053828262000477565b5050506001600160a01b038116620000a65760405162461bcd60e51b8152602060048201526011602482015270726…
Is this your server and something here is wrong? Tell us — corrections are free and do not require a plan.
Code changes quietly between releases, and nobody reads the diff of a dependency. We do, on every release — watch three.ws Home and you get told the day something new turns up.
This server runs on your own machine — install it with the package manager and the client starts it for you. Package name taken from the official registry entry.
claude mcp add home-mcp -e 'HOME_ASSISTANT_URL=<HOME_ASSISTANT_URL>' -e 'HOME_ASSISTANT_TOKEN=<HOME_ASSISTANT_TOKEN>' -- npx -y @three-ws/home-mcp
{
"mcpServers": {
"home-mcp": {
"command": "npx",
"args": [
"-y",
"@three-ws/home-mcp"
],
"env": {
"HOME_ASSISTANT_TOKEN": "<HOME_ASSISTANT_TOKEN>",
"HOME_ASSISTANT_URL": "<HOME_ASSISTANT_URL>"
}
}
}
}
[mcp_servers.home-mcp]
command = "npx"
args = ["-y", "@three-ws/home-mcp"]
env = { HOME_ASSISTANT_URL = "<HOME_ASSISTANT_URL>", HOME_ASSISTANT_TOKEN = "<HOME_ASSISTANT_TOKEN>" }
{
"mcpServers": {
"home-mcp": {
"command": "npx",
"args": [
"-y",
"@three-ws/home-mcp"
],
"env": {
"HOME_ASSISTANT_TOKEN": "<HOME_ASSISTANT_TOKEN>",
"HOME_ASSISTANT_URL": "<HOME_ASSISTANT_URL>"
}
}
}
}
{
"servers": {
"home-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@three-ws/home-mcp"
],
"env": {
"HOME_ASSISTANT_TOKEN": "<HOME_ASSISTANT_TOKEN>",
"HOME_ASSISTANT_URL": "<HOME_ASSISTANT_URL>"
}
}
}
}
Put your own values in place of
<HOME_ASSISTANT_URL> (Base URL of the Home Assistant instance, e.g. https://abc123.ui.nabu.casa. It has to be a URL this process can actually reach: a server outside the house cannot route to 192.168.x.x, so a LAN-only home needs Home Assistant Cloud or the household's own reverse proxy), <HOME_ASSISTANT_TOKEN> (A Home Assistant long-lived access token (Home Assistant, your profile, Security, Long-lived access tokens, Create token). It carries the full rights of the account that minted it, so mint it from an account with only the access this agent should have).
The author’s registry entry marks them as required.
Optional settings from the registry entry, left out of the block above:
HOME_ALLOWED_ENTITIES (Comma-separated entity ids the person running this server has pre-approved for guarded actions, e.g. lock.office_door. This is the ONLY way an action that opens the house runs over stdio, and it is deliberately a human, out-of-band decision: no tool can add to it. Per entity, never per domain. Leave unset to refuse every such action).
Control Home Assistant lights and scenes. Lights only by design for safety.
Give any AI assistant real-time access to your phone's GPS and location history.
SCADA station on your computer that an AI assistant reads, configures and operates over MCP.
Operate GitHub from your AI assistant: repos, PRs, issues, Actions. Previews and read-only mode.
Turn assistant output into ready-to-send action links and files, with no sign-in.
Read-only KNX/ETS project auditor: validates a .knxproj and generates Home Assistant YAML
US rental listings for AI assistants: free live search and rent statistics, plus licensed feeds.
Generate a paste-ready embed for a floating 3D avatar chatbot on any website.
Answers built from our own checks of this server.