Labsco
MCP SERVER

APsystems MCP Server

by mjrgr

Ask your assistant how much solar you produced today — APsystems monitoring data, down to individual inverters.

IoT, Smart Home & Embedded Hardware
Summary
Credential approval is the real gate, not the install.

Running the server is a container command; getting the APsystems App ID and Secret means writing to their support team and explaining what you want the data for. Once you have them the coverage is genuinely deep — per-channel inverter telemetry and minutely ECU data, not just a daily total — so it rewards a system with more than one string.

What it is

A Go server wrapping the APsystems OpenAPI, so a client can read your solar installation's monitoring data: system-level energy totals, per-ECU and per-inverter telemetry, meter flows and battery state. It handles the APsystems HMAC-SHA256 signature protocol for you, retries on rate limits, and can optionally serve a dark-themed web dashboard alongside the MCP endpoint.

What you get
  • 16 tools covering the APsystems API endpoints
  • System: `get_system_details`, `get_system_summary` for today/month/year/lifetime kWh, `get_system_energy` by period, `get_inverters`, `get_meters`
  • ECUs: `get_ecu_summary` and `get_ecu_energy`, which supports minutely telemetry
  • Inverters: `get_inverter_summary` per channel, `get_inverter_energy` with DC power, current, voltage and AC telemetry, `get_inverter_batch_energy` for every inverter under one ECU in a single call
  • Meters: `get_meter_summary` for consumed, exported, imported and produced totals, plus `get_meter_period`
  • Storage: `get_storage_latest` for live state of charge and charge/discharge power, `get_storage_summary`, `get_storage_period`
  • An optional web dashboard with Chart.js energy visualisations, enabled with `APS_DASHBOARD=true`
Requirements

APsystems OpenAPI credentials — `APS_APP_ID`, `APS_APP_SECRET` — plus `APS_SYS_ID`, your system ID from the EMA app under Settings → Account Details. Getting API access means emailing APsystems support with who you are and what you plan to do, which is the slow step. Run it with Go from source, or use the published container `docker.io/mehdijrgr/apsystems-mcp-server`. Transport is stdio by default; set `APS_MCP_TRANSPORT=sse` with `APS_MCP_SSE_ADDR` to serve remote clients over HTTP instead.

Setup effort

One command plus a key — claude mcp add apsystems -s local -- podman run -i --rm -p 8888:8080 -e APS_DASHBOARD=true -e APS_SYS_ID=your_fake_sid_1234567890 -e APS_APP_ID=your_fake_app_id_32charslong1234567890abcd -e APS_APP_SECRET=your_fake_secret12 docker.io/mehdijrgr/apsystems-mcp-server 2>&1, then supply credentials