kwikset-mcp
kwikset-mcp
Ein MCP-Server, der Claude Smart-Schlösser der Kwikset-Halo-Familie (Halo, Halo Keypad, Halo Touch, Halo Select / Select Plus) abfragen und steuern lässt.
Er ist ein dünner Wrapper um aiokwikset, den von der Community gepflegten Python-Client für die Cloud-API von Kwikset – denselben, den auch die Home Assistant Kwikset-Integration verwendet.
Wichtig: Kwikset veröffentlicht diese API nicht und unterstützt sie offiziell nicht. aiokwikset rekonstruiert sie per Reverse Engineering, sodass sie brechen kann, falls Kwikset serverseitig etwas ändert. Dieser Server enthält ein debug_api_surface-Tool und defensive Lookups, damit solche Störungen leicht zu diagnostizieren und zu beheben sind, statt still und hart zu scheitern.
Dieser Server wurde nicht End-to-End gegen ein echtes Konto oder ein echtes Schloss getestet – er wurde anhand der veröffentlichten Doku von aiokwikset und des Quellcodes der Home Assistant-Integration erstellt, ohne Zugriff auf Kwikset-Anmeldedaten oder ein physisches Schloss. Arbeite die folgenden Schritte durch und behandle den ersten lock/unlock-Aufruf als Smoke-Test; falls etwas einen api_mismatch-Fehler auswirft, setze ihn (sowie die Ausgabe von debug_api_surface) zurück in Claude ein, damit die ein oder zwei nicht übereinstimmenden Methodennamen korrigiert werden können.
Warum die Anmeldung ein separater Schritt ist
Dein Kwikset-Passwort sollte niemals durch ein LLM-Chatgespräch laufen. Deshalb erfolgt die Authentifizierung einmalig, in einem einfachen Terminal, über auth_setup.py, das nur die resultierenden Session-Tokens lokal speichert – niemals das Passwort. Der MCP-Server liest diese Tokens und erneuert sie stillschweigend – er fragt nie Claude und dich nicht dazu über Claude Code nach deinem Passwort.
Related MCP server: Seam MCP Server
Einrichtung
Abhängigkeiten installieren (Python 3.10+):
cd kwikset-mcp
python3 -m venv .venvAktiviere die virtuelle Umgebung – der Befehl hängt von deiner Shell ab:
# macOS / Linux (bash or zsh)
source .venv/bin/activate# Windows PowerShell
.venv\Scripts\Activate.ps1:: Windows Command Prompt (cmd.exe)
.venv\Scripts\activate.batDu erkennst den Erfolg daran, dass dein Prompt ein (.venv)-Präfix bekommt. Falls PowerShell das Skript nicht ausführen möchte („running scripts is disabled on this system"), führe zuerst Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass aus, dann wiederhole den Aktivierungsbefehl.
Danach, während der Umgebung aktiv ist:
pip install -e .Einmal anmelden. Die Anmeldedaten können auf drei Arten angegeben werden, die in dieser Reihenfolge geprüft werden:
# 1. Command-line flags (any OS/shell)
python auth_setup.py --email you@example.com --password 'hunter2'
# 3. Interactive prompt (any OS/shell; default if nothing else is given)
python auth_setup.pyOption 2 – zuerst Umgebungsvariablen zu setzen – ist dem --password-Flag oben vorzuziehen (ein Kommandozeilen-Passwort ist über ps aux/Task-Manager für andere Prozesse sichtbar und landet in der Shell-Historie) – die Syntax ist allerdings shell-spezifisch:
# macOS / Linux (bash or zsh)
KWIKSET_EMAIL=you@example.com KWIKSET_PASSWORD='hunter2' python auth_setup.py# Windows PowerShell
$env:KWIKSET_EMAIL = "you@example.com"
$env:KWIKSET_PASSWORD = "hunter2"
python auth_setup.pyWenn für dein Konto MFA aktiviert ist, wirst du zur Eingabe des Codes aufgefordert (alternativ übergib ihn gleich mit --mfa-code bzw. $KWIKSET_MFA_CODE). In jedem Fall werden ~/.kwikset-mcp/tokens.json (nur Besitzer-Lese-/Schreibrechte) geschrieben und dein Passwort wird nach diesem Schritt nie wieder angefasst – der MCP-Server liest und erneuert ausschließlich das gespeicherte Token.
Richte Claude Code oder Claude Desktop auf den Server aus.
Für Claude Code, aus diesem Projektverzeichnis:
# macOS / Linux
claude mcp add kwikset -- "$(pwd)/.venv/bin/python" -m kwikset_mcp.server# Windows PowerShell
claude mcp add kwikset -- "$PWD\.venv\Scripts\python.exe" -m kwikset_mcp.serverFür Claude Desktop, füge dies zu deiner claude_desktop_config.json hinzu (Settings → Developer → Edit Config) und setze dabei den absoluten Pfad zum .venv in diesem Verzeichnis ein:
{
"mcpServers": {
"kwikset": {
"command": "/absolute/path/to/kwikset-mcp/.venv/bin/python",
"args": ["-m", "kwikset_mcp.server"]
}
}
}Unter Windows sollte command auf
C:\\absolute\\ppath\\to\\kwikset-mcp\\.venv\\Scripts\\python.exe
zeigen (mit doppelten Backslashes, da es sich um JSON handelt).
Die Client-Anwendung neu starten, damit der Claude den neuen Server erkennt.
Verfahren ausprobieren. Frage Claude zum Beispiel „list my Kwikset locks" oder „is the front door locked?" – er sollte
list_locks/get_lock_statusaufrufen. Das Entsperren erfordert eine explizite Aufforderung, daunlock_doorsich weigert zu handeln, solange es nicht mitconfirm=trueaufgerufen wird – und Claude Code setztconfirm=truenur dann, wenn du eindeutig darum bittest, diese Tür zu öffnen.
Verfügbare Tools
Tool | Beschreibung |
| Alle Schlösser des Kontos mit Status, Batteriestand und home |
| Status/Batterie/WLAN für ein Schloss |
| Eine Tür verriegeln |
| Eine Tür entriegel ( |
| Diagnose-Ausgabe der tatsächlichen Methodennamen der installierten aiokwikset-Bibliothek |
Erneute Anmeldung
Wenn Tokens ablaufen und sich nicht leise erneuern lassen (z. B. weil das Passwort geändert wurde oder die MFA zurückgesetzt wurde), liefern Tool-Aufrufe einen auth_required-Fehler mit Anweisungen zurück – einfach python auth_setup.py erneut ausführen.
Dateien
kwikset-mcp/
├── auth_setup.py # run once, by hand, to log in
├── src/kwikset_mcp/
│ ├── auth.py # local token file read/write
│ ├── client.py # aiokwikset wrapper (locks, status, etc.)
│ └── server.py # FastMCP server + tool definitions
├── pyproject.toml
└── requirements.txtThis server cannot be deployed
Maintenance
Related MCP Connectors
- mytesla.ioOAuthio.mytesla
Control your Tesla from your AI assistant - climate, charging, access, and security.
Control your Tesla - wake it, warm it up, unlock and more. Get your developer token at https://Infoseek.ai/mcp. Also requires your own Tesla developer token which is tied to your car/fleet.
OAuth 2.1 short-link tools for AI agents with scoped tokens, approvals, audit logs, and revocation.
Manage Hostaway listings, reservations, calendar, guest messages, reviews and tasks.
Related MCP Servers
- -licenseNot gradedqualityDmaintenanceEnables control of TP-Link Kasa smart home devices through natural language commands. Supports device control, lighting scenes, room-based organization, and real-time status monitoring for smart plugs and bulbs.-
- FlicenseNot gradedqualityCmaintenanceEnables control of smart locks through the Seam API, allowing users to lock/unlock doors, check status, and manage access codes across 100+ supported lock brands. Supports comprehensive access code management including temporary codes and multi-lock operations.-
- FlicenseNot gradedqualityCmaintenanceEnables AI models to control and query smart home devices (air conditioners, lights, locks, cameras, refrigerators) through a backend API. Supports device control operations, status queries, and detailed device information retrieval with built-in documentation for proper device usage.2-
- AlicenseNot gradedqualityBmaintenanceEnables ChatGPT to read selected Home Assistant data and perform limited home-control actions like turning on/off lights and running scenes, with a strict allowlist for security.MIT