Skip to main content

MCP server for direct HTTP communication with air-Q air quality sensor devices

Project description

mcp-airq

MCP PyPI Python License Tests Coverage

MCP server for air-Q air quality sensor devices. Enables Claude Desktop, Claude Code, and other MCP clients to directly query and configure air-Q devices on your local network.

Built on aioairq, the official async Python library for air-Q.

Installation

pip install mcp-airq

Or run directly with uvx:

uvx mcp-airq

Device Configuration

Create a JSON file with your device(s), e.g. ~/.config/airq-devices.json:

[
  {"address": "192.168.4.1", "password": "your_password", "name": "Living Room"},
  {"address": "office_air-q.local", "password": "other_pass", "name": "Office"}
]

Each entry requires:

  • 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

Then restrict access to the file (it contains passwords):

chmod 600 ~/.config/airq-devices.json

Alternatively, pass the device list inline via the AIRQ_DEVICES environment variable as a JSON string.

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "airq": {
      "command": "uvx",
      "args": ["mcp-airq"],
      "env": {
        "AIRQ_CONFIG_FILE": "/home/you/.config/airq-devices.json"
      }
    }
  }
}

Claude Code

Register the server once via the CLI:

claude mcp add airq -e AIRQ_CONFIG_FILE=~/.config/airq-devices.json -- uvx mcp-airq

This writes to ~/.claude/settings.json and is automatically picked up by the Claude Code VSCode extension as well — no separate configuration needed.

OpenAI Codex

Register the server once via the CLI:

codex mcp add airq --env AIRQ_CONFIG_FILE=~/.config/airq-devices.json -- uvx mcp-airq

This writes to ~/.codex/config.toml and is automatically picked up by the Codex VSCode extension as well.

Available Tools

Read-Only

Tool Description
list_devices List all configured air-Q devices
get_air_quality Get current sensor readings (temperature, CO₂, humidity, PM, VOC, …)
get_device_info Get device metadata (name, model, firmware version)
get_config Get full device configuration
get_logs Get device log entries
identify_device Make device blink its LEDs for visual identification
get_led_theme Get current LED visualization theme
get_possible_led_themes List all available LED visualization themes
get_night_mode Get current night mode configuration
get_brightness_config Get current LED brightness configuration

Configuration

Tool Description
set_device_name Rename a device
set_led_theme Change LED visualization (CO₂, VOC, Humidity, PM2.5, …)
set_night_mode Configure night mode schedule and settings
set_brightness Adjust LED brightness (day/night)
configure_network Set static IP or switch to DHCP

Device Control

Tool Description
restart_device Restart the device (~30s downtime)
shutdown_device Shut down the device (manual restart required)

Multi-Device Support

When multiple devices are configured, specify which device to query:

  • By exact name: "Living Room"
  • By partial match (case-insensitive): "living", "office"

If only one device is configured, it is selected automatically.

Example Prompts

  • "How is the air quality in the living room?"
  • "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"

Development

git clone https://github.com/CorantGmbH/mcp-airq.git
cd mcp-airq
pip install -e ".[dev]"
pytest

License

Apache License 2.0 — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_airq-0.1.0.tar.gz (17.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_airq-0.1.0-py3-none-any.whl (14.7 kB view details)

Uploaded Python 3

File details

Details for the file mcp_airq-0.1.0.tar.gz.

File metadata

  • Download URL: mcp_airq-0.1.0.tar.gz
  • Upload date:
  • Size: 17.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mcp_airq-0.1.0.tar.gz
Algorithm Hash digest
SHA256 1bc3759aded3f45176f3f970f06f41bceed73e19e9ced439669a1d7a9a14bb08
MD5 b8fd0ec048fe976ca8f630a9cf39a261
BLAKE2b-256 f6933fcea49505f89e02856b5af51aa54d5910584db2aa267565b81a09f5fd2c

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_airq-0.1.0.tar.gz:

Publisher: publish.yml on CorantGmbH/mcp-airq

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mcp_airq-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: mcp_airq-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 14.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mcp_airq-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5986e1797027063abd8283587742ac357d7640f490367097b0973a29813e05b1
MD5 f7f7709abc27ea5759111c13ca37920f
BLAKE2b-256 886509345e68e6b86e622117a3de275d9fb6cf9a49a12ffc2b2ede246bac503c

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_airq-0.1.0-py3-none-any.whl:

Publisher: publish.yml on CorantGmbH/mcp-airq

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page