
这是一个mcp服务器源代码,用于协助ai对米家智能设备进行远程控制。提供了一些接口供ai调用。
概览
一个使用 TypeScript + Python 构建的 Model Context Protocol (MCP) 服务器,整合了 mijiaAPI 提供的米家智能家居能力,支持扫码登录、设备列表、属性读取与设置、场景联动、耗材查询、统计数据等常见操作。 1. :确保终端可以正常显示 ANSI 字符(以便展示二维码)。 2. (选择任意一种): 3. 终端会打印 ASCII 二维码,同时输出一个可访问的二维码链接。 4. 用米家 APP 扫描二维码并确认登录。 5. 认证信息会自动保存到 ~/.config/mijia-api/auth.json(可通过 MIJIA_AUTH_PATH 修改)。 6. 之后调用 MCP 工具会自动复用 Token,除非 Token 过期。 :若希望在项目目录下保存认证信息,可在 .env 中设置 MIJIA_AUTH_PATH=./.mijia-api/auth.json。 c:/Users/chenz/AppData/Local/CodeBuddyExtension/Cache/CodeBuddyIDE/CodeBuddy/mcp/settings.json - home_id (string, 可选):指定家庭 ID - include_shared (boolean, default false) - use_mock (boolean, 可选) - device_id 或 device_name(至少一个) - properties (string[]):需要读取的属性列表(如 on, brightness) - include_metadata (boolean, default true) - sleep_time (number):读取间隔(秒) - device_id 或 device_name - operation:set_property / run_action - prop_name + value:用于 set_property - action_name + action_value:用于 run_action - action_kwargs / params:为动作提供额外参数
README
以下为原文 README 节选,完整内容请查看原文。
My MCP Server · 米家智能控制
一个使用 TypeScript + Python 构建的 Model Context Protocol (MCP) 服务器,整合了 mijiaAPI 提供的米家智能家居能力,支持扫码登录、设备列表、属性读取与设置、场景联动、耗材查询、统计数据等常见操作。
✨ 功能概览
| 工具 | 描述 |
|---|---|
list_mijia_homes |
列出米家账号下的全部家庭 |
get_mijia_devices |
根据家庭筛选设备,支持包含共享设备 |
get_device_status |
查询设备属性,可返回可用属性/动作元数据 |
control_device |
设置属性或执行动作(如开关、亮度、切换场景) |
list_mijia_scenes |
查看家庭下的手动场景 |
run_mijia_scene |
触发指定场景(如“回家”、“晚安”) |
list_mijia_consumables |
查看耗材/配件使用情况(滤芯、电池等) |
get_mijia_statistics |
获取耗电量等统计数据(小时/天/周/月) |
get_device_spec |
在线查询设备规格(属性 siid/piid、动作等) |
get_system_info |
查看 MCP 运行环境信息 |
每个工具都支持
use_mock=true,便于在没有真实账号时调试。
🧱 项目结构
my-mcp-server/
├── src/index.ts # MCP 主入口(TypeScript)
├── dist/index.js # 构建输出
├── python_scripts/
│ ├── mijia_helper.py # 登录、缓存、API 封装
│ ├── mijia_tool.py # action 路由脚本
│ ├── get_mijia_devices.py # 兼容旧入口(委托给 mijia_tool )
│ ├── get_device_status.py
│ ├── control_device.py
│ ├── requirements.txt # Python 依赖
│ └── test_environment.py # 环境检测脚本
├── README.md / SETUP_GUIDE.md # 文档
└── ...
🚀 安装与构建
# 安装 Node 依赖
npm install
# 安装 Python 依赖(建议在虚拟环境中执行)
pip install -r python_scripts/requirements.txt
# 构建 TypeScript
npm run build
🔐 首次扫码登录(必做)
-
准备终端:确保终端可以正常显示 ANSI 字符(以便展示二维码)。
-
执行登录命令(选择任意一种):
# 方式一:使用 Python 模块 python -m mijiaAPI -l # 方式二:使用 CLI 命令 mijiaAPI -l -
终端会打印 ASCII 二维码,同时输出一个可访问的二维码链接。
-
用米家 APP 扫描二维码并确认登录。
-
认证信息会自动保存到
~/.config/mijia-api/auth.json(可通过MIJIA_AUTH_PATH修改)。 -
之后调用 MCP 工具会自动复用 Token,除非 Token 过期。
提示:若希望在项目目录下保存认证信息,可在
.env中设置MIJIA_AUTH_PATH=./.mijia-api/auth.json。
⚙️ MCP 配置示例
c:/Users/chenz/AppData/Local/CodeBuddyExtension/Cache/CodeBuddyIDE/CodeBuddy/mcp/settings.json
{
"mcpServers": {
"mijia-mcp-server": {
"command": "node",
"args": ["c:/Users/chenz/CodeBuddy/20251216173558/dist/index.js"],
"type": "stdio",
"env": {
"PYTHON_PATH": "c:/Users/chenz/CodeBuddy/20251216173558/.venv/Scripts/python.exe",
"PYTHON_SCRIPT_DIR": "c:/Users/chenz/CodeBuddy/20251216173558/python_scripts",
"MIJIA_AUTH_PATH": "c:/Users/chenz/.config/mijia-api/auth.json"
}
}
}
}
🛠️ 工具参数参考
get_mijia_devices
home_id(string, 可选):指定家庭 IDinclude_shared(boolean, defaultfalse)use_mock(boolean, 可选)
get_device_status
device_id或device_name(至少一个)properties(string[]):需要读取的属性列表(如on,brightness)include_metadata(boolean, defaulttrue)sleep_time(number):读取间隔(秒)
control_device
device_id或device_nameoperation:set_property/run_actionprop_name+value:用于set_propertyaction_name+action_value:用于run_actionaction_kwargs/params:为动作提供额外参数
list_mijia_scenes
安装
This server does not publish a one-line install command.
Open the repository installation guide 新手?先看 mcpskill.org 教程 →配置
{
"mcpServers": {
"mijia-mcp-server": {
"command": "node",
"args": ["c:/Users/chenz/CodeBuddy/20251216173558/dist/index.js"],
"type": "stdio",
"env": {
"PYTHON_PATH": "c:/Users/chenz/CodeBuddy/20251216173558/.venv/Scripts/python.exe",
"PYTHON_SCRIPT_DIR": "c:/Users/chenz/CodeBuddy/20251216173558/python_scripts",
"MIJIA_AUTH_PATH": "c:/Users/chenz/.config/mijia-api/auth.json"
}
}
}
}