Skip to main content

MCP server for Fronius solar inverters — real-time PV, battery, and grid data in Claude

Project description

fronius-mcp

Real-time solar data from your Fronius inverter, directly in Claude.

Ask things like:

"How much solar power am I generating right now?"

"What's my battery charge level?"

"Am I currently importing or exporting to the grid?"

"How much energy did I produce this year?"

"What can you do with my solar system?"

"Analyse my photovoltaics for me."

Connects to the Fronius Solar API v1 directly on your local network — no cloud account, no subscription, no data leaving your home.


How it works

fronius-mcp is a Model Context Protocol (MCP) server. MCP is an open standard that lets AI assistants like Claude connect to external tools and data sources. Once configured, Claude can call your inverter's local API in real time — whenever you ask a question about your solar system, Claude fetches live data and answers based on what's actually happening right now.


Requirements

  • A Fronius inverter on your local network with the Solar API (JSON API) enabled
  • Claude Desktop
  • uv — a fast Python package manager (one-line install)

Setup

1. Install uv

uv is a fast Python package manager used to run fronius-mcp without a permanent install.

macOS / Linux:

curl -LsSf https://astral.sh/uv/install.sh | sh

Windows (PowerShell):

irm https://astral.sh/uv/install.ps1 | iex

Restart your terminal after installing.

2. Add to Claude Desktop

Open your claude_desktop_config.json and add the fronius block inside mcpServers:

{
  "mcpServers": {
    "fronius": {
      "command": "uvx",
      "args": ["fronius-mcp"]
    }
  }
}

Config file location:

Platform Path
macOS ~/Library/Application Support/Claude/claude_desktop_config.json
Windows %APPDATA%\Claude\claude_desktop_config.json
Windows (Store app) %LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\claude_desktop_config.json

Tip: If the mcpServers key already exists, just add the fronius block inside it — don't create a second mcpServers.

3. Restart Claude Desktop

Close and reopen Claude Desktop so it picks up the new server config.

4. Configure your inverter

In a new Claude conversation, say:

"Configure my Fronius inverter at 192.168.178.35"

Claude will save your inverter's IP and confirm the connection. This is a one-time step — the address is stored in ~/.fronius-mcp.json and persists across restarts.

Don't know your inverter's IP? Tell Claude: "I want to configure my Fronius inverter but I don't know the IP." Claude will walk you through finding it via your router, Fronius Solar.web, or the inverter's touch display — and how to enable the Solar API in the inverter's web interface if you haven't done that yet.


What you can ask

Once set up, just talk to Claude naturally. Some examples:

  • "What's my current solar output?" — live PV generation in watts
  • "How self-sufficient am I right now?" — autonomy and self-consumption percentages
  • "Is my battery charging or discharging?" — battery power flow and state of charge
  • "How much have I fed into the grid today?" — energy totals from the smart meter
  • "What devices are connected to my inverter?" — full system topology
  • "Give me a full overview of my solar system." — Claude combines all data sources into a summary

Tools

Tool What it does
configure_inverter Set your inverter's IP address — run this once on first setup
solar_power_flow PV generation, grid exchange, house load, battery power, autonomy, energy totals
solar_meter Grid power per phase, cumulative energy in/out, voltage, current, frequency
solar_battery State of charge, voltage, current, temperature, capacity, status
solar_devices All connected devices with type, bus index, and serial number

Compatible Hardware

Developed and tested on:

  • Fronius Symo GEN24 10.0 Plus
  • BYD Battery-Box Premium HV (13.824 kWh)
  • Fronius Smart Meter (grid feed-in point, 3-phase)

Other Fronius inverters with Solar API v1 support should work. Some API endpoints behave differently across models — if something doesn't work on your hardware, open an issue.


License

Apache 2.0 — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fronius_mcp-0.1.1.tar.gz (14.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fronius_mcp-0.1.1-py3-none-any.whl (17.5 kB view details)

Uploaded Python 3

File details

Details for the file fronius_mcp-0.1.1.tar.gz.

File metadata

  • Download URL: fronius_mcp-0.1.1.tar.gz
  • Upload date:
  • Size: 14.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fronius_mcp-0.1.1.tar.gz
Algorithm Hash digest
SHA256 e25749f048052eadc5c3e8768b16967c79be46e1123ef63fe23faea10a71d983
MD5 5e71d82611f1278df1e211b22eb1aa1f
BLAKE2b-256 d746281c36464ed7ffc244a8def6d180bcdb2022feaf0aa6b6334aecdf96174d

See more details on using hashes here.

File details

Details for the file fronius_mcp-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: fronius_mcp-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 17.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fronius_mcp-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c8026bdd93dfbca22f4bcfb41243a535a3b4bec89d38f09232c7675df47fa416
MD5 1839102e3a36b11b1635d9ef3acf422d
BLAKE2b-256 1d139707127a4a607e13e53274a318c253726aeb86937db79b69eec1af1f9a0c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page