mcp-dyson-appliances
MCP server for controlling Dyson air purifiers and fans
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"mcp-dyson-appliances": {
"args": [
"mcp-dyson-appliances@1.0.0"
],
"command": "npx"
}
}
}
可用工具 (5 个)
该服务在 MCP 协议中暴露的工具,AI 可按需调用
tavily_search 14 个参数 需填 1 项
Search the web for current information on any topic. Use for news, facts, or data beyond your knowledge cutoff. Returns snippets and source URLs.
必填参数:query
tavily_extract 6 个参数 需填 1 项
Extract content from URLs. Returns raw page content in markdown or text format.
必填参数:urls
tavily_crawl 11 个参数 需填 1 项
Crawl a website starting from a URL. Extracts content from pages with configurable depth and breadth.
必填参数:url
tavily_map 8 个参数 需填 1 项
Map a website's structure. Returns a list of URLs found starting from the base URL.
必填参数:url
tavily_research 2 个参数 需填 1 项
Perform comprehensive research on a given topic or question. Use this tool when you need to gather information from multiple sources to answer a question or complete a task. Returns a detailed response based on the research findings.
必填参数:input
服务介绍
mcp-dyson-appliances
An MCP (Model Context Protocol) server for controlling Dyson air purifiers and fans.
# Features
- get_device_status - Get current device state (power, fan speed, oscillation, night mode, air quality)
- set_fan_speed - Set fan speed (1-10 or auto)
- set_oscillation - Enable/disable oscillation
- get_air_quality - Get detailed air quality readings (PM2.5, PM10, VOC, NO2, humidity, temperature)
- set_night_mode - Enable/disable night mode
# Prerequisites
- Node.js 18+
- Dyson account with registered devices
- Dyson devices connected to your network
# Supported Devices
- Pure Cool Link (Tower & Desk)
- Pure Cool
- Pure Hot+Cool
- Pure Hot+Cool Link
- Pure Humidify+Cool
- Pure Cool Formaldehyde
# Installation
# # From npm (Recommended)
npx mcp-dyson-appliances
# # From Source
git clone https://github.com/m2ai-mcp-servers/mcp-dyson-appliances.git
cd mcp-dyson-appliances
npm install
npm run build
# Configuration
# # Environment Variables
export DYSON_EMAIL=your-email@example.com
export DYSON_PASSWORD=your-password
export DYSON_COUNTRY=US # Optional, defaults to US
# # Supported Country Codes
US- United StatesGB- United KingdomDE- GermanyFR- FranceAU- AustraliaCN- China
# # Claude Desktop Configuration
Add to your claude_desktop_config.json:
{
"mcpServers": {
"dyson": {
"command": "npx",
"args": ["-y", "mcp-dyson-appliances"],
"env": {
"DYSON_EMAIL": "your-email@example.com",
"DYSON_PASSWORD": "your-password",
"DYSON_COUNTRY": "US"
}
}
}
}
# Usage Examples
# # Get device status
get_device_status
Returns:
{
"device": {
"serial": "ABC-XX-XXXXXXXX",
"name": "Living Room"
},
"state": {
"power": "on",
"fanSpeed": "5",
"oscillation": "on",
"nightMode": "off",
"autoMode": "off"
},
"airQuality": {
"pm25": 8,
"pm10": 12,
"voc": 2,
"no2": 1,
"humidity": "45%",
"temperature": "22.5°C",
"level": "Good"
}
}
# # Set fan speed
set_fan_speed speed="5"
set_fan_speed speed="auto"
set_fan_speed device_id="ABC-XX-XXXXXXXX" speed="10"
# # Set oscillation
set_oscillation enabled=true
set_oscillation device_id="ABC-XX-XXXXXXXX" enabled=false
# # Get air quality
get_air_quality
Returns:
{
"pm25": {
"value": 8,
"unit": "µg/m³",
"level": "Good"
},
"pm10": {
"value": 12,
"unit": "µg/m³"
},
"voc": {
"value": 2,
"unit": "index",
"description": "Low"
},
"no2": {
"value": 1,
"unit": "index",
"description": "Low"
},
"humidity": {
"value": 45,
"unit": "%",
"description": "Comfortable"
},
"temperature": {
"celsius": 22.5,
"fahrenheit": 73
}
}
# # Set night mode
set_night_mode enabled=true
set_night_mode device_id="ABC-XX-XXXXXXXX" enabled=false
# Air Quality Index (AQI) Levels
Based on PM2.5 readings:
| PM2.5 (µg/m³) | Level |
|- -- -- -- -- -- -- --|- -- -- --|
| 0-12 | Good |
| 13-35 | Moderate |
| 36-55 | Unhealthy for Sensitive Groups |
| 56-150 | Unhealthy |
| 151-250 | Very Unhealthy |
| 251+ | Hazardous |
# Development
# Watch mode
npm run dev
# Run tests
npm test
# Build
npm run build
# Testing
npm test
# Troubleshooting
# # Authentication Failed
- Verify your Dyson email and password are correct
- Ensure your account has registered devices
- Check if your country code is correct
# # Device Not Found
- Ensure devices are powered on and connected to WiFi
- Check if devices appear in the Dyson Link app
- Try specifying the device serial number directly
# # Air Quality Not Available
- Some older devices may not have air quality sensors
- Ensure the device supports air quality monitoring
# Security Notes
- Credentials are passed via environment variables (never hardcode)
- The server uses HTTPS for all API communication
- Consider using a secrets manager in production
# License
MIT
Built autonomously by GRIMLOCK - Autonomous MCP Server Factory