关于 smartrent-mcp
smartrent-mcp 是供 Claude 控制 SmartRent 家居设备的 MCP 服务,可查询状态并控制门锁、开关和恒温器,支持本地 stdio 与远程 SSE 模式。
主要功能
- 01读取家居设备状态
- 02开关灯光
- 03锁门或解锁
- 04设置恒温器温度与模式
- 05支持本地运行或远程 SSE 模式
适用场景
- 01查看 SmartRent 设备状态
- 02按名称开关灯光
- 03调节恒温器或锁门
MCP 相关
该服务向 MCP 客户端提供设备状态查询和控制工具。本地 Claude Desktop 使用时通过 stdio 运行,也可自托管为 SSE 模式以供远程连接。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
SmartRent MCP
一个 MCP(Model Context Protocol)服务,可让 Claude 通过自然对话控制你的 SmartRent 智能家居设备——门锁、恒温器、灯光开关和传感器。
You: "Turn off the kitchen lights and lock the front door"
Claude: "Kitchen turned off. Front Door - Lock is now locked."
目录
要求
- 一个 SmartRent 账户,且已在 SmartRent 应用中设置好设备(仅当你的公寓/住宅使用 SmartRent 硬件时才可使用——前门门锁、恒温器、开关或传感器)
- Python 3.10+
uv或pip——你很可能已经安装了其中一种
安装
选项 A — 使用 uv(推荐,无需单独安装)
如果你还没有 uv,请先安装一次:
# 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"
完成——Claude 首次需要时,uvx 会自动下载并运行此软件包。无需手动运行 install 命令。
选项 B — 使用普通 pip
pip install smartrent-mcp
设置 — Claude Desktop
1. 打开 Claude Desktop 配置文件
- Mac:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
2. 添加服务条目
如果你通过 uv 安装(选项 A):
{
"mcpServers": {
"smartrent-mcp": {
"command": "uvx",
"args": ["smartrent-mcp"],
"env": {
"SMARTRENT_EMAIL": "your_smartrent_email",
"SMARTRENT_PASSWORD": "your_smartrent_password"
}
}
}
}
如果你通过 pip 安装(选项 B):
{
"mcpServers": {
"smartrent-mcp": {
"command": "smartrent-mcp",
"env": {
"SMARTRENT_EMAIL": "your_smartrent_email",
"SMARTRENT_PASSWORD": "your_smartrent_password"
}
}
}
}
如果 "mcpServers" 下已经有其他服务,只需将 "smartrent-mcp" 添加为另一条目——不要替换现有条目。
3. 重启 Claude Desktop
完全退出应用(Mac 上按 Cmd+Q,或在 Windows 上右键点击系统托盘图标并选择“退出”),然后重新打开。仅关闭窗口还不够。
4. 试用
向 Claude 提问:
- “我家现在是什么状态?”
- “打开厨房的灯”
- “锁上前门”
- “将温度设为 72 度制冷模式”
设置 — Claude Web
Claude Web 只能通过 URL 连接到远程 MCP 服务——它无法运行 uvx 之类的本地命令。要在 Claude Web 中使用此服务,你需要自托管一个远程实例。请参阅下方的自托管,然后在 Claude Web → Settings → MCP Servers 中添加已部署的 URL。
可用工具
| 工具 | 描述 | 参数 |
|---|---|---|
ping | 测试服务是否正常运行 | 无 |
get_device_status | 读取所有设备的状态——门锁、恒温器、开关、传感器 | 无 |
switch_control | 打开或关闭灯光开关 | name(例如 "kitchen")、action("on" / "off") |
lock_door | 锁上或解锁前门 | action("lock" / "unlock") |
set_temperature | 设置恒温器的温度、模式和单位 | temperature(整数)、mode("cool" / "heat" / "auto" / "off",默认值为 "cool")、unit("F" / "C",默认值为 "F") |
设备匹配不区分大小写,且支持部分匹配——"dining" 会匹配名为 "Dining Room" 的开关。
自托管(远程 / SSE 模式)
默认情况下,此软件包以 stdio 模式运行,供 Claude Desktop 在本地使用。要将其作为远程常驻服务运行(供 Claude Web 或多人共享使用),请设置 TRANSPORT 环境变量:
TRANSPORT=sse [email protected] SMARTRENT_PASSWORD=yourpassword smartrent-mcp
这会启动一个 HTTP/SSE 服务(默认端口为 8000,可通过 PORT 覆盖)。你可以将其部署到任何可运行 Python 的平台,例如 Railway、Render、Fly.io 等,并设置以下环境变量:
| 变量 | 必填 | 说明 |
|---|---|---|
SMARTRENT_EMAIL | 是 | 你的 SmartRent 账户邮箱 |
SMARTRENT_PASSWORD | 是 | 你的 SmartRent 账户密码 |
TRANSPORT | 否 | stdio(默认)或 sse |
PORT | 否 | sse 模式下监听的端口(默认 8000) |
部署完成后,可通过 https://your-deployment-url/sse 连接。
故障排查
远程部署时出现“Invalid Host header”或连接被拒绝
默认情况下,服务会关闭 DNS 重绑定保护,以支持远程访问。如果你更改了此设置,请确保在 server.py 中设置了 TransportSecuritySettings(enable_dns_rebinding_protection=False)。
Claude Desktop 未显示任何工具 确保完全退出并重启应用(而不只是关闭窗口)。查看 MCP 日志:
- Mac:
~/Library/Logs/Claude/mcp-server-smartrent-mcp.log - Windows:
%APPDATA%\Claude\logs\mcp-server-smartrent-mcp.log
“Username or password was wrong” 请使用相同的邮箱和密码登录 SmartRent 移动应用,以验证你的 SmartRent 凭据是否有效。
“No switch/lock/thermostat found on this account” 你的 SmartRent 账户需要在 SmartRent 应用中预先设置相应类型的设备。
安全
你的 SmartRent 凭据会作为环境变量直接传递给服务进程,且只会发送到 SmartRent 自己的登录 API。此软件包不会记录或存储这些凭据。
如果你以 sse 模式自托管,任何知道你的服务 URL 的人都能控制你的家居设备——远程模式目前没有身份验证层。请对部署 URL 保密,或限制对其的网络访问。
构建所用技术
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。