EG4 MCP Server
An MCP (Model Context Protocol) Server for the EG4 Solar Inverter Monitoring API, providing comprehensive solar system monitoring and analysis capabilities.
Features
- 🔌 Real-time monitoring - Current production, consumption, and system status
- 📊 Performance analysis - Efficiency metrics and grid independence calculations
- 🔋 Battery health monitoring - SOH, SOC, and cycle count tracking
- ⚠️ Smart alerts - Proactive issue detection and notifications
- 🛠️ Maintenance insights - Automated recommendations and scheduling
- 📈 Historical data - Energy production and consumption trends
- 🏥 System health scoring - Component-level health assessment
Installation
Quick start (dev mode)
# 1. create & activate venv
cd eg4_mcp_server
python -m venv .venv
.venv\Scripts\activate # PowerShell: .venv\Scripts\Activate.ps1
# 2. install requirements
pip install -r requirements.txt
# 3. run the server
python server.py
### Prerequisites
- Python 3.10 or higher
- EG4 inverter with online monitoring account
- Access to EG4 monitoring portal credentials
### Install from PyPI
```bash
pip install eg4-mcp-server
Install from Source
- Clone the repository:
git clone https://github.com/yourusername/eg4-mcp-server.git
cd eg4-mcp-server
- Install dependencies:
pip install -e .
Configuration
- Copy the environment template:
cp .env.example .env
- Edit
.envwith your EG4 credentials:
EG4_USERNAME=your_eg4_username
EG4_PASSWORD=your_eg4_password
EG4_BASE_URL=https://monitor.eg4electronics.com
EG4_DISABLE_VERIFY_SSL=0
Usage
Running the MCP Server
Start the server directly:
python server.py
Or use the MCP CLI:
mcp run server.py
Available Tools
| Tool | Description |
|---|---|
Fetch_Configuration |
Get complete system configuration and status |
Get_System_Details |
Detailed system information and inverter specs |
Get_Current_Production |
Real-time production and consumption data |
Get_Performance_Analysis |
Performance metrics and efficiency analysis |
Get_Historical_Data |
Historical energy data and trends |
Get_System_Alerts |
System health alerts and warnings |
Get_System_Health |
Comprehensive health scoring |
Get_Maintenance_Insights |
Maintenance recommendations and scheduling |
Example Usage with Claude
-
Check current system status:
What's my solar system producing right now? -
Get performance analysis:
How is my solar system performing this week? -
Check for alerts:
Are there any issues with my solar system? -
Get maintenance recommendations:
What maintenance does my solar system need?
Integration with AI Assistants
This MCP server is designed to work with AI assistants that support the Model Context Protocol, such as:
- Claude Desktop - Add to your MCP configuration
- Other MCP-compatible clients
Claude Desktop Configuration
Add to your claude_desktop_config.json:
{
"mcpServers": {
"eg4": {
"command": "python",
"args": ["-m", "eg4_mcp_server"],
"env": {
"EG4_USERNAME": "your_username",
"EG4_PASSWORD": "your_password"
}
}
}
}
API Reference
Tool Parameters
Most tools accept optional parameters:
system_id(int, optional): Specific system ID (defaults to first system)days_back(int): Number of days for historical data (default varies by tool)threshold_percent(float): Performance threshold for maintenance insights
Response Format
All tools return JSON responses with:
timestamp: ISO format timestampdata: Tool-specific data structureerror: Error message if applicable
Example response:
{
"timestamp": "2025-06-24T10:30:00",
"system_status": "Normal",
"current_production": {
"solar_power": "2.5 kW",
"battery_discharge": "0.0 W",
"home_consumption": "1.8 kW"
}
}
Contributing
We welcome contributions! Please see our Contributing Guidelines for details.
Development Setup
- Fork the repository
- Create a virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
- Install development dependencies:
pip install -e ".[dev]"
- Make your changes and run tests:
pytest
Troubleshooting
Common Issues
-
Authentication Failed
- Verify your EG4 credentials in
.env - Check if your account has API access
- Verify your EG4 credentials in
-
SSL Certificate Errors
- Set
EG4_DISABLE_VERIFY_SSL=1in your.envfile - This disables SSL verification (use with caution)
- Set
-
No Inverters Found
- Ensure your account has associated inverters
- Check if inverters are online in the EG4 portal
-
Connection Timeouts
- Check your internet connection
- Verify the
EG4_BASE_URLis correct
Debug Mode
Enable verbose logging by setting the environment variable:
export EG4_DEBUG=1
python server.py
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- Inspired by the eg4_inverter_api library
- Powered by the Model Context Protocol
- Special thanks to the EG4 community for reverse-engineering efforts
Changelog
See CHANGELOG.md for version history and changes.
Support
- 📖 Documentation: Check this README and inline tool documentation
- 🐛 Bug Reports: Open an issue
- 💡 Feature Requests: Open an issue
- 💬 Discussions: GitHub Discussions
Note: This project is not officially affiliated with EG4 Electronics. It's a community-driven project for interfacing with EG4 monitoring systems.
Metadata
Release files for eg4-mcp-server 0.1.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| eg4_mcp_server-0.1.5.tar.gz | 15.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| eg4_mcp_server-0.1.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 31.5 kB
Release files / eg4_mcp_server-0.1.5.tar.gz
| Download URL | eg4_mcp_server-0.1.5.tar.gz |
|---|---|
| Size | 15.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
09fd2ee81a78670c0bc36b4e9b2624d9b1db5801cc887f7b47d9b618371f45d5
|
|
BLAKE2b-256 checksum How to use checksums |
81c948807203e4e22fca322fde79dfe1e0e55750e5a54ee4c9d16994cafadde8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / eg4_mcp_server-0.1.5-py3-none-any.whl
| Download URL | eg4_mcp_server-0.1.5-py3-none-any.whl |
|---|---|
| Size | 15.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0bb4d561a3f6c4b2a5049fdebce0a22238cf0ae50b52c2be5409b596b1f8863f
|
|
BLAKE2b-256 checksum How to use checksums |
53fcf855026d3625d396c1c39df373363c18d2086bb3f5b6bdb9050701786283
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|