Featured

Deploy OpenClaw in 60 seconds — 20% off logoDeploy OpenClaw in 60 seconds — 20% off

Launch OpenClaw on Hostinger in about 60 seconds and keep your agent live 24/7. Our referral link gives you 20% off, no coupon code needed.

Launch on Hostinger
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed

Launch Hermes on Hostinger in one click, fully managed, no VPS knowledge needed. Use code ZACAARON10 for 10% off.

Launch on Hostinger
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off

Firecrawl crawls and scrapes any site into clean markdown for your agent. Get 1,000 free credits, and new users get 10% off their first purchase.

Try Firecrawl free
Your own AI agent, running 24/7 with QwikClaw logoYour own AI agent, running 24/7 with QwikClaw

QwikClaw sets up and runs an always-on OpenClaw agent for you. One click, no config files, no server setup.

Deploy now
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.

Context.dev gives your agents a single API to scrape, enrich, and extract live web data — no proxies, no parsers, no maintenance.

Start building free
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams

White-glove OpenClaw for founders and exec teams (4–50+ employees): we install, harden, integrate your tools, and maintain it — secured from day one.

Get it set up for you
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit

DataForSEO gives your agent live access to SERP results, keyword data, backlinks, and on-page SEO data through one API. New accounts get a $1 credit, good for up to 20,000 keyword or backlink lookups.

Try DataForSEO free
Reach 47,000+ AI builders

A flat monthly placement in front of developers actively installing AI tools. No lock-in, cancel anytime.

Advertise here

Works with

Claude CodeClaude DesktopCursorVS CodeClineCodex CLIOpenClaw+ any MCP client

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

Control SmartRent smart home devices (locks, thermostat, switches, sensors) via Claude

README.md

SmartRent MCP

<!-- mcp-name: io.github.Evin009/smartrent-mcp -->

![PyPI version](https://pypi.org/project/smartrent-mcp/) ![Python versions](https://pypi.org/project/smartrent-mcp/) ![License: MIT](LICENSE)

An MCP (Model Context Protocol) server that lets Claude control your SmartRent smart home devices — locks, thermostat, light switches, and sensors — through natural conversation.

You: "Turn off the kitchen lights and lock the front door"
Claude: "Kitchen turned off. Front Door - Lock is now locked."

---

Table of Contents

---

Requirements

  • A SmartRent account with devices already set up in the SmartRent app (this only works if your building/home uses SmartRent hardware — front door locks, thermostats, switches, or sensors)
  • Python 3.10+
  • Either uv or pip — you likely already have one of these

---

Installation

Option A — using uv (recommended, no separate install step)

If you don't have uv yet, install it once:

# Mac/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

That's it — uvx will download and run the package automatically the first time Claude needs it. No manual install command required.

Option B — using plain pip

pip install smartrent-mcp

---

Setup — Claude Desktop

1. Open your Claude Desktop config file

  • Mac: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

2. Add the server entry

If you installed via uv (Option A):

{
  "mcpServers": {
    "smartrent-mcp": {
      "command": "uvx",
      "args": ["smartrent-mcp"],
      "env": {
        "SMARTRENT_EMAIL": "your_smartrent_email",
        "SMARTRENT_PASSWORD": "your_smartrent_password"
      }
    }
  }
}

If you installed via pip (Option B):

{
  "mcpServers": {
    "smartrent-mcp": {
      "command": "smartrent-mcp",
      "env": {
        "SMARTRENT_EMAIL": "your_smartrent_email",
        "SMARTRENT_PASSWORD": "your_smartrent_password"
      }
    }
  }
}

If you already have other servers under "mcpServers", just add "smartrent-mcp" as another entry — don't replace the existing ones.

3. Restart Claude Desktop

Fully quit the app (Cmd+Q on Mac, or right-click the tray icon and Quit on Windows) and reopen it. Closing the window alone is not enough.

4. Try it

Ask Claude:

  • "What's the status of my home?"
  • "Turn on the kitchen lights"
  • "Lock the front door"
  • "Set temperature to 72 cool mode"

---

Setup — Claude Web

Claude Web only connects to remote MCP servers over a URL — it cannot run local commands like uvx. To use this server with Claude Web, you need to self-host a remote instance. See Self-Hosting below, then add your deployed URL in Claude Web → Settings → MCP Servers.

---

Available Tools

| Tool | Description | Parameters | |---|---|---| | ping | Test that the server is alive | none | | get_device_status | Read the status of all devices — locks, thermostat, switches, sensors | none | | switch_control | Turn a light switch on or off | name (e.g. "kitchen"), action ("on" / "off") | | lock_door | Lock or unlock the front door | action ("lock" / "unlock") | | set_temperature | Set thermostat temperature, mode, and unit | temperature (int), mode ("cool" / "heat" / "auto" / "off", default "cool"), unit ("F" / "C", default "F") |

Device matching is partial and case-insensitive — "dining" will match a switch named "Dining Room".

---

Self-Hosting (Remote / SSE mode)

By default this package runs in stdio mode for local use with Claude Desktop. To run it as a remote, always-on server (for Claude Web or shared use), set the TRANSPORT environment variable:

TRANSPORT=sse SMARTRENT_EMAIL=you@example.com SMARTRENT_PASSWORD=yourpassword smartrent-mcp

This starts an HTTP/SSE server (default port 8000, override with PORT). Deploy it anywhere that runs Python — Railway, Render, Fly.io, etc. — with these environment variables set:

| Variable | Required | Description | |---|---|---| | SMARTRENT_EMAIL | Yes | Your SmartRent account email | | SMARTRENT_PASSWORD | Yes | Your SmartRent account password | | TRANSPORT | No | stdio (default) or sse | | PORT | No | Port to listen on in sse mode (default 8000) |

Once deployed, connect to it at https://your-deployment-url/sse.

---

Troubleshooting

"Invalid Host header" or connection refused on a remote deployment The server disables DNS rebinding protection by default to support remote access. If you've changed this, make sure TransportSecuritySettings(enable_dns_rebinding_protection=False) is set in server.py.

Claude Desktop doesn't show any tools Make sure you fully quit and restarted the app (not just closed the window). Check the MCP logs:

  • Mac: ~/Library/Logs/Claude/mcp-server-smartrent-mcp.log
  • Windows: %APPDATA%\Claude\logs\mcp-server-smartrent-mcp.log

"Username or password was wrong" Verify your SmartRent credentials work by logging into the SmartRent mobile app with the same email/password.

"No switch/lock/thermostat found on this account" Your SmartRent account needs the corresponding device type already set up in the SmartRent app.

---

Security

Your SmartRent credentials are passed as environment variables directly to the server process and are never sent anywhere except SmartRent's own login API. They are not logged or stored by this package.

If you're self-hosting in sse mode, anyone with your server's URL can control your home — there is currently no authentication layer on remote mode. Keep your deployment URL private, or restrict network access to it.

---

Built With

License

MIT

See related servers & alternatives →

Related MCP servers

Browse all →

Related guides

Hand-picked reading to help you choose and use Other servers.