simplisafe_list_systems
List the SimpliSafe systems on this account with their current alarm state (off/home/away), alarming status, connectivity and power status. Start here to get the `sid` other tools take.
無需輸入參數。

io.github.chrischall由 GitHub 帳號 chrischall 發布v1.4.0更新於 Nov 5, 2026
Check SimpliSafe system state and sensors, review events, arm/disarm, and control smart locks
非官方 SimpliSafe 伺服器,讓助理查看警報狀態、感測器、門鎖與事件,並在確認後布防、撤防或開鎖。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
參照 儲存庫 中的啟動說明。
MCP server for SimpliSafe home security. Check whether the system is armed, review sensors and events, arm/disarm, and control smart locks — from Claude.
This server can disarm a home alarm and unlock doors. Every tool that changes physical state, plus the tool that reads alarm PINs, asks you to confirm first — nothing is sent until you do, and you see a preview of exactly what would happen (see Confirmations). Install it only where you'd be comfortable with that capability.
Developed and maintained by AI (Claude Code).
Supports SimpliSafe 3 systems. Legacy SS2 systems are rejected with an explanation rather than an opaque upstream 404.
Or add to .mcp.json:
SimpliSafe issues no API keys. The credential is an OAuth2 refresh token, minted by a browser login you perform one time:
The token is written to .env (mode 0600) after being verified against the live
API. SimpliSafe does not rotate refresh tokens, so it stays valid until you
sign out of all devices in the SimpliSafe app — which is how you revoke it.
Capturing the code: open DevTools → Network and tick Preserve log before
signing in; afterwards the browser fails to open a com.simplisafe.mobile://…
link, and that failed entry's link address is what you paste. The code is
single-use and expires in about two minutes.
Treat the resulting token like a house key: it grants full control of the alarm.
Arming, disarming, locking, unlocking and reading the PINs all ask you to
confirm first. On a client that can show a confirmation prompt (Claude Code) you
get the prompt, with the details below (unless MCP_CONFIRM_ELICITATION=off).
On one that cannot (claude.ai, Claude Desktop) the first call sends nothing and returns a preview plus a
confirmToken; only a repeat call with that token acts, once. The preview
includes a plain statement of the physical consequence:
The token is bound to that tool, target and preview. The system is re-read on
the second call, and if what would happen no longer matches what you approved —
different arguments, or the alarm or lock state moved in between — it is
refused (DRAFT_CHANGED) with a fresh preview. A token that was already used is
refused too (TOKEN_REUSED).
Once confirmed, a write executes and then re-reads the system to check what
actually happened, reporting confirmed, in_progress (the exit delay is
counting down), or unconfirmed. A 2xx is never treated as proof.
For quick one-off queries there's a curl-based skill in
skills/simplisafe-api/ — same API, no MCP
process, sharing the same refresh token.
Verified endpoint shapes live in docs/SIMPLISAFE-API.md, including several things that are easy to get backwards:
location.system.version, not the top-level
systemVersion;ss3/ prefix;numEvents has an undocumented hard ceiling of 50;settings.pins returns alarm codes in cleartext alongside harmless settings.Unofficial. Not affiliated with or endorsed by SimpliSafe. It uses the same private API the SimpliSafe mobile app uses, with your own account credentials. Use at your own discretion.
MIT
來源:README.md,提交 247b144
List the SimpliSafe systems on this account with their current alarm state (off/home/away), alarming status, connectivity and power status. Start here to get the `sid` other tools take.
無需輸入參數。
Get the current state of one SimpliSafe system: alarm state, whether it is alarming, base-station connectivity, power/battery status and any pending base-station messages.
sidGet base-station settings for a system: entry/exit delays, alarm volume and duration, door chime, voice prompts, plus base-station health (wifi/cellular signal, wall power, backup battery, RF jamming). Does not include PINs — use simplisafe_get_pins for those.
sidRead the system's user PINs (master, duress and named users). These are the live alarm codes and are returned in cleartext, so calling this puts them into the conversation. Asks the user to confirm first: a confirmation prompt where the client supports one; otherwise the first call returns a warning preview and a confirmToken and fetches nothing, and only a repeat call with that token proceeds (see MCP_CONFIRM_MODE).
sidconfirmTokenList the sensors and devices paired to a system — entry sensors, motion, glass break, smoke/CO, keypads, sirens and locks — with battery, offline and triggered status. Filter by type with `type_name` (e.g. "entry", "motion_v2", "lock").
sidtype_nameforce_updateproblems_onlyList the smart locks on a system with their current state (locked / unlocked / jammed), lock and keypad battery status, and keypad connectivity. Returns the `serial` that simplisafe_set_lock_state takes. Polls the base station fresh by default, because a stale answer to "is my door locked?" is worse than a slow one.
sidforce_updateGet recent events recorded by the base station — arm/disarm, sensor opens, lock and unlock, alarms, errors — newest first. Each event carries an ISO timestamp alongside the raw epoch seconds.
sidviewevent_typenum_eventsfrom_timestampArm or disarm the alarm system: "off" (disarm), "home" (perimeter only) or "away" (all sensors). Asks the user to confirm first: a confirmation prompt where the client supports one; otherwise the first call returns a preview and a confirmToken, and only a repeat call with that token proceeds (see MCP_CONFIRM_MODE). This physically changes a security system: disarming leaves the house unmonitored, and arming can trigger a siren and a monitoring-center dispatch. After executing, the new state is verified by re-reading the system.
sidstate必填confirmTokenLock or unlock a SimpliSafe smart lock. Asks the user to confirm first: a confirmation prompt where the client supports one; otherwise the first call returns a preview and a confirmToken, and only a repeat call with that token proceeds (see MCP_CONFIRM_MODE). Unlocking physically opens a door lock, so it is gated even though it is technically reversible. After executing, the result is verified by re-reading the lock state.
sidstate必填serial必填confirmTokenCheck that the server can authenticate to SimpliSafe and reach the API. Reports whether the refresh token is configured and working, the resolved user id, and how many active systems the account has. Start here when other tools fail.
無需輸入參數。
已滿足適用檢查項的 90%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
npm install -g simplisafe-mcp{ "mcpServers": { "simplisafe": { "command": "npx", "args": ["-y", "simplisafe-mcp"], "env": { "SIMPLISAFE_REFRESH_TOKEN": "${SIMPLISAFE_REFRESH_TOKEN}" } } }}git clone https://github.com/chrischall/simplisafe-mcp && cd simplisafe-mcpnode scripts/bootstrap-auth.mjs # prints an authorize URL# sign in (MFA included), then copy the com.simplisafe.mobile:// URLnode scripts/bootstrap-auth.mjs "<that URL>"{ "status": "confirmation-required", "confirmed": false, "dispatched": false, "action": "alarm.set_state", "preview": { "action": "set alarm state to away", "method": "POST", "path": "/ss3/subscriptions/7858153/state/away", "sid": 7858153, "locationName": "Home", "currentState": "OFF", "requestedState": "AWAY", "warning": "Arms ALL sensors including interior motion. Starts an exit delay; anyone still moving inside when it expires can trigger the siren and a monitoring-center dispatch." }, "confirmToken": "…", "expiresAt": "…", "ttlSeconds": 600, "instruction": "Show this preview to the user verbatim and proceed only after they explicitly approve in chat. Then call again with confirmToken."}npm installnpm run buildnpm test