Alpha ESS MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Alpha ESS MCP Server what's my current battery charge level?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Alpha ESS MCP Server
A Model Context Protocol (MCP) server that provides access to Alpha ESS solar inverter and battery system data through the official Alpha ESS Open API.
Installation
uv syncRelated MCP server: solax-cloud-mcp
Configuration
Create a .env file in the project root:
ALPHA_ESS_APP_ID=your_app_id_here
ALPHA_ESS_APP_SECRET=your_app_secret_hereTo get your Alpha ESS API credentials:
Create a developer account
Add your inverter system using the Serial Number (SN) and CheckCode
Obtain your AppID and AppSecret
Usage with Claude Desktop
Add to your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"alpha-ess": {
"command": "uv",
"args": [
"run",
"python",
"/path/to/alpha-ess-mcp-server/main.py"
],
"env": {
"ALPHA_ESS_APP_ID": "your_app_id_here",
"ALPHA_ESS_APP_SECRET": "your_app_secret_here"
}
}
}
}Available Tools
Authentication & System Management
authenticate_alphaess()- Validate API credentialsget_ess_list()- List all registered Alpha ESS systems
Data Retrieval
get_alpha_ess_data()- Get comprehensive energy statistics for all systemsget_last_power_data(serial?)- Get real-time power data snapshotget_one_day_power_data(query_date, serial?)- Get detailed power data for a specific dateget_one_date_energy_data(query_date, serial?)- Get energy summary for a specific date
Battery Configuration
get_charge_config(serial?)- Get current battery charging configurationget_discharge_config(serial?)- Get current battery discharge configurationset_battery_charge(enabled, dp1_start, dp1_end, dp2_start, dp2_end, charge_cutoff_soc, serial?)- Configure battery charging scheduleset_battery_discharge(enabled, dp1_start, dp1_end, dp2_start, dp2_end, discharge_cutoff_soc, serial?)- Configure battery discharge schedule
Parameters
serial(optional) - System serial number. If not provided, automatically selects the first system if only one existsquery_date- Date in YYYY-MM-DD formatenabled- Boolean to enable/disable the configurationdp1_start/dp1_end, dp2_start/dp2_end- Time periods in HH:MM format (minutes must be :00, :15, :30, :45)charge_cutoff_soc/discharge_cutoff_soc- SOC percentage (0-100)
Testing
uv run python test_methods.pyLicense
MIT License
References
Available Tools
10 toolsauthenticate_alphaessA
Authenticate with the Alpha ESS Open API to validate credentials.
Returns:
dict: Authentication result with success status and message
Inputs: no named parameters. Returns: object
get_alpha_ess_dataB
Get statistical energy data for all registered Alpha ESS systems.
Returns:
dict: Energy data with success status and system information
Inputs: no named parameters. Returns: object
get_charge_configA
Get battery charging configuration for a specific Alpha ESS system.
Returns structured configuration with clear period definitions and status.
If no serial provided, auto-selects if only one system exists.
Args:
serial: The serial number of the Alpha ESS system (optional)
Returns:
dict: Enhanced response with structured charging configuration
Inputs: serial. Returns: object
get_discharge_configA
Get battery discharge configuration for a specific Alpha ESS system.
Returns structured configuration with clear period definitions and status.
If no serial provided, auto-selects if only one system exists.
Args:
serial: The serial number of the Alpha ESS system (optional)
Returns:
dict: Enhanced response with structured discharge configuration
Inputs: serial. Returns: object
get_ess_listB
Get list of registered Alpha ESS systems with auto-selection logic.
Returns enhanced system information with structured metadata.
Returns:
dict: Enhanced response with system list and auto-selection recommendations
Inputs: no named parameters. Returns: object
get_last_power_dataA
Get the latest real-time power data for a specific Alpha ESS system.
Returns structured snapshot with clear field names and units.
If no serial provided, auto-selects if only one system exists.
Args:
serial: The serial number of the Alpha ESS system (optional)
Returns:
dict: Enhanced response with structured real-time power data
Inputs: serial. Returns: object
get_one_date_energy_dataA
Get energy data for a specific date and Alpha ESS system.
If no serial provided, auto-selects if only one system exists.
Args:
query_date: Date in YYYY-MM-DD format
serial: The serial number of the Alpha ESS system (optional)
Returns:
dict: Energy data for the specified date with success status
Inputs: query_date (required), serial. Returns: object
get_one_day_power_dataA
Get one day's power data for a specific Alpha ESS system.
Returns structured timeseries data with hourly intervals and summary statistics.
If no serial provided, auto-selects if only one system exists.
Args:
query_date: Date in YYYY-MM-DD format
serial: The serial number of the Alpha ESS system (optional)
Returns:
dict: Enhanced response with structured timeseries data and analytics
Inputs: query_date (required), serial. Returns: object
set_battery_chargeA
Set battery charging configuration for a specific Alpha ESS system.
If no serial provided, auto-selects if only one system exists.
Args:
enabled: True to enable charging from grid, False to disable
dp1_start: Start time for charging period 1 (HH:MM format, minutes must be :00, :15, :30, :45)
dp1_end: End time for charging period 1 (HH:MM format, minutes must be :00, :15, :30, :45)
dp2_start: Start time for charging period 2 (HH:MM format, minutes must be :00, :15, :30, :45)
dp2_end: End time for charging period 2 (HH:MM format, minutes must be :00, :15, :30, :45)
charge_cutoff_soc: Percentage to stop charging from grid at (0-100)
serial: The serial number of the Alpha ESS system (optional)
Returns:
dict: Result of charge configuration update with success status
Inputs: enabled (required), dp1_start (required), dp1_end (required), dp2_start (required), +3 more. Returns: object
set_battery_dischargeA
Set battery discharge configuration for a specific Alpha ESS system.
If no serial provided, auto-selects if only one system exists.
Args:
enabled: True to enable battery discharge, False to disable
dp1_start: Start time for discharge period 1 (HH:MM format, minutes must be :00, :15, :30, :45)
dp1_end: End time for discharge period 1 (HH:MM format, minutes must be :00, :15, :30, :45)
dp2_start: Start time for discharge period 2 (HH:MM format, minutes must be :00, :15, :30, :45)
dp2_end: End time for discharge period 2 (HH:MM format, minutes must be :00, :15, :30, :45)
discharge_cutoff_soc: Percentage to stop discharging battery at (0-100)
serial: The serial number of the Alpha ESS system (optional)
Returns:
dict: Result of discharge configuration update with success status
Inputs: enabled (required), dp1_start (required), dp1_end (required), dp2_start (required), +3 more. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 10 tools
Every tool has a clearly distinct purpose with no ambiguity. Authentication, data retrieval (statistical, real-time, daily), configuration management (charge/discharge), and system listing are all well-separated. The descriptions clearly differentiate between energy data, power data, and configuration operations.
All tools follow a consistent verb_noun pattern with clear, descriptive names. The naming convention is uniform throughout: authenticate_alphaess, get_alpha_ess_data, get_charge_config, get_discharge_config, get_ess_list, get_last_power_data, get_one_date_energy_data, get_one_day_power_data, set_battery_charge, set_battery_discharge.
With 10 tools, this is well-scoped for an energy management system. Each tool earns its place by covering essential operations: authentication, system listing, data retrieval (statistical, real-time, daily), and configuration management (charge/discharge). The count aligns perfectly with the domain's needs.
The tool surface provides complete CRUD/lifecycle coverage for Alpha ESS energy systems. It includes authentication, system discovery, comprehensive data retrieval (statistical, real-time, daily), and full configuration management for both charging and discharging. There are no obvious gaps that would hinder agent workflows.
Maintenance
Related MCP Connectors
Home energy for AI assistants: live Power flow, Energy history, solar forecast, and device control.
Operate a network of EV charge points over OCPP: status, sessions, tariffs, prices, remote commands
Read-only access to authorized SolarSENS solar plants, performance, devices, and alarms.
Real-time electricity price signals for AI agents. Spot prices, cheapest hours, and contract recommendations. 31 countries across Europe and Oceania. No authentication required.
Related MCP Servers
- FlicenseAqualityNot gradedmaintenanceEnables monitoring and control of EcoFlow Power Stations and devices through the Model Context Protocol. Users can manage battery levels, toggle AC/DC outputs, and configure charging settings across the DELTA and RIVER series via the EcoFlow API.9-
- AlicenseAqualityDmaintenanceProvides real-time access to solar inverter data from the SolaX Cloud API, enabling queries of power output, energy yields, battery status, and grid import/export data.2MIT
- AlicenseBqualityBmaintenanceEnables AI assistants to monitor and control Growatt solar installations via the ShineServer API, including reading PV generation, load, grid import/export, battery SOC, and adjusting inverter settings.26MIT
- AlicenseAqualityCmaintenanceEnables users to read power, energy counters, events, and settings from KOSTAL PLENTICORE inverters, and to preview or apply plant-owner settings changes through the inverter's local REST API.11MIT