xiaomi-device-control

xiaomi-device-control

MCP server for controlling Xiaomi/Mi Home smart devices via natural language, supporting device listing, property read/write, action calls, and camera snapshots.

Category
访问服务器

README

xiaomi-device-control

小米/米家智能家居 Claude Code Plugin,通过自然语言控制米家设备。

功能

  • 列出所有米家设备
  • 根据名称搜索设备
  • 云端读取设备属性(开关状态、温度、PM2.5等)
  • 云端设置设备属性(开关、亮度、模式等)
  • 云端调用设备动作(开始清扫等)
  • 自然语言场景联动("我要睡觉了" -> 多设备操作)
  • 摄像头截图与视觉感知(通过 RTSP 或 mock 图片)

架构

                Claude Code
                    |
    +---------------+---------------+
    |                               |
  Skill                        MCP Server
  (自然语言 -> 设备操作)        (5 个工具)
                                    |
                             小米云端 API
                            (MIoT 协议)
                                    |
                              米家设备
  • MCP Server: 底层连接层,提供 5 个标准化工具,通过小米云端 API 控制设备
  • Skill: 上层智能层,将自然语言指令映射为设备操作流程
  • Plugin: 打包层,一键安装 MCP + Skill

安装

方式一:Claude Plugin(推荐)

在 Claude Code 交互界面中执行:

/plugin marketplace add alleneee/xiaomi-device-control
/plugin install xiaomi-home@alleneee-xiaomi-device-control

或在命令行中执行:

claude plugin marketplace add alleneee/xiaomi-device-control
claude plugin install xiaomi-home@alleneee-xiaomi-device-control

方式二:手动安装

git clone https://github.com/alleneee/xiaomi-device-control.git
cd xiaomi-device-control
uv sync

~/.claude/settings.jsonmcpServers 中添加:

{
  "xiaomi-home": {
    "command": "uv",
    "args": ["run", "--directory", "/path/to/xiaomi-device-control", "python", "-m", "src.server"]
  }
}

复制 skills/xiaomi-home/~/.claude/skills/xiaomi-home/

首次使用时在对话中告诉 Claude 配置小米账号即可,无需手动设置环境变量。

配置

方式一:对话中配置(推荐)

安装插件后,直接告诉 Claude:

用户: 帮我配置小米账号
Claude: 请提供你的小米账号和密码
用户: 账号 xxx 密码 xxx
Claude: (调用 xiaomi_setup) 验证码已发送到你的手机 138****1234
用户: 验证码是 123456
Claude: (调用 xiaomi_verify) 验证成功,找到 12 个设备

认证成功后 token 自动保存,后续无需重复配置。

方式二:环境变量配置

cp .env.example .env

编辑 .env

MI_USERNAME=你的小米账号
MI_PASSWORD=你的密码
MI_CLOUD_COUNTRY=cn

首次登录需完成二次验证:

uv run python -m src.auth_helper
uv run python -m src.auth_helper verify <验证码>

认证成功后会保存 token 到 .mi_token,后续无需重复验证。

可用工具

工具 说明
xiaomi_auth_status 检查认证状态
xiaomi_setup 配置账号并发起登录
xiaomi_verify 提交二次验证码
xiaomi_list_devices 列出所有设备
xiaomi_find_device 根据名称搜索设备
xiaomi_get_properties 云端读取设备属性
xiaomi_set_property 云端设置设备属性
xiaomi_call_action 云端调用设备动作
xiaomi_camera_list 列出已配置的摄像头
xiaomi_camera_add 添加/更新摄像头配置
xiaomi_camera_remove 移除摄像头配置
xiaomi_camera_snapshot 从摄像头截取图片

MIoT 协议说明

设备属性通过 siid(服务ID) 和 piid(属性ID) 定位,查询设备规格:https://home.miot-spec.com

常见组合:

  • 开关:siid=2, piid=1(true/false)
  • 亮度:siid=2, piid=2(0-100)
  • 色温:siid=2, piid=3
  • 空气净化器模式:siid=2, piid=5
  • PM2.5:siid=3, piid=6

项目结构

xiaomi-device-control/
├── .claude-plugin/
│   ├── plugin.json            # 插件元数据
│   └── marketplace.json       # 插件市场清单
├── .mcp.json                  # MCP Server 声明
├── skills/
│   └── xiaomi-home/
│       └── SKILL.md           # Skill 定义
├── src/                       # MCP Server 源码
│   ├── server.py              # FastMCP Server(5个工具)
│   ├── xiaomi_client.py       # 设备操作封装
│   ├── micloud.py             # 小米云端 API 客户端
│   ├── camera.py              # 摄像头截图(RTSP/Mock)
│   ├── auth_helper.py         # 认证辅助(二次验证)
│   └── config.py              # 配置管理
├── mock_images/               # 测试用 mock 图片
├── .env.example
├── pyproject.toml
└── README.md

使用示例

用户: 把电暖器打开
Claude: 搜索设备 -> 找到电暖器 did -> 设置 siid=2, piid=1, value=true -> "已开启米家石墨烯智能电暖器"

用户: 空气质量怎么样
Claude: 搜索净化器 -> 读取 PM2.5 -> "当前 PM2.5: 46,空气质量良好"

用户: 我要睡觉了
Claude: 关灯 + 净化器切睡眠模式 + 电暖器调低温度 -> 逐一汇报结果

用户: 看看门口有没有人
Claude: 截图 -> 分析图片 -> "门口有一个快递员,要开门灯吗?"

摄像头功能

通过 Micam 或其他 RTSP 桥接服务,可将小米摄像头视频流接入本项目。

前置条件

  • 部署 Micam(Docker)获取 RTSP 流地址
  • 本机安装 ffmpegbrew install ffmpeg

配置摄像头

用户: 添加门口摄像头,地址是 rtsp://192.168.1.100:8554/door
Claude: (调用 xiaomi_camera_add) 已添加摄像头"门口"

测试模式(无需真实摄像头)

将测试图片放入 mock_images/ 目录,使用 mock:// 协议:

用户: 添加测试摄像头,地址是 mock://test.jpg
Claude: (调用 xiaomi_camera_add) 已添加摄像头

用户: 看看测试摄像头
Claude: (调用 xiaomi_camera_snapshot -> 读取图片) 图中是一张测试图片...

mock:// 支持单个文件或目录(轮询目录内图片)。

许可证

MIT

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选