AI 클라이언트가 로컬 Mijia 허브 게이트웨이에서 Mijia 스마트 홈 자동화 규칙을 생성, 편집, 검증 및 문제 해결할 수 있도록 지원합니다.
다른 이름 allocnode/oh-my-sage, oh-my-sage-mcp
- 스타
- 137
- Tools
- —
- 다운로드, 30일
- —
- 최신 버전
- —
- 마지막 커밋
- 2026년 11월 7일
- 라이선스
- MIT
Oh My Sage MCP란?
Oh My Sage은(는) MCP server입니다. AI 클라이언트가 로컬 Mijia 허브 게이트웨이에서 Mijia 스마트 홈 자동화 규칙을 생성, 편집, 검증 및 문제 해결할 수 있도록 지원합니다.
프로젝트 README에서 생성된 요약
Oh My Sage MCP server 정보
이 서버는 Mijia 중앙 허브 게이트웨이를 사용하는 사용자가 자연어를 통해 Mijia 스마트 홈 자동화를 관리할 수 있게 해줍니다. IP 주소와 일회용 로그인 코드를 통해 로컬 게이트웨이에 연결하면, AI 에이전트가 기존 장치와 규칙을 읽어 새로운 자동화 로직을 제안, 검증 및 구현할 수 있습니다. Claude Code, Cursor, Kimi Code와 같은 다양한 AI 클라이언트나 전용 웹 인터페이스를 통해 작동합니다.
사용자는 특정 규칙 노드 수정, 모든 자동화에 걸친 장치 사용량 검색, 실행 로그를 통한 특정 규칙 실패 원인 파악 등 복잡한 작업을 수행할 수 있습니다. 이 서버에는 장치 세부 정보, 변수 관리 및 규칙 초안 작성을 처리하기 위한 32개의 도구가 포함되어 있습니다. 신뢰성을 보장하기 위해 게이트웨이에 변경 사항을 쓰기 전 MIOT Spec에 따라 구조 및 기능 검사를 수행합니다. 로컬 상주 배포 또는 여러 장치에서 공유 액세스가 가능한 Docker 배포를 지원합니다.
프로젝트의 README를 바탕으로 작성되었습니다. 모든 활용 사례는 해당 내용의 인용문과 대조하여 확인합니다.
Oh My Sage MCP 설치 방법
형식 확인: 2026년 11월 10일Cursor에 추가Goose에 추가Claude Code에 Oh My Sage MCP 설치
$ claude mcp add oh-my-sage -- npx -y oh-my-sage-mcpCursor에 Oh My Sage MCP 설치
~/.cursor/mcp.json
{
"mcpServers": {
"oh-my-sage": {
"command": "npx",
"args": [
"-y",
"oh-my-sage-mcp"
]
}
}
}VS Code에 Oh My Sage MCP 설치
.vscode/mcp.json
{
"servers": {
"oh-my-sage": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"oh-my-sage-mcp"
]
}
}
}VS Code CLI에 Oh My Sage MCP 설치
$ code --add-mcp '{"name":"oh-my-sage","type":"stdio","command":"npx","args":["-y","oh-my-sage-mcp"]}'Claude Desktop에 Oh My Sage MCP 설치
claude_desktop_config.json
{
"mcpServers": {
"oh-my-sage": {
"command": "npx",
"args": [
"-y",
"oh-my-sage-mcp"
]
}
}
}Codex에 Oh My Sage MCP 설치
$ codex mcp add oh-my-sage -- npx -y oh-my-sage-mcpCodex config.toml에 Oh My Sage MCP 설치
~/.codex/config.toml
[mcp_servers.oh-my-sage] command = "npx" args = ["-y", "oh-my-sage-mcp"]
Gemini CLI에 Oh My Sage MCP 설치
$ gemini mcp add -s user oh-my-sage npx -- -y oh-my-sage-mcpGemini settings.json에 Oh My Sage MCP 설치
~/.gemini/settings.json
{
"mcpServers": {
"oh-my-sage": {
"command": "npx",
"args": [
"-y",
"oh-my-sage-mcp"
]
}
}
}구성
GATEWAY_URLLLM_API_KEYLLM_BASE_URLLLM_MODEL
| 이름 | 설명 | 유형 |
|---|---|---|
| GATEWAY_URL | — | |
| LLM_API_KEY | — | |
| LLM_BASE_URL | — | |
| LLM_MODEL | — |
자동 검사
2026년 11월 12일에 실행됨전체 보고서 →자동 검사를 통과했습니다. 이는 보안 감사가 아닙니다. 코드를 직접 읽고 서버에 필요한 최소한의 권한만 부여하십시오. 검사 방식
- 소스 저장소 연결 및 접근 가능통과
- 오픈 소스 라이선스 (OSI)통과
- 최근 1년 내 커밋 또는 릴리스통과
- 패키지 이름이 인기 패키지와 유사하지 않음통과
- 원격 엔드포인트가 HTTPS 사용검사되지 않음
- 파괴적인 도구에 라벨 표시됨검사되지 않음
- 모델에 대한 숨겨진 지침 없음통과
- 패키지 및 해당 종속성에 중요한 보안 권고 없음검사되지 않음
README
GitHub에서 보기Oh My Sage
用说话的方式,创建和修改米家自动化极客版规则

