关于 Dirigera Mcp Iot Device Control Server
面向智能家居用户的 MCP 服务,用于管理 IKEA Dirigera 设备,包括灯、插座和环境传感器。它提供设备状态查询与控制工具,并支持本地及远程传输方式。
主要功能
- 01查看传感器读数
- 02查看插座和灯具状态
- 03切换设备开关
- 04调节灯光亮度和颜色
- 05支持标准输入输出及远程传输
- 06可选 JWT 身份验证
适用场景
- 01查询温度、湿度和空气质量
- 02查看插座功率及灯具状态
- 03按名称开关灯具或插座
- 04调整兼容灯具的亮度或颜色
MCP 相关
向 MCP 客户端提供传感器、插座和灯具状态查询,以及电源和灯光设置控制工具。支持标准输入输出、streamable HTTP 和 SSE 传输。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Dirigera MCP 服务
用于控制 IKEA Dirigera 智能家居设备的 MCP 服务,包括插座、灯具和环境传感器。
基于 FastMCP 和 dirigera Python 库构建。
前提条件
- Python 3.11+
- uv 包管理器
- 本地网络中的 IKEA Dirigera Hub
设置
1. 安装依赖项
uv sync
2. 获取 Dirigera 令牌
你需要一个 JWT 令牌来向 Dirigera Hub 进行身份验证。使用附带的辅助工具:
uv run gen_token.py 192.168.1.200
此操作会向 Hub 发送身份验证质询。出现提示时,按下 Dirigera Hub 上的操作按钮,随后会输出令牌。
3. 配置
复制示例配置并填入你的值:
cp config.example.toml config.toml
[dirigera]
host = "192.168.1.200"
token = "your-dirigera-token-here"
默认情况下,服务会在 ../config.toml(上一级目录)中查找配置。使用 --config-path 覆盖此路径:
uv run dirigeramcp.py --config-path ./config.toml
运行服务
本地(stdio)——用于 Claude Desktop、Claude Code、MCP CLI
uv run dirigeramcp.py
远程(streamable-http)——推荐用于远程客户端
uv run dirigeramcp.py --transport streamable-http --host 0.0.0.0 --port 8000
服务将在 http://<your-ip>:8000/mcp 上提供。
远程(SSE)——旧版
uv run dirigeramcp.py --transport sse --host 0.0.0.0 --port 8000
服务将在 http://<your-ip>:8000/sse 上提供。
使用 JWT 身份验证
对于远程传输,你可以启用 JWT 身份验证:
uv run dirigeramcp.py --transport streamable-http --host 0.0.0.0 --auth
首次使用 --auth 运行时,如果配置中不存在 [auth] 部分,服务会自动生成密钥并保存。你也可以在 config.toml 中手动设置:
[auth]
jwt_secret = "your-hex-secret"
api_key = "your-hex-api-key"
expiry_hours = 24
要获取 JWT 令牌,请向令牌端点发送 POST 请求:
curl -X POST http://localhost:8000/auth/token \
-H "Content-Type: application/json" \
-d '{"api_key": "your-api-key"}'
要刷新即将过期的令牌:
curl -X POST http://localhost:8000/auth/refresh \
-H "Authorization: Bearer <your-jwt-token>"
可用工具
| 工具 | 描述 | 参数 |
|---|---|---|
get_environment_sensors | 列出包含温度、湿度、PM2.5、VOC、CO2 数据的传感器 | -- |
get_outlets | 列出包含功率、电压、电流数据的插座 | -- |
get_lights | 列出包含亮度、色温、色相、饱和度和开关状态的灯具 | -- |
set_onoff | 按名称打开或关闭插座或灯具 | name、is_on |
set_light_level | 设置灯具亮度 | name、light_level(int) |
set_light_color | 设置灯具颜色(如果支持) | name、color_saturation(0.0-1.0)、color_hue(0-360) |
使用 MCP Inspector 测试
npx @modelcontextprotocol/inspector uv --directory . run dirigeramcp.py
Claude Desktop 配置
将以下内容添加到你的 Claude Desktop claude_desktop_config.json:
{
"mcpServers": {
"dirigera": {
"command": "uv",
"args": [
"--directory",
"/path/to/mcp-agents/dirigera/fastmcp",
"run",
"dirigeramcp.py"
]
}
}
}
命令行选项
--config-path Path to config TOML file (default: ../config.toml)
--host Host to bind to (default: 127.0.0.1, use 0.0.0.0 for remote)
--port Port to bind to (default: 8000)
--transport stdio | sse | streamable-http (default: stdio)
--auth Enable JWT authentication (remote transports only)
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。