get_system_detailsLABSCO 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 by the README's count, while the project's architecture notes say 15 are registered
- System:
get_system_details,get_system_summaryfor today/month/year/lifetime kWh,get_system_energyby period,get_inverters,get_meters - ECUs:
get_ecu_summaryandget_ecu_energy, which supports minutely telemetry - Inverters:
get_inverter_summaryper channel,get_inverter_energywith DC power, current, voltage and AC telemetry,get_inverter_batch_energyfor every inverter under one ECU in a single call - Meters:
get_meter_summaryfor consumed, exported, imported and produced totals, plusget_meter_period - Storage:
get_storage_latestfor 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
Run a container — pull the image and point your client at it
USE CASES
Asking what the array did today
Get today, month, year and lifetime kWh in one answer instead of opening the EMA app.
Finding the panel that is underperforming
Pull every inverter under an ECU in one call and compare channels rather than checking them individually.
Understanding import versus export
Read the meter totals for consumed, exported, imported and produced energy over a period.
Checking the battery right now
Ask for live state of charge and charge/discharge power before deciding to run something.
15 tools
Listed in project docs. Your client may show a different list.
get_invertersget_metersget_system_summaryget_system_energyget_ecu_summaryget_ecu_energyget_inverter_summaryget_inverter_energyget_inverter_batch_energyget_meter_summaryget_meter_periodget_storage_latestget_storage_summaryget_storage_periodBEFORE YOU INSTALL
What to know first
Tools you get
15 tools named in the project's documentation.
Requires
- podman on PATH
- APS_APP_ID in your environment
- APS_APP_SECRET in your environment
- APS_SYS_ID in your environment
Where it runs
All 3 documented setups run the server on your machine.
INSTALLATION
Connect your client
MCP Clients
Claude Desktop — Podman
{
"mcpServers": {
"apsystems": {
"command": "podman",
"args": [
"run",
"-i",
"--rm",
"-p",
"8888:8080",
"-e",
"APS_DASHBOARD=true",
"-e",
"APS_SYS_ID=<YOUR_APS_SYS_ID>",
"-e",
"APS_APP_ID=<YOUR_APS_APP_ID>",
"-e",
"APS_APP_SECRET=<YOUR_APS_APP_SECRET>",
"docker.io/mehdijrgr/apsystems-mcp-server"
]
}
}
}Claude Desktop — Docker
{
"mcpServers": {
"apsystems": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-p",
"8888:8080",
"-e",
"APS_DASHBOARD=true",
"-e",
"APS_SYS_ID=<YOUR_APS_SYS_ID>",
"-e",
"APS_APP_ID=<YOUR_APS_APP_ID>",
"-e",
"APS_APP_SECRET=<YOUR_APS_APP_SECRET>",
"docker.io/mehdijrgr/apsystems-mcp-server"
]
}
}
}Claude Code
claude mcp add apsystems -s local -- podman run -i --rm -p 8888:8080 -e APS_DASHBOARD=true -e APS_SYS_ID=<YOUR_APS_SYS_ID> -e APS_APP_ID=<YOUR_APS_APP_ID> -e APS_APP_SECRET=<YOUR_APS_APP_SECRET> docker.io/mehdijrgr/apsystems-mcp-server