Oh My Sage 直接连接局域网里的米家中枢网关。你说想要什么效果,它去读你家的设备和已有规则,给出方案,你确认后自动校验并写进网关,在米家 App 的极客版里立刻能看到。
可以在任何支持 MCP 的 AI Agent 里用(腾讯 WorkBuddy、TRAE、Qoder、通义灵码、Kimi Code、Claude Code、Cursor、OpenCode、Codex 等),也可以打开自带的网页版直接聊天。
它能做什么
| 你说 | 它会做什么 |
|---|---|
| 「客厅有人的时候自动开灯,晚上别太亮」 | 找到人体传感器和灯,读出它们支持的属性,给出两三个方案让你选,选完校验并创建规则 |
| 「冰箱门提醒太吵了,最高音量从 60 降到 50,其他别动」 | 在全部规则里定位那一个节点,只改这一行,其余节点原样保留 |
| 「哪些规则用到了玄关灯?」 | 扫描所有规则,列出引用这个设备的规则和节点 |
| 「回家开灯昨晚为什么没触发?」 | 读网关执行日志,告诉你流程停在了哪个节点 |
| 「离家规则的卡片乱成一团,整理一下」 | 检查重叠和穿过卡片的连线,按连接关系重新排版 |
| 「sleepMode 这个变量没用了,删掉」 | 先扫描全部规则,还有规则在用就拒绝,并告诉你是哪几条 |
第一项网页版和 AI Agent 都能做,其余几项目前只在 AI Agent 里提供。
快速开始
准备
- 一台米家中枢网关,在米家 App 里开启「自动化极客版」。
- 网关的局域网 IP:米家 App → 中枢网关(多个时选主中枢)→ 右上角「···」→「自动化极客版」,页面上能看到。同一个页面还会显示 6 位登录码,连接时再来取,它只能用一次。
- Node.js 20 或更高版本,终端里运行
node -v能看到版本号即可。
安装(两条命令)
把 <网关 IP> 换成你的网关 IP,在终端里依次运行:
npx -y add-mcp oh-my-sage-mcp -g -n oh-my-sage --env GATEWAY_URL=http://<网关 IP>
npx -y skills add allocnode/oh-my-sage --skill mijia-automation -g
- 第一条把 MCP Server 加进 AI Agent 的配置,会列出你电脑上装的 AI Agent,勾选要用的那几个。
- 第二条安装规则 Skill,AI 创建和修改规则时要参考它,同样勾选你的 AI Agent。
装完重启 AI Agent,在米家 App 里取一个新的登录码,对它说:
帮我连接米家网关,登录码是 <登录码>
连上以后直接提需求,比如「客厅有人的时候自动开灯,晚上别太亮」。
在 AI Agent 的 MCP 设置里选「手动添加」或「编辑 JSON」,粘贴:
{
"mcpServers": {
"oh-my-sage": {
"command": "npx",
"args": ["-y", "oh-my-sage-mcp"],
"env": { "GATEWAY_URL": "http://<网关 IP>" }
}
}
}
不支持 Skill 的 AI Agent,可以把 SKILL.md 的内容贴进它的规则文件(比如 AGENTS.md)。其他客户端的写法见 部署指南。
不想每次重启都输登录码
上面的方式由 AI Agent 按需启动 MCP Server,AI Agent 一退出连接就断了。改成常驻服务后,网关只登录一次,所有 AI Agent 共用。

