Skip to main content
Glama
jgonzalez007

kwikset-mcp

by jgonzalez007

kwikset-mcp

Claude가 Kwikset Halo 계열 스마트 잠금장치(Halo, Halo Keypad, Halo Touch, Halo Select / Select Plus)의 상태를 확인하고 제어할 수 있게 해주는 MCP 서버입니다.

이 서버는 Kwikset 클라우드 API용 커뮤니티 유지 Python 클라이언트인 aiokwikset을 얇게 감싼 래퍼입니다. Home Assistant Kwikset 통합에서 사용하는 것과 같은 클라이언트입니다.

중요: Kwikset은 이 API를 공개하지 않으며 공식적으로 지원하지도 않습니다. aiokwikset은 이를 리버스 엔지니어링한 것이므로, Kwikset이 서버 측에서 무언가 바꾸면 깨질 수 있습니다. 이 서버에는 debug_api_surface 도구와 방어적 조회 기능이 포함되어 있어, 이런 깨짐이 조용한 완전 실패로 이어지지 않고 진단과 수정을 쉽게 할 수 있습니다.

이 서버는 실제 계정이나 잠금장치로 엔드투엔드 테스트되지 않았습니다.aiokwikset의 공개 문서와 Home Assistant 통합 소스를 바탕으로 만들어졌으며, Kwikset 자격 증명이나 실제 잠금장치가 없는 상태에서 개발되었습니다. 아래 단계를 진행하고 첫 lock / unlock 호출을 스모크 테스트로 취급하세요. 어떤 것이든 api_mismatch 오류가 발생하면 그 오류(및 debug_api_surface 출력)를 Claude에 붙여넣어 이름이 일치하지 않는 메서드를 한두 개 수정하면 됩니다.

로그인이 별도 단계로 수행되는 이유

Kwikset 비밀번호가 LLM 대화를 절대 통과해서는 안 되기 때문입니다. 그래서 인증은 일반 터미널에서 auth_setup.py로 한 번만 수행되며, 이 과정에서 얻은 세션 토큰만(비밀번호는 절대 아님) 로컬에 저장됩니다. MCP 서버는 그 토큰을 읽고 자동으로 갱신합니다. — Claude에게 비밀번호를 묻거나, Claude를 통해 사용자에게 비밀번호를 묻는 일은 없습니다.

Related MCP server: Seam MCP Server

설정

  1. 의존성 설치 (Python 3.10+):

cd kwikset-mcp
python3 -m venv .venv

가상 환경을 활성화합니다 — 명령은 셸마다 다릅니다:

# macOS / Linux (bash or zsh)
source .venv/bin/activate
# Windows PowerShell
.venv\Scripts\Activate.ps1
:: Windows Command Prompt (cmd.exe)
.venv\Scripts\activate.bat

프롬프트에 (.venv) 접두사가 생기면 성공한 것입니다. PowerShell에서 스크립트 실행을 거부할 경우("이 시스템에서 스크립트가 실행되지 않도록 설정되어 있습니다") 먼저 Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass를 실행한 다음 활성화 명령을 다시 시도하세요.

그런 다음, 가상 환경이 활성화된 상태에서:

pip install -e .
  1. 한 번만 로그인합니다. 자격 증명은 세 가지 방법으로 제공할 수 있으며, 다음 순서대로 확인합니다:

# 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.py

위의 --password 플래그보다는 환경 변수를 먼저 설정하는 방법 2가 권장됩니다 (명령줄 비밀번호는 ps aux/Task Manager를 통해 다른 프로세스에 보이고 셸 히스토리에 남기 때문입니다) — 문법은 셸마다 다릅니다:

# 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.py

계정에 MFA가 활성화된 경우 설정하고 있으면 코드를 입력하라는 예약 문구가 표시됩니다 (또는 시작 시 --mfa-code / $KWIKSET_MFA_CODE로 전달). 어느 쪽이든 ~/.kwikset-mcp/tokens.json이 생성됩니다(소유자만 읽기/쓰기 가능) 그리고 이 단계 이후로는 비밀번호를 절대 다루지 않습니다 — MCP 서버는 저장된 토큰만 읽고 갱신할 뿐입니다.

  1. Claude를 이 서버로 지정합니다.

    Claude Code인 경우, 이 프로젝트 디렉토리에서:

# 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.server

Claude Desktop인 경우, claude_desktop_config.json에 다음을 추가하세요. (Settings → Developer → Edit Config) 여기에서 이 디렉토리의 .venv 절대 경로로 대체합니다:

{
  "mcpServers": {
    "kwikset": {
      "command": "/absolute/path/to/kwikset-mcp/.venv/bin/python",
      "args": ["-m", "kwikset_mcp.server"]
    }
  }
}

Windows에서는 command가 다음을 가리켜야 합니다. C:\\absolute\\path\\to\\kwikset-mcp\\.venv\\Scripts\\python.exe (JSON이므로 이중 백슬래시를 사용하세요).

그런 다음 Claude 클라이언트를 재시작하여 새 서버를 인식하도록 하세요.

  1. 직접 시도해 보세요. "내 Kwikset 잠금장치 목록을 알려줘" 또는 "현관문은 잠겨 있어?" 같은 요청을 Claude에 해보세요 — list_locks / get_lock_status를 호출해야 합니다. 잠금 해제는 명시적인 요청이 필요합니다. unlock_doorconfirm=true로 호출해야만 동작하고, Claude는 해당 문을 잠금 해제하라고 명확히 요청한 경우에만 이 값을 쓰기 때문입니다.

노출되는 도구

도구

설명

list_locks

계정의 모든 잠금장치. 상태, 배터리 %, 홈(Home) 정보 포함

get_lock_status(device_id)

잠금장치 하나의 상태/배터리/Wi-Fi 정보

lock_door(device_id)

문 잠그기

unlock_door(device_id, confirm)

문 잠금 해제 (confirm=true 필수)

debug_api_surface

설치된 aiokwikset 라이브러리의 실제 메서드 이름 진단 덤프

재인증

토큰이 만료되어 자동으로 갱신할 수 없는 경우(예: Kwikset 비밀번호가 변경되었거나 MFA가 재설정됨), 도구 호출 시 지침이 포함된 auth_required 오류가 반환됩니다 — 그냥 python auth_setup.py를 다시 실행하면 됩니다.

파일

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.txt
F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables 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.
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables 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
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables Claude to control PetLibro RFID pet feeders and water fountains by checking food/battery/water status, dispensing food by the cup, and force-opening feeder lids via the PetLibro cloud API.
    GPL 3.0

View all related MCP servers

Related MCP Connectors

  • Connect your Oura Ring account and enable access to your wellness data in apps and automations. In…

  • Tailscale device, route, DNS, key, user, and ACL management over MCP and CLI.

  • MCP connector that lets ChatGPT list, search, and run your Apple Shortcuts via a local Mac agent

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jgonzalez007/kwikset-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server