Xiaomi smart home MCP server
MijiaPilot
中文 | English | 日本語 | 한국어 | Español
Mijia × MCP × AI Agent × HomeKit 全ブリッジスマートホームプラットフォーム。
謝辞:本プロジェクトの基盤には Do1e/mijia-api (mijiaAPI v3.0+) が提供するPython SDKを使用しており、Xiaomiクラウドとのデバイス通信、属性の読み書き、シーン実行を行っています。原作者のオープンソースへの貢献に感謝いたします。
デモ


Related MCP server: Home Controller
機能特性
Web管理画面 — デバイス制御、ホーム/シーン管理、エネルギー消費統計、自動化ルール、ダークモード、モバイル対応
RESTful API — JWT認証、完全なSwaggerドキュメント (
/api/docs/)、サードパーティ統合をサポートCLIツール —
mijia-controlコマンドライン、ログイン、デバイスリスト、属性の読み書き、シーン実行をサポートリアルタイム通信 — SocketIOによるデバイス状態変更のプッシュ通知
デバイスグループ/お気に入り — カスタムグループによるデバイス管理、よく使うデバイスのお気に入り登録
タイマー自動化ルール — cron、interval、日の出/日の入りなどのトリガー方式をサポート
エネルギー消費ダッシュボード — デバイスごとのエネルギー消費データを記録・表示(日/時間単位)
APIトークン管理 — サードパーティアプリケーション用のアクセス用トークンの作成と管理
MCP Server — MCPプロトコルを内蔵し、Claude Code / Hermes Agent などのAIエージェントから直接呼び出し可能
HomeKitブリッジ — Appleの「ホーム」アプリとSiriからMijiaデバイスを制御。照明、コンセント、センサー、サーモスタットなどをサポート
マルチユーザー & 権限 — ユーザー登録・ログイン、管理者バックエンド、レート制限保護
技術スタック
レイヤー | 技術 |
Webフレームワーク | 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.pyhttp://127.0.0.1:5000 にアクセスし、アカウントを登録して使用を開始します。
API概要
モジュール | パスプレフィックス | 説明 |
認証 (Session) |
| 登録、ログイン、ログアウト、パスワード変更 |
認証 (JWT) |
| JWTログイン、トークン更新 |
Xiaomiアカウント連携 |
| QRコード連携、状態確認、連携解除 |
デバイス管理 |
| デバイスリスト、属性の読み書き、アクション実行、カメラストリーム |
ホーム管理 |
| ホームリスト、詳細 |
シーン実行 |
| シーンリスト、実行 |
デバイスグループ |
| グループCRUD、お気に入り管理 |
自動化ルール |
| タイマールールCRUD、有効/無効 |
エネルギー統計 |
| エネルギー記録、日/時間/最新クエリ |
APIトークン |
| トークン管理(サードパーティ統合) |
完全なAPIドキュメント:起動後に /api/docs/ にアクセスしてください。
MCP Server(AIエージェント統合)
MCP Serverを内蔵しており、Claude Code、Hermes Agent、OpenClawなど、MCPプロトコル互換のAIエージェントからMijiaデバイスを直接制御できます。
インストール
pip install -e ".[mcp]"設定
まずWebサービスが起動していることを確認し(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「ホーム」& Siri制御)
HAP-Pythonを使用してHomeKitブリッジを実現し、iPhoneやMacユーザーがAppleの「ホーム」アプリやSiriからMijiaデバイスを直接制御できるようにします。
アーキテクチャ
Apple 家庭 / Siri → HomeKit Bridge (HAP-Python) → Flask REST API → 米家设备
独立进程,端口 51826 python run.pyインストール
pip install -e ".[homekit]"Windowsユーザー:Bonjour Print Services をインストールするか、Dockerを使用してBridgeを実行する必要があります。
設定
.env に以下を追加(または環境変数を直接設定):
HOMEKIT_ENABLED=true
HOMEKIT_PORT=51826
HOMEKIT_PIN=123-45-678Webサービスが起動しており、JWTトークン(MCP Serverと同じ MIJIA_TOKEN)が取得できていることを確認してください。
起動
# 先启动 Web 服务
python run.py
# 再启动 HomeKit Bridge(另一个终端)
python -m app.homekitペアリング
スマホとPCが同じローカルネットワークにあることを確認
iPhone → 「ホーム」アプリ → デバイスを追加 → 端末に表示されたQRコードをスキャン、またはPINを手動入力
ペアリング成功後、デバイスは「Mijia Smart Home」ブリッジとして表示されます
iPhone「ホーム」アプリでの表示
サポートされているデバイスタイプ
HomeKitタイプ | Mijiaデバイス | 制御能力 |
Lightbulb | 電球、LEDテープ | オンオフ、輝度、色温度 |
Outlet | コンセント、スマートスイッチ | オンオフ |
Switch | 掃除機、空気清浄機など | オンオフ |
TemperatureSensor | 温湿度センサー | 温度、湿度読み取り |
Thermostat | エアコンパートナー、除湿機 | オンオフ、目標温度 |
HeaterCooler | ヒーター | オンオフ、目標温度 |
デバイスマッピングのカスタマイズ
デバイスモデルが組み込みルールに含まれていない場合、Bridgeはデバイスの 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