A Model Context Protocol (MCP) server for the MeteoControl VCOM API v2. This extension allows you to monitor solar arrays, retrieve energy production data, and perform system health checks using natural language via the Gemini CLI.
- System Discovery: List all solar systems associated with your account.
- Energy Monitoring: Retrieve historical energy production data (Wh/kWh/MWh).
- Asset Information: Get technical details about panels, inverters, and site capacity.
- Real-time Power: Check instantaneous AC power output.
- Multi-Transport Support: Run locally via Stdio or host remotely via SSE.
- Multi-Tenant (BYOC): Support for "Bring Your Own Credentials" in a shared environment.
To install the extension directly from GitHub:
gemini extensions add https://github.com/your-org/meteocontrol-mcp- Clone the repository:
git clone https://github.com/your-org/meteocontrol-mcp.git cd meteocontrol-mcp - Install dependencies and build:
npm install npm run build
Once installed, you can ask Gemini about your solar systems:
- "List my solar systems."
- "What is the energy production for system [systemKey] for the last 24 hours?"
- "Show me the technical details for INV1 in system [systemKey]."
If you are using a shared MCP server, you can provide your own credentials directly in your prompts or configure them locally. The tools accept optional apiKey, user, and password arguments.
/health [systemKey]: Perform a comprehensive site health check./yield [systemKey]: Retrieve and summarize energy production data.
The server supports multiple modes of operation:
This is the default mode used by the Gemini CLI.
- Command:
node dist/index.js - Setup: Defined in
gemini-extension.jsonusingcommandandargs.
Use this mode to host the MCP server on a central server for multiple users.
Remote mode requires a mandatory MCP_SERVER_TOKEN for security. You can generate a secure token using:
openssl rand -base64 32- Environment Variables:
MCP_TRANSPORT=sseMCP_SERVER_TOKEN=your_generated_token(Required)PORT=3000(optional, defaults to 3000)
- Run Command:
MCP_TRANSPORT=sse MCP_SERVER_TOKEN=your_token node dist/index.js
You can run the server as a container for easy deployment.
docker run -i --rm \
-e METEOCONTROL_API_KEY=your_key \
-e METEOCONTROL_USER=your_user \
-e METEOCONTROL_PASSWORD=your_password \
ghcr.io/your-org/meteocontrol-mcp:latestdocker run -d \
-p 3000:3000 \
-e MCP_TRANSPORT=sse \
-e MCP_SERVER_TOKEN=your_token \
-e METEOCONTROL_API_KEY=your_key \
-e METEOCONTROL_USER=your_user \
-e METEOCONTROL_PASSWORD=your_password \
ghcr.io/your-org/meteocontrol-mcp:latestIn your local .gemini/settings.json, add the url and the Authorization header:
{
"mcpServers": {
"meteocontrol": {
"url": "https://your-mcp-server.com/sse",
"headers": {
"Authorization": "Bearer your_generated_token"
}
}
}
}The following environment variables are required for the server to talk to MeteoControl (unless credentials are provided per request):
METEOCONTROL_API_KEY: Your VCOM API key.METEOCONTROL_USER: Your VCOM username (email).METEOCONTROL_PASSWORD: Your VCOM password.
Apache License 2.0