Xiaomi smart home MCP server
MijiaPilot
中文 | English | 日本語 | 한국어 | Español
Платформа умного дома с полным мостом Mijia × MCP × AI Agent × HomeKit.
Благодарности: В основе проекта используется Python SDK от Do1e/mijia-api (mijiaAPI v3.0+), предназначенный для связи с облаком Xiaomi, чтения/записи атрибутов устройств и выполнения сценариев. Спасибо автору за вклад в open source.
Демонстрация


Related MCP server: Home Controller
Функциональные возможности
Веб-интерфейс управления — управление устройствами, домом/сценариями, статистика энергопотребления, правила автоматизации, темная тема, адаптация для мобильных устройств
RESTful API — JWT-аутентификация, полная документация Swagger (
/api/docs/), поддержка сторонних интеграцийCLI-инструмент — командная строка
mijia-control, поддержка входа, списка устройств, чтения/записи атрибутов, выполнения сценариевСвязь в реальном времени — SocketIO для уведомлений об изменении состояния устройств
Группировка/избранное устройств — пользовательская группировка устройств, быстрое добавление в избранное
Правила автоматизации по расписанию — поддержка триггеров cron, интервалов, восхода/заката и т.д.
Панель статистики энергопотребления — запись и отображение данных по устройствам (с детализацией по дням/часам)
Управление API-токенами — создание и управление токенами доступа для сторонних приложений
MCP Server — встроенная поддержка протокола MCP, прямой вызов AI-агентами, такими как Claude Code / Hermes Agent
Мост HomeKit — управление устройствами Mijia через приложение Apple Home и Siri, поддержка освещения, розеток, датчиков, термостатов и т.д.
Многопользовательский режим и права доступа — регистрация и вход пользователей, панель администратора, защита от ограничения частоты запросов (rate limiting)
Технологический стек
Уровень | Технология |
Веб-фреймворк | Flask 3.0+ |
ORM и миграции | SQLAlchemy + Flask-Migrate (Alembic) |
База данных | MySQL (pymysql) |
Аутентификация | Flask-Login (Session) + Flask-JWT-Extended (API) |
CSRF-защита | Flask-WTF |
Ограничение запросов | Flask-Limiter |
Связь в реальном времени | Flask-SocketIO |
Документация API | Flasgger (Swagger UI) |
Сериализация/валидация | Marshmallow |
Mijia SDK | mijiaAPI >= 3.0 |
Протокол MCP | MCP Python SDK >= 1.6 |
HomeKit | HAP-Python >= 5.0 |
Качество кода | Ruff (lint + format) |
Тестирование | pytest |
Структура проекта
├── app/
│ ├── __init__.py # Flask 应用工厂
│ ├── extensions.py # 扩展实例(db, jwt, csrf, socketio...)
│ ├── api/ # REST API 蓝图 (JWT 认证)
│ ├── web/ # Web UI 蓝图 (Session + CSRF 认证)
│ ├── services/ # 业务逻辑层
│ ├── models/ # SQLAlchemy 数据模型
│ ├── schemas/ # Marshmallow 序列化/校验
│ ├── utils/ # MijiaAPI 适配器、统一响应、装饰器
│ ├── cli/ # Click CLI 命令
│ └── homekit/ # HomeKit Bridge(Apple 家庭桥接)
├── mcp_server/ # MCP Server(AI Agent 工具)
├── config/ # Flask 配置(development/testing/production)
├── migrations/ # Alembic 数据库迁移脚本
├── tests/ # pytest 测试
├── run.py # 开发服务器入口
├── docs/ # 详细文档(HomeKit、API 等)
└── pyproject.toml # 项目配置 & 依赖Быстрый старт
1. Подготовка окружения
Python 3.10+
MySQL 5.7+
2. Установка
# 克隆本项目
git clone https://github.com/handsomejustin/mijia-control.git
cd mijia-control
# 创建虚拟环境
python -m venv venv
source venv/bin/activate # Linux/Mac
# venv\Scripts\activate # Windows
# 安装依赖(mijiaAPI 会作为依赖自动安装)
pip install -e ".[dev]"3. Конфигурация
Скопируйте .env.example в .env и заполните необходимые параметры:
cp .env.example .envFLASK_APP=app:create_app
FLASK_ENV=development
SECRET_KEY=your-secret-key-here
DATABASE_URL=mysql+pymysql://user:password@127.0.0.1:3306/mijia
JWT_SECRET_KEY=your-jwt-secret-key-here
GO2RTC_URL=http://127.0.0.1:19844. Инициализация базы данных
# 创建 MySQL 数据库
mysql -u root -p -e "CREATE DATABASE mijia CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
# 执行迁移
flask db upgrade5. Запуск
python run.pyПерейдите по адресу http://127.0.0.1:5000, зарегистрируйте аккаунт и начните работу.
Обзор API
Модуль | Префикс пути | Описание |
Аутентификация (Session) |
| Регистрация, вход, выход, смена пароля |
Аутентификация (JWT) |
| JWT-вход, обновление токена |
Привязка аккаунта Xiaomi |
| Привязка по QR-коду, проверка статуса, отвязка |
Управление устройствами |
| Список устройств, чтение/запись атрибутов, выполнение действий, поток с камер |
Управление домом |
| Список домов, детали |
Выполнение сценариев |
| Список сценариев, выполнение |
Группировка устройств |
| CRUD групп, управление избранным |
Правила автоматизации |
| CRUD правил по расписанию, включение/выключение |
Статистика энергопотребления |
| Записи энергопотребления, запросы по дням/часам/последним данным |
API Token |
| Управление токенами (сторонние интеграции) |
Полная документация API: после запуска перейдите по адресу /api/docs/.
MCP Server (Интеграция с AI Agent)
Встроенный MCP-сервер поддерживает Claude Code, Hermes Agent, OpenClaw и любых других AI-агентов, совместимых с протоколом MCP, для прямого управления устройствами Mijia.
Установка
pip install -e ".[mcp]"Конфигурация
Сначала убедитесь, что веб-сервис запущен (python run.py), затем получите токен:
# 方式一:CLI 登录(推荐,自动保存 Token)
mijia-control login
# 方式二:API 登录获取
curl -X POST http://127.0.0.1:5000/api/auth/jwt/login \
-H "Content-Type: application/json" \
-d '{"username": "你的用户名", "password": "你的密码"}'
# 返回的 access_token 即为 MIJIA_TOKENУстановите переменные окружения:
# Linux / macOS
export MIJIA_API_URL=http://127.0.0.1:5000/api
export MIJIA_TOKEN=eyJhbGci... # 上一步获取的 access_token
# Windows (PowerShell)
$env:MIJIA_API_URL = "http://127.0.0.1:5000/api"
$env:MIJIA_TOKEN = "eyJhbGci..."
# Windows (CMD)
set MIJIA_API_URL=http://127.0.0.1:5000/api
set MIJIA_TOKEN=eyJhbGci...Использование в Claude Code
# 注册 MCP 服务器
claude mcp add mijia -- python -m mcp_server
# 之后在对话中直接使用
# "帮我把客厅的灯关掉"
# "查看所有设备的在线状态"
# "执行回家场景"Доступные инструменты
Инструмент | Функция |
| Список всех устройств |
| Просмотр деталей и спецификаций устройства |
| Чтение атрибута устройства |
| Установка атрибута устройства (управление) |
| Выполнение действия устройства |
| Список сценариев |
| Выполнение сценария |
| Список домов |
| Просмотр деталей дома |
HomeKit Bridge (Управление через Apple Home и Siri)
Реализация моста HomeKit через HAP-Python позволяет пользователям iPhone и Mac управлять устройствами Mijia напрямую через приложение Apple Home и Siri.
Архитектура
Apple 家庭 / Siri → HomeKit Bridge (HAP-Python) → Flask REST API → 米家设备
独立进程,端口 51826 python run.pyУстановка
pip install -e ".[homekit]"Пользователи Windows: необходимо установить Bonjour Print Services или использовать Docker для запуска моста.
Конфигурация
Добавьте в .env (или установите переменные окружения):
HOMEKIT_ENABLED=true
HOMEKIT_PORT=51826
HOMEKIT_PIN=123-45-678Убедитесь, что веб-сервис запущен и получен JWT-токен (тот же MIJIA_TOKEN, что и для MCP Server).
Запуск
# 先启动 Web 服务
python run.py
# 再启动 HomeKit Bridge(另一个终端)
python -m app.homekitСопряжение
Убедитесь, что телефон и компьютер находятся в одной локальной сети
iPhone → Приложение «Дом» → Добавить устройство → Отсканируйте QR-код, отображаемый в терминале, или введите PIN вручную
После успешного сопряжения устройства появятся как мост «Mijia Smart Home»
Вид в приложении Apple Home на iPhone
Поддерживаемые типы устройств
Тип HomeKit | Устройство Mijia | Возможности управления |
Lightbulb | Лампы, светодиодные ленты | Вкл/выкл, яркость, цветовая температура |
Outlet | Розетки, умные выключатели | Вкл/выкл |
Switch | Роботы-пылесосы, очистители и т.д. | Вкл/выкл |
TemperatureSensor | Датчики температуры и влажности | Чтение температуры, влажности |
Thermostat | Кондиционеры, осушители | Вкл/выкл, целевая температура |
HeaterCooler | Обогреватели | Вкл/выкл, целевая температура |
Пользовательское сопоставление устройств
Если модель вашего устройства отсутствует во встроенных правилах, мост автоматически определит тип на основе spec_data устройства. Если определение неточное, можно создать homekit_mapping.yaml для настройки сопоставления:
cp homekit_mapping.yaml.example homekit_mapping.yaml# homekit_mapping.yaml
devices:
zhimi.airp.mb4a: switch # 精确 model 匹配
lumi.sensor_magnet.aq2: ignored # 忽略不需要的设备
fallback: auto # auto=智能推断 | switch=全部当开关 | ignore=忽略未知Доступные категории: light, outlet, switch, temperature_sensor, thermostat, heater, camera, ignored
Использование CLI
После установки и активации виртуального окружения можно использовать команду mijia-control (без контекста Flask):
mijia-control --help # 查看帮助Также можно вызывать через Flask CLI:
flask mijia <command>
Кроссплатформенность: pip install -e ".[dev]" автоматически создает исполняемые файлы для платформы:
Платформа | Путь к исполняемому файлу | Описание |
Windows |
| Доступно после активации venv |
Linux / macOS |
| Доступно после активации venv |
Опционально: глобальное использование (без активации venv)
# Linux / macOS — 创建软链接
sudo ln -s /path/to/mijia-control/venv/bin/mijia-control /usr/local/bin/mijia-control
# Windows — 将以下路径添加到系统 PATH 环境变量
# D:\path\to\mijia-control\venv\ScriptsУправление пользователями
mijia-control login # 登录(交互式输入用户名密码)
mijia-control logout # 退出登录
mijia-control whoami # 查看当前用户
mijia-control xiaomi status # 查看小米账号绑定状态
mijia-control xiaomi unlink # 解绑小米账号Управление устройствами
mijia-control device list # 列出设备
mijia-control device list --home-id <id> # 按家庭筛选
mijia-control device list --refresh # 强制刷新设备列表
mijia-control device show <did> # 查看设备详情
mijia-control device get <did> <prop_name> # 读取设备属性
mijia-control device set <did> <prop_name> <value> # 设置设备属性
mijia-control device action <did> <action_name> # 执行设备动作Сценарии и дома
mijia-control scene list # 列出场景
mijia-control scene list --refresh # 强制刷新
mijia-control scene run <scene_id> # 执行场景
mijia-control home list # 列出家庭
mijia-control home show <home_id> # 查看家庭详情Разработка
# Lint
ruff check .
# 自动修复
ruff check --fix .
# 格式化
ruff format .
# 运行测试
pytest -vЛицензия
Проект распространяется под лицензией GPL-3.0, наследуя условия лицензии от вышестоящего проекта mijiaAPI.
Maintenance
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
- AlicenseAqualityDmaintenanceA Model Context Protocol (MCP) integration that allows AI assistants to control Home Assistant devices by searching for entities and controlling devices through natural language commands.324MIT
- Alicense-qualityDmaintenanceA unified smart home automation system that enables control and monitoring of Miele appliances, LG ThinQ devices, HUUM saunas, and Phyn water monitors through Claude using the Model Context Protocol.78MIT
- Flicense-qualityDmaintenanceAn MCP server based on the Mastra framework for controlling Xiaomi Mi Home smart devices. It enables device discovery, property management, action execution, and scene control through the Mi Home cloud service.
- Flicense-qualityCmaintenanceMCP server for controlling Xiaomi/Mi Home smart devices via natural language, supporting device listing, property read/write, action calls, and camera snapshots.11
Related MCP Connectors
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Real-time chat hub for AI agents — Claude Code, Cursor, Cline, Codex over MCP or REST.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/handsomejustin/mijia-control'
If you have feedback or need assistance with the MCP directory API, please join our Discord server