Yalla MCP服务器
一种基于Go的模型上下文协议(MCP)服务器,用于控制Aqara智能家居设备。此服务器提供MCP工具,用于列出和控制智能家居设置中的设备按钮/场景。
特性
- MCP集成:将智能家居控件作为MCP工具公开
- Aqara Cloud API:与Aqara云服务集成,用于设备管理
- HTTP传输:作为HTTP服务器运行,带有服务器发送事件(SSE)
- 认证:带有请求签名的承载令牌身份验证
- CORS支持:Web客户端兼容
快速开始
先决条件
- 转到1.24.5或更高版本
- Aqara云服务帐户和API证书
安装
- 克隆存储库:
git clone
cd yalla-mcp- 安装依赖项:
go mod download- 在中配置环境变量
.env:
API_KEY=your_aqara_api_key
API_TOKEN=your_authentication_token
host=127.0.0.1
port=8080跑步
# Development
go run .
# Build and run
go build .
./main服务器将于启动 http://127.0.0.1:8080 默认情况下。
MCP工具
list_device_control_buttons
列出当前主页中所有可用的设备控制按钮。
退货:Markdown格式的控制按钮信息
push_device_control_button
通过按下特定按钮执行设备控制命令。
参数:
button(整数):要按下的控制按钮ID
退货:设备控制结果消息
智能家居布局
该系统专为以下房间类型的中国智能家居场景而设计:
- 客厅 (客厅)-包括桌面照明和电视照明条
- 厨房 (厨房)
- 玄关 (入口)
- 主卧 (主卧室)-带天花板灯、左灯和右灯
- 次卧 (次卧)
- 卫生间 (浴室)
- 走廊 (走廊)-连接所有房间
房间控制说明
- 全房间控制(例如“顾客打开”)打开该房间的所有灯
- 还提供单独的设备控制
- 餐厅场景需要走廊照明以及厨房照明
配置
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
API_KEY | Aqara云服务API密钥 | 必需 |
API_TOKEN | MCP客户端的身份验证令牌 | 必需 |
host | 服务器绑定地址 | 127.0.0.1 |
port | 服务器端口 | 8080 |
认证
服务器使用两层安全:
- 承载令牌:HTTP授权标头
API_TOKEN - 请求签名:HMAC-SHA256签署对Aqara API的请求
API集成
服务器与Aqara的云服务通信 https://ai-echo.aqara.cn/echo/mcp。所有请求均使用以下方式签名:
- 从设备指纹生成的应用程序ID
- 从Aqara服务检索到密钥
- HMAC-SHA256请求签名
发展
项目结构
├── main.go # HTTP server and MCP setup
├── service.go # MCP tool implementations
├── smh.go # Aqara API client and HTTP utilities
├── go.mod # Go module dependencies
└── .env # Environment configuration日志记录
服务器使用具有适当日志级别的结构化日志记录:
Debug:HTTP请求和令牌验证Info:工具调用和成功操作Warn:非关键问题Error:失败的操作和API错误
