AC Infinity MCP

MCP server for AC Infinity grow controllers. Monitor, automate, and control your grow environment through natural conversation with Claude.

View the Project on GitHub ober37/ac-infinity-mcp

Security Risks — Accepted Risks and Dependency CVEs

This file documents two categories of accepted risk:

  1. Note — HTTPS confirmed: all upstream AC Infinity API endpoints support HTTPS (TLSv1.3, verified 2026-05-29).
  2. Accepted Dependency CVEs: CVEs in transitive or direct dependencies that are documented as accepted-risk. Each entry explains why the CVE does not affect this codebase in practice, and includes a re-evaluation date so the ignore is not permanent.

pip-audit is invoked with --ignore-vuln <ID> for each CVE entry below. If a new CVE appears in a pip-audit run, do not blanket-add it here — file an issue, evaluate the exposure, and only ignore after a documented finding.


HTTPS confirmed (TLSv1.3)

Base URL: https://www.acinfinityserver.com/api

The AC Infinity cloud API supports HTTPS. TLS handshake verified 2026-05-29: TLSv1.3, DigiCert Encryption Everywhere DV TLS CA certificate, valid until 2026-11-18. Credentials and session tokens are encrypted in transit. This supersedes the previous HTTP-only accepted risk documented before 2026-05-29.

All endpoints below are confirmed over HTTPS. This list was updated via network capture (Phase 17, 2026-05-22) to include all confirmed v2.0 endpoints.

Legacy-path endpoints (confirmed)

Endpoint Purpose
POST /user/appUserLogin Authentication — credentials encrypted via TLS
POST /user/devInfoListAll Device list — response includes user email (appEmail)
POST /log/dataPage Historical sensor and port data
POST /dev/getdevModeSettingList Read current port mode settings
POST /dev/addDevMode Write port mode settings
POST /api/dev/getDevSetting Richer port settings (sensor calibration, load type, Matter/UUID fields)
POST /api/upgrade/getUpgrade Firmware upgrade check
POST /api/upgrade/downgrade Firmware downgrade info (returns download URL and release notes)

v2.0 automation management endpoints (confirmed via network capture)

Endpoint Purpose
POST /api/version=2.0/dev/getGroups List all automation groups for a device
POST /api/version=2.0/dev/addGroups Create automation group
POST /api/version=2.0/dev/updateGroupsIsOn Toggle automation on/off state
POST /api/version=2.0/dev/delByid Delete automation

v2.0 alarm management endpoints (confirmed via network capture)

Endpoint Purpose
POST /api/version=2.0/dev/getAlarms List all alarm configurations for a device
POST /api/version=2.0/dev/addAlarms Create alarm
POST /api/version=2.0/dev/updateAlarmsById Enable, disable, or edit alarm
POST /api/version=2.0/dev/delAlarmsByid Delete alarm

v2.0 history and template endpoints (confirmed)

Endpoint Purpose
POST /api/log/logdataByAll Historical readings (alternative to /log/dataPage; confirmed working)
DELETE /api/log/log?devId=...&time=... Delete all history logs for a device
GET /api/version=2.0/dev/recipe?advVersion=1 Grow stage templates (Seedling, Vegetative, Flowering, Plant Kit, Drying)

PYSEC-2025-183 — mcp package


PYSEC-2026-161 — starlette


Pre-existing Transitive / Dev-tool CVEs (documented 2026-05-22)

The following 14 CVEs were identified in a pip-audit run on 2026-05-22 as part of the Phase 17 Gate 2 review. None are exploitable via this server’s code paths. They are documented here for tracking but are NOT added to the --ignore-vuln list — each requires an explicit decision before ignoring. Re-evaluate when a fix becomes available in the dependency tree.

cryptography — PYSEC-2026-36, PYSEC-2026-35

idna — CVE-2026-45409

pip — CVE-2026-3219, CVE-2026-6357

pygments — CVE-2026-4539

python-multipart — CVE-2026-40347, CVE-2026-42561

setuptools — PYSEC-2022-43012, PYSEC-2025-49, CVE-2024-6345


How to add a new accepted CVE

  1. Run pip-audit and capture the CVE ID + package.
  2. Read the upstream advisory; identify the exact vulnerable code path.
  3. Confirm that path is not reachable from this server’s code.
  4. Add an entry above with rationale and a re-evaluation date no more than 3 months out.
  5. Add --ignore-vuln <ID> to the pip-audit invocation in .github/workflows/ci.yml with an inline comment pointing here.
  6. Reference this file from the PR that adds the ignore.