air-Q
About
Allows easy local access to air-Q devices for retrieving air quality data
Details
- Author
- corantgmbh
- Categories
- Database, Other, Infrastructure
Jump to
Setup
Install air-Q in your MCP client (Claude Desktop, Cursor, Windsurf, and others).
Repository: https://github.com/corantgmbh/mcp-airq
Follow the installation instructions in the repository README, then restart your MCP client.
Built onaioairq, the official async Python library for air-Q.
The samemcp-airqexecutable also works as a direct CLI when you pass a tool name as a subcommand.
Use the same command directly from the shell:
mcp-airq list-devices mcp-airq get-air-quality --device "Living Room" mcp-airq get-air-quality-history --device "Living Room" --last-hours 12 --sensors co2 mcp-airq plot-air-quality-history --sensor co2 --output-format png mcp-airq export-air-quality-history --sensor co2 --output-format xlsx mcp-airq set-night-mode --activated --device "Bedroom"
- omitdevice,location, andgroupto combine all configured devices into one artifact
- uselocationorgroupto combine only the matching devices
- plot_air_quality_historyreturns one file per requested sensor, with one series per matching device
- export_air_quality_historyreturns one CSV/XLSX file per request, with rows for all matching devices
The CLI subcommands mirror the MCP tool names. Both styles work:
mcp-airq list-devices mcp-airq list_devices
To force MCP server mode from an interactive terminal, run:
The CLI is pipe-friendly: successful command output goes tostdout, while tool errors go tostderrwith exit code1.
mcp-airq get-air-quality --device "Living Room" | jq '.co2' mcp-airq get-air-quality --device "Living Room" --compact-json | jq '.co2' mcp-airq get-air-quality --device "Living Room" --yaml | yq '.co2'
Create a JSON file with your device(s), e.g.~/.config/airq-devices.json:
[ {"address": "192.168.4.1", "password": "your_password", "name": "air-Q Pro", "location": "Living Room", "group": "Home"}, {"address": "192.168.4.2", "password": "your_password", "name": "air-Q Radon", "location": "Living Room", "group": "Home"}, {"address": "office_air-q.local", "password": "other_pass", "name": "Office", "group": "Work"} ]
- address— IP address or mDNS hostname (e.g.abcde_air-q.local)
- password— Device password (default:airqsetup)
- name(optional) — Human-readable name; defaults to address
- location(optional) — Physical room/area for grouping (e.g."Living Room")
- group(optional) — Second grouping dimension, orthogonal to location (e.g."Home","Work")
Then restrict access to the file (it contains passwords):
Alternatively, pass the device list inline via theAIRQ_DEVICESenvironment variable as a JSON string.
Add to yourclaude_desktop_config.json:
{ "mcpServers": { "airq": { "command": "uvx", "args": ["mcp-airq"], "env": { "AIRQ_CONFIG_FILE": "/home/you/.config/airq-devices.json" } } } }
claude mcp add airq -e AIRQ_CONFIG_FILE=~/.config/airq-devices.json -- uvx mcp-airq
This writes to~/.claude/settings.jsonand is automatically picked up by theClaude Code VSCode extensionas well — no separate configuration needed.
If the server fails to connect:MCP servers run in a subprocess that may not inherit your shell's PATH. Replaceuvxwith its full path (which uvx→ e.g./home/you/.local/bin/uvx):
claude mcp add airq -e AIRQ_CONFIG_FILE=~/.config/airq-devices.json -- /home/you/.local/bin/uvx mcp-airq
codex mcp add airq --env AIRQ_CONFIG_FILE=~/.config/airq-devices.json -- uvx mcp-airq
This writes to~/.codex/config.tomland is automatically picked up by theCodex VSCode extensionas well.
If the server fails to connect:Use the full path touvx(see note above).
When multiple devices are configured, specify which device to query:
- By exact name:"air-Q Pro"
- By partial match (case-insensitive):"pro","radon"
If only one device is configured, it is selected automatically.
get_air_qualityaccepts two optional grouping parameters:
- location— query all devices in the same room (e.g."Living Room")
- group— query all devices sharing a group tag (e.g."Home")
Both are independent: a device can have a location, a group, both, or neither. Matching is case-insensitive and substring-based.
get_air_quality(location="Living Room") → air-Q Pro + air-Q Radon get_air_quality(group="Home") → air-Q Pro + air-Q Radon + … get_air_quality(device="air-Q Radon") → just that one device
Exactly one ofdevice,location, orgroupmay be specified per call.
Three tools provide access to data stored on the device's SD card:
plot_air_quality_historyrenders a chart for one sensor. When multiple devices match, each device becomes a separate series in the same chart.
Multiple devices at one location (24 h, area chart, PNG)
# Single device, last 24 hours (default), PNG output (default) mcp-airq plot-air-quality-history --sensor co2 --device "Living Room" # All devices at a location, custom time range, SVG output mcp-airq plot-air-quality-history --sensor co2 --location "Living Room" \ --from-datetime "2026-03-16T00:00:00" --to-datetime "2026-03-17T00:00:00" \ --output-format svg --output co2.svg # All configured devices, dark mode, line chart mcp-airq plot-air-quality-history --sensor co2 --dark --chart-type line # Save to file mcp-airq plot-air-quality-history --sensor co2 --output co2_chart.png
Output formats:png(default),webp,svg,html(interactive Plotly chart with hover tooltips and zoom)
Customization:--title,--x-axis-title,--y-axis-title,--chart-type(line/area),--dark,--timezone-name
export_air_quality_historyproduces one CSV or Excel file containing all matching devices.
# CSV export (default) mcp-airq export-air-quality-history --sensor co2 --device "Living Room" --last-hours 48 # Excel export for all devices at a location mcp-airq export-air-quality-history --sensor radon --location "Home" \ --output-format xlsx --output radon.xlsx
get_air_quality_historyreturns column-oriented JSON, useful for programmatic analysis.
mcp-airq get-air-quality-history --device "Living Room" --last-hours 12 \ --sensors co2 pm2_5 --max-points 150
- "How is the air quality in the living room?"— queries all devices at that location
- "What's the air quality at home?"— queries all devices in the "Home" group
- "Show the CO₂ trend over the last 12 hours as SVG"
- "Export the radon history from yesterday as Excel"
- "Show me the radon level"— targets the air-Q Radon device by name
- "Show CO₂ on the LEDs"
- "Enable night mode from 10 PM to 7 AM"
- "Set brightness to 50%"
- "What's in the device log?"
- "Make the air-Q blink"
git clone https://github.com/CorantGmbH/mcp-airq.git cd mcp-airq uv sync --frozen --extra dev uv run pre-commit install uv run pytest
The repository uses a project-local.venvplusuv.lockfor reproducible tooling. Run all developer commands throughuv run, for example:
uv run ruff check . uv run ruff format --check . uv run pyright uv run pre-commit run --all-files
- Updateversioninpyproject.toml.
- Commit and create a matching Git tag likev0.1.1.
- Publish a GitHub Release from that tag.
The publish workflow validates that the release tag matchespyproject.toml, uploads the package to PyPI, and then publishes the same version to the MCP Registry.
Access the Cumulocity IoT platform to manage devices, measurements, and alarms.
Digi Remote Manager MCP allows users to connect Ai Agents to their Digi Remote Manager account for analyzing fleet data and help with troubleshooting.
Read-only MCP (Model Context Protocol) server for Home Assistant. Gives AI assistants (Claude Desktop, LibreChat, Cline) full observability into your smart home — entity states, automations, scripts, devices, logs, diagnostics — without any write access. Also generates static AI context snapshots for RAG systems, ChatGPT Projects, Qwen, and other tools that accept custom knowledge files. Built in Python, runs anywhere — locally, in Docker, or as an MCP integration.
Provides AI agents with read-only access to SignalK marine data systems, enabling queries of vessel navigation data, AIS targets, and system alarms.
Provides AI assistants with a secure and structured way to explore and analyze data in GreptimeDB.
Live data-center, power & gas intelligence for AI agents
Data intelligence platform - query your database in natural language, build dashboards, and set up automated alerts that monitor your metrics 24/7.
Database Reliability Engineer-grade SQL analysis inside any MCP client
An MCP server that gives AI agents like Claude, Cursor, and Gemini access to historical Windows CPU, GPU, temperature, and privacy data gathered by the AppControl Windows app.
Expose data observability, lineage, test results & incidents to AI agents via MCP
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.





