ac-infinity-mcp
MCP server for AC Infinity grow controllers. AI agent integration for climate monitoring, port control, and grow automation — works with Claude, Cursor, and any MCP client.
Install / Use
claude mcp add ober37 -- npx -y github:ober37/ac-infinity-mcpIf the server publishes to npm under a different name, use that package instead — check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
AutomationSupported Platforms
Tags
Our assessment of ac-infinity-mcp
ac-infinity-mcp scores 76/100 on our quality scale, 2602nd of 2,880 Automation skills we index.
Its MCP Server is 9.7 KB long, well organised into 21 sections with 7 code examples: a thorough specification that gives an agent plenty to work with.
It has 10 GitHub stars, so there is little community track record yet; judge it on its content.
Maintenance, license and trust
- The repository was last updated 12 days ago, so ac-infinity-mcp is actively maintained.
- It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 97/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
ac-infinity-mcp compared with similar skills
All 4 of these similar skills score higher than ac-infinity-mcp; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| ac-infinity-mcp (this skill)by ober37 | 76 | 10 | 12d ago | MCP Server |
| Agent-Reachby Panniantong | 100 | 110.0k | today | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 79.1k | today | CLAUDE.md |
| CowAgentby zhayujie | 100 | 47.8k | 1d ago | CLAUDE.md |
| Scraplingby D4Vinci | 100 | 99.4k | 2d ago | MCP Server |
Frequently asked questions
- How do I install ac-infinity-mcp?
- Run
claude mcp add ober37 -- npx -y github:ober37/ac-infinity-mcp. The install tabs above show the steps for each supported agent. - Which AI agents does ac-infinity-mcp work with?
- It is written for Claude Code, Claude Desktop and Cursor, as a MCP Server file. Other agents that read the same format can often use it too.
- Is ac-infinity-mcp safe to use?
- It is MIT-licensed and scores 97/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is ac-infinity-mcp still maintained?
- The repository was last updated 12 days ago, so ac-infinity-mcp is actively maintained.
Skill content
View source on GitHubWhat is this?
ac-infinity-mcp is an MCP server that connects Claude (and other AI assistants) directly to your AC Infinity controllers — so you can read live sensor data, run analytics, and adjust fan speeds or port states using natural language, without opening the AC Infinity app.
Built with FastMCP and the AC Infinity cloud API.
Example prompts
"What's the VPD trend in my tent over the last 7 days?" "Is my environment in the right range for late flower?" "Turn off port 3 on my 69 Pro controller — dry run first." "Show me which ports have been running the most this week." "Apply the veg stage template to port 1 — dry run first so I can see the settings." "My VPD is too high — what should I adjust?"
Compatible hardware
| Controller | Reads | Writes | Notes |
|---|---|---|---|
| UIS Controller 69 Pro | ✅ | ✅ | Legacy protocol |
| UIS Controller 69 Pro+ | ✅ | ✅ | Legacy protocol |
| UIS Controller 89 AI+ | ✅ | ✅ † | New AI+ protocol — port writes require the minversion header (Quirk 14) |
† Per-port writes (on/off, speed, mode, temperature/humidity/VPD automation) all work —
that is the scope of Quirk 14's minversion finding, which covers addDevMode only.
Multi-port Advance Automations are only partly verified on AI+: reads work, creates
and in-place edits have both landed on a devType 20 (#326), creates time out on a
different AI+ controller (#290), and enable/disable are unexercised on any AI+. Separately,
apply_grow_stage_template / break_out_of_automation are held back pending hardware
verification (#316) — both refuse with an explanation instead of writing. See
AI+ controllers.
Tools
| Category | Tool | What it does |
|---|---|---|
| 🔍 Discovery | discover_devices | List all your controllers and ports |
| 🌡️ Readings | get_device_reading | Live temp, humidity, VPD, and port states for one device |
| 🌡️ Readings | get_all_device_readings | Same, for all devices at once |
| 🌡️ Readings | get_historical_readings | Time-series data with optional bucketing (raw, 15m, 1h, 1d, …) |
| 📊 Analytics | check_vpd_drift | VPD target compliance check for your current grow stage |
| 📊 Analytics | get_environment_health | Composite health score (0–100, A–F) across temp, humidity, VPD |
| 📊 Analytics | detect_environment_trends | Linear trend + 7-day projection per metric |
| 📊 Analytics | get_port_activity_report | Per-port on/off hours, uptime %, and peak activity hour |
| 🔎 Port Status | get_port_status | Live port power level, load detection, active mode, and timer countdown |
| 🔎 Port Status | get_port_settings | Full automation config: mode, VPD target, temp/humidity thresholds, schedule, cycle |
| 🔌 Write | set_port_speed | Set fan or pump speed 1–10 (dry_run=True by default) |
| 🔌 Write | set_port_on | Turn a port fully on (dry_run=True by default) |
| 🔌 Write | set_port_off | Turn a port fully off (dry_run=True by default) |
| ⚙️ Automation | set_vpd_automation | Enable VPD mode with a kPa target using built-in sensors (dry_run=True by default) |
| ⚙️ Automation | set_temperature_automation | Enable AUTO mode with min/max °C thresholds (dry_run=True by default) |
| ⚙️ Automation | set_humidity_automation | Enable AUTO mode with min/max % RH thresholds (dry_run=True by default) |
| ⚙️ Automation | set_port_mode | Switch to any mode: OFF, ON, AUTO, VPD, CYCLE, SCHEDULE, TIMER_TO_ON, TIMER_TO_OFF (dry_run=True by default) |
| 🌱 Intelligence | apply_grow_stage_template | One-click VPD + temp + humidity automation for a named grow stage (dry_run=True by default) |
| 🤖 Advance Automation | list_advance_automations | List all named Advance Automation programs on a device |
| 🤖 Advance Automation | get_advance_automation | Get full detail (schedule, port groups, run state) for one automation |
| 🤖 Advance Automation | enable_advance_automation | Enable a disabled automation — reads state first, no-ops if already enabled (dry_run=True by default) |
| 🤖 Advance Automation | disable_advance_automation | Disable an enabled automation — reads state first, no-ops if already disabled (dry_run=True by default) |
| 🤖 Advance Automation | create_advance_automation | Create a new named automation; the first rule can be off, on, cycle, auto (temp/humidity), or VPD (dry_run=True by default) |
| 🤖 Advance Automation | delete_advance_automation | Delete an automation (disables first if active) (dry_run=True by default) |
| 🤖 Advance Automation | add_automation_rule | Add one rule (window + behavior) to an existing program — off, on, cycle, auto (temp/humidity), or VPD (dry_run=True by default) |
| 🤖 Advance Automation | update_automation_rule | Edit one rule in place — change its window, speed, mode, or sensor targets (dry_run=True by default) |
| 🤖 Advance Automation | delete_automation_rule | Remove a single rule from a program, leaving the rest intact (dry_run=True by default) |
| 🤖 Advance Automation | break_out_of_automation | Safely break a port out of automation control and lock co-governed ports to manual speed (dry_run=True by default) |
✦ All write tools (Write, Automation, and Intelligence categories) default to
dry_run=True— they return the exact payload they would send without making any changes to your equipment. Passdry_run=Falseonly when you're ready to execute.
📖 For a complete grower's guide with conversation examples for every tool, see docs/GUIDE.md.
MCP Prompts
Three built-in prompts are registered alongside the tools. In Claude Desktop and other MCP clients, these appear as slash commands or prompt suggestions.
| Prompt | What it does |
|---|---|
| vpd_troubleshooting | Step-by-step guide: diagnose HIGH or LOW VPD and which tools to call to fix it |
| new_grower_setup | Onboarding walkthrough: discover devices → apply a stage template → check your health score |
| environment_alert_interpretation | How to read check_vpd_drift status values and get_environment_health grades (A–F, score weighting, what to do) |
Quick start
Option 1: pip (simplest)
pip install git+https://github.com/ober37/ac-infinity-mcp.git
Requires Python 3.11+.
Option 2: isolated venv (recommended)
python3 -m venv ~/.venvs/ac-infinity-mcp
source ~/.venvs/ac-infinity-mcp/bin/activate
pip install git+https://github.com/ober37/ac-infinity-mcp.git
which ac-infinity-mcp # copy this path — you'll need it below
Option 3: uvx (no install)
uvx --from git+https://github.com/ober37/ac-infinity-mcp.git ac-infinity-mcp
MCP client configuration
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or
%APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"ac-infinity": {
"command": "/path/to/ac-infinity-mcp",
"env": {
"AC_INFINITY_EMAIL": "you@example.com",
"AC_INFINITY_PASSWORD": "yourpassword"
}
}
}
}
Replace /path/to/ac-infinity-mcp with the path printed by which ac-infinity-mcp.
Cursor / Windsurf
Add to your MCP settings:
{
"ac-infinity": {
"command": "/path/to/ac-infinity-mcp",
"env": {
"AC_INFINITY_EMAIL": "you@example.com",
"AC_INFINITY_PASSWORD": "yourpassword"
}
}
}
Docker
cp .env.example .env
# fill in AC_INFINITY_EMAIL and AC_INFINITY_PASSWORD
docker compose up --build
The container runs over stdio. Connect via a stdio bridge such as mcp-proxy.
Credentials are injected at runtime via
env_file— never baked into the image.
Environment variables
| Variable | Required | Description |
|---|---|---|
| AC_INFINITY_EMAIL | Yes | Your AC Infinity account email |
| AC_INFINITY_PASSWORD | Yes | Your AC Infinity account password |
⚠️ HTTP-only upstream: The AC Infinity cloud API does not support HTTPS. Credentials and sensor data traverse the network in plain text. This is an upstream limitation — see docs/API.md Quirk 8. Avoid running this server on untrusted networks.
Development
git clone https://github.com/ober37/ac-infinity-mcp.git
cd ac-infinity-mcp
python3 -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
cp .env.example .env # fill in credentials
# Lint + type-check
ruff check src/ tests/
mypy src/ac_infinity_mcp/
# Tests (unit + integration)
pytest tests/ -v
# Security audit
pip-audit
Security
Vulnerabilities should be reported via GitHub Private Vulnerability Reporting. See SECURITY.md for the full disclosure policy, scope, and known limitations (including the HTTP-only upstream API). Accepted dependency CVEs are tracked in docs/SECURITY-RISKS.md.
License
MIT
Related Skills
Agent-Reach
110.0kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
headroom
79.1kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
CowAgent
47.8kOpen-source personal AI assistant & Agent Harness. Plans tasks, runs tools and skills, self-evolves with memory and knowledge. Multi-agent, multi-model, multi-channel. Lightweight, extensible, one-line install.
Scrapling
99.4k🕷️ The BEST Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