本机常驻(自己一台电脑用):
npm install -g oh-my-sage-mcp
# Windows(PowerShell,不需要管理员权限)
powershell -ExecutionPolicy Bypass -File "$(npm root -g)/oh-my-sage-mcp/deploy/install-local.ps1" -GatewayUrl "http://<网关 IP>"
# macOS / Linux
bash "$(npm root -g)/oh-my-sage-mcp/deploy/install-local.sh" -g "http://<网关 IP>"
# 把 AI Agent 的配置换成连接这个服务
npx -y add-mcp http://127.0.0.1:3790/mcp -g -n oh-my-sage
服务开机登录后自动运行,只对本机开放。
私有服务器 / NAS(几台电脑共用,或者用豆包工作这类云端 AI Agent):在服务器上用 Docker 部署,步骤见 部署指南。部署好后,每台电脑运行:
npx -y add-mcp http://<服务器 IP>:3790/mcp -g -n oh-my-sage --header "Authorization: Bearer <访问密码>"
升级与卸载
| 用法 | 升级 | 卸载 |
|---|---|---|
| 按需启动 | 自动,每次启动都会用 npm 上的最新版 | 删掉 AI Agent 配置里的 oh-my-sage |
| 本机常驻 | npm install -g oh-my-sage-mcp,再运行一次安装脚本 |
安装脚本加 -Uninstall(Windows)或 -u 运行,再 npm uninstall -g oh-my-sage-mcp |
| 私有服务器 | 见 部署指南 | 在 deploy 目录运行 docker compose down |
Skill 升级:npx -y skills update mijia-automation -g;卸载:npx -y skills remove mijia-automation -g。每个版本的改动见 Releases。
网页版

网页版要下载仓库运行,需要 Git:
git clone https://github.com/allocnode/oh-my-sage.git
cd oh-my-sage
npm install
cp .env.example .env # Windows PowerShell:Copy-Item .env.example .env
编辑 .env,填好这四项:
LLM_BASE_URL=https://api.deepseek.com/v1
LLM_MODEL=deepseek-flash
LLM_API_KEY=<你的 API Key>
GATEWAY_URL=http://<网关 IP>
| 服务商 | LLM_BASE_URL |
LLM_MODEL 示例 |
|---|---|---|
| DeepSeek | https://api.deepseek.com/v1 |
deepseek-flash |
| 通义千问 | https://dashscope.aliyuncs.com/compatible-mode/v1 |
qwen3.8-flash |
| Kimi | https://api.moonshot.cn/v1 |
kimi-k3.1-pro |
| 智谱 GLM | https://open.bigmodel.cn/api/paas/v4 |
glm-5.3-flashx |
| 豆包(火山方舟) | https://ark.cn-beijing.volces.com/api/v3 |
doubao-seed-2-1-pro-260628 |
| OpenAI | https://api.openai.com/v1 |
gpt-6.1-terra |
| 本地 Ollama | http://localhost:11434/v1 |
你已拉取的模型名 |
任何 OpenAI 兼容接口都可以。然后运行 npm run dev,浏览器打开 http://localhost:3000 ,输入登录码即可。长期使用可以 npm run build 后用 npm start 启动。更新:git pull、npm install 后重启。
网页版没有账号系统,不要把它暴露到公网。
写入前一定校验

写入网关之前固定做两项检查,任意一项不通过就不写入,并把原因交给 AI 修正:
- 结构校验:节点之间的连线是否完整,端口是否接对
- 设备能力校验:按设备真实的 MIOT Spec 核对属性是否存在、能不能写、取值是否在范围内,引用的变量是否存在
读写规则用一行一个节点的紧凑文本,设备直接写名称,修改只提交变化的几行,并带上读取时的 hash,规则在这期间被改过就拒绝写入:
t at 20:00:00 -> chk
chk get 客厅吸顶灯 2/1 = true -> off
off set 客厅吸顶灯 2/1 = false
完整语法见 规则文本格式。
MCP 工具列表
共 32 个工具。创建和修改规则的工具需要配合 mijia-automation Skill。
安全说明
- 只在局域网里连网关,通信用网关自己的登录码认证和加密,不经过云端。唯一的公网请求是校验设备能力时从
miot-spec.org读取设备型号的公开定义;网页版另外会把对话发给你配置的大模型接口。 - 常驻服务监听非本机地址时必须设置访问密码(
MCP_AUTH_TOKEN),否则拒绝启动。 - 排障用的
mijia_call_api只开放只读方法,不能绕过校验写网关。 - 删除前有检查:变量还被规则使用时拒绝删除;删除规则时一起清理它自己的变量。
常见问题
登录码提示错误,但我确定没输错? 登录码只能用一次,不管成功还是失败,用过就作废了。取一个新的再试。
AI Agent 里看不到 oh-my-sage,或者显示连接失败?
终端里运行 npx -y oh-my-sage-mcp --version。能打印版本号,问题在 AI Agent 的配置;报错的话,多半是 Node.js 低于 20,或者访问不了 npm。
连不上网关?
确认电脑(或服务器)和网关在同一个局域网,地址是 http:// 加网关 IP,并且「自动化极客版」已开启。
AI 说创建规则需要 Skill? 运行安装里的第二条命令,再重启 AI Agent。
参与贡献
欢迎提 Issue 和 Pull Request。提交前请运行 npm run lint 和 npm run test:unit,测试不会连接真实网关。
.agents/skills/mijia-automation/ 规则 Skill
src/core/ 共用核心:网关客户端、工具、校验、排版
src/mcp/ MCP Server(stdio / Streamable HTTP)
src/app/ src/components/ src/server/ 网页版
deploy/ 常驻服务脚本与 Docker,见 deploy/README.md
License
致谢
Vercel AI SDK · Next.js · Ant Design · Model Context Protocol
Oh My Sage MCP 질문
Oh My Sage MCP를 Claude Code에 추가하려면 어떻게 하나요?
터미널에서 claude mcp add oh-my-sage -- npx -y oh-my-sage-mcp를 실행합니다. 모든 프로젝트에서 사용할 수 있게 하려면 --scope user를 추가합니다.
Oh My Sage MCP를 Cursor에 추가하려면 어떻게 하나요?
~/.cursor/mcp.json를 열고 mcpServers 아래에 서버를 추가합니다. 위 설치 섹션에 표시된 Cursor 구성을 사용합니다.
Oh My Sage를 Mijia 게이트웨이에 어떻게 연결하나요?
GATEWAY_URL을 통해 게이트웨이의 LAN IP를 AI에게 제공하고, Mijia App에서 발급받은 6자리 일회용 로그인 코드를 입력한 뒤 에이전트에게 해당 코드로 연결하도록 요청하세요.
Oh My Sage가 기존 자동화 규칙을 새로 쓰지 않고 수정할 수 있나요?
네, 영향을 받는 노드만 변경하는 증분 패치 방식을 사용하여 나머지 부분을 보존합니다. 그 사이 규칙이 변경된 경우에는 쓰기 작업을 거부합니다.
Oh My Sage는 게이트웨이에 규칙을 쓰기 전에 검증 과정을 거치나요?
네, 노드 연결과 포트 배선을 확인한 후 실제 MIOT Spec과 비교하여 장치 속성을 검증합니다. 검증에 실패하면 쓰기 작업을 수행하지 않습니다.
Mijia 로그인 코드가 왜 거부되나요?
로그인 코드는 일회용입니다. 시도 성공 여부와 관계없이 만료되므로, Mijia App에서 새 코드를 가져와 다시 시도하세요.
Oh My Sage를 네트워크를 통해 사용하거나 여러 컴퓨터에서 공유할 수 있나요?
네, 로컬에서 백그라운드 서비스로 실행하거나 Docker를 사용하여 프라이빗 서버 또는 NAS에 배포할 수 있습니다. 로컬이 아닌 환경의 리스너는 액세스 토큰이 필요합니다.