Your AI assistant, your solar battery
An open MCP server and REST API for home solar + battery systems in Australia. Ask Claude, ChatGPT, Codex or Cursor what your battery is doing, when to sell on Amber Electric prices, and let it set the energy mode. Sungrow, Sigenergy, FoxESS, AlphaESS and SolaX, one set of tools.
Install in one line
Installs uv if missing and writes the server into every MCP client it finds: Claude Code, Claude Desktop, Codex, Cursor. No API key needed to start: say "sign me up to Aivy" in the chat.
curl -fsSL https://raw.githubusercontent.com/IVYEnergy/aivy-mcp/main/install.sh | sh
Or add it by hand. Claude Code:
claude mcp add aivy -- uvx aivy-mcp
Claude Desktop, Cursor or any MCP client:
{ "mcpServers": { "aivy": { "command": "uvx", "args": ["aivy-mcp"] } } }
What the tools do
| You ask | The assistant calls |
|---|---|
| What is my battery doing right now? | get_status |
| What are Amber prices for the next eight hours? | get_prices |
| When should I sell tonight, keeping 20% in reserve? | plan_best_price_discharge |
| Charge to 90% in the next two hours. | set_energy_mode (forced, time-boxed, hands back automatically) |
| Why did it charge at 3 am? | get_operations |
| Tell me when the battery drops below 20%. | create_alert |
| Connect my Sungrow system. | list_vendors, connect_site |
27 tools in all. In Claude Desktop and ChatGPT, thirteen of them render as cards: a status ring, a price chart, a sell plan with an Apply button, a control panel, alerts and more.
The REST API underneath
Everything the MCP server does is a documented HTTP endpoint with a personal API key. Keys are read-only or read-and-control, can be limited to chosen sites, and can be revoked. Every key also sees demo sites with replayed real data, so you can build before you own hardware.
curl https://bridge.ivyenergy.com.au/v1/sites \
-H "Authorization: Bearer aivy_sk_..."
- llms.txt: a one-page summary written for language models.
- Agent playbook: which tool answers which question, when to confirm, what each error means.
- OpenAPI 3.1 for code generation.
Guard rails
- A forced (manual) mode set through the API is always time-boxed: when it ends, the server returns the site to the mode it had before.
- The engine's SOC floor and export limits cannot be overridden by any call.
- Read-only keys cannot change anything; demo sites cannot be controlled by anyone.
- Every call is logged against the key that made it.