Skip to main content
Glama
handsomejustin

Xiaomi smart home MCP server

MijiaPilot

中文 | English | 日本語 | 한국어 | Español

MCP Server GitHub license Python Version Flask GitHub stars GitHub issues GitHub last commit

Платформа умного дома с полным мостом 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 .env
FLASK_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:1984

4. Инициализация базы данных

# 创建 MySQL 数据库
mysql -u root -p -e "CREATE DATABASE mijia CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"

# 执行迁移
flask db upgrade

5. Запуск

python run.py

Перейдите по адресу http://127.0.0.1:5000, зарегистрируйте аккаунт и начните работу.

Обзор API

Модуль

Префикс пути

Описание

Аутентификация (Session)

/api/auth/

Регистрация, вход, выход, смена пароля

Аутентификация (JWT)

/api/auth-jwt/

JWT-вход, обновление токена

Привязка аккаунта Xiaomi

/api/xiaomi/

Привязка по QR-коду, проверка статуса, отвязка

Управление устройствами

/api/devices/

Список устройств, чтение/запись атрибутов, выполнение действий, поток с камер

Управление домом

/api/homes/

Список домов, детали

Выполнение сценариев

/api/scenes/

Список сценариев, выполнение

Группировка устройств

/api/groups/

CRUD групп, управление избранным

Правила автоматизации

/api/automations/

CRUD правил по расписанию, включение/выключение

Статистика энергопотребления

/api/energy/

Записи энергопотребления, запросы по дням/часам/последним данным

API Token

/api/tokens/

Управление токенами (сторонние интеграции)

Полная документация 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

# 之后在对话中直接使用
# "帮我把客厅的灯关掉"
# "查看所有设备的在线状态"
# "执行回家场景"

Доступные инструменты

Инструмент

Функция

list_devices

Список всех устройств

get_device

Просмотр деталей и спецификаций устройства

get_property

Чтение атрибута устройства

set_property

Установка атрибута устройства (управление)

run_action

Выполнение действия устройства

list_scenes

Список сценариев

run_scene

Выполнение сценария

list_homes

Список домов

get_home

Просмотр деталей дома

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

Сопряжение

  1. Убедитесь, что телефон и компьютер находятся в одной локальной сети

  2. iPhone → Приложение «Дом» → Добавить устройство → Отсканируйте QR-код, отображаемый в терминале, или введите PIN вручную

  3. После успешного сопряжения устройства появятся как мост «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\Scripts\mijia-control.exe

Доступно после активации venv

Linux / macOS

venv/bin/mijia-control

Доступно после активации 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.

Install Server
A
license - permissive license
A
quality
C
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
5Releases (12mo)
Commit activity

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

  • A
    license
    A
    quality
    D
    maintenance
    A 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.
    3
    24
    MIT
  • A
    license
    -
    quality
    D
    maintenance
    A 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.
    78
    MIT
  • F
    license
    -
    quality
    D
    maintenance
    An 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.
  • F
    license
    -
    quality
    C
    maintenance
    MCP server for controlling Xiaomi/Mi Home smart devices via natural language, supporting device listing, property read/write, action calls, and camera snapshots.
    11

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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