MeteoControl MCP Server
A Model Context Protocol (MCP) server that provides seamless interaction with the MeteoControl VCOM API v2. This server allows users to ask natural language questions about their solar array installations through MCP-enabled clients (like Claude Desktop).
Features
- Energy Monitoring (
get_energy_data): Retrieve real-time and historical energy and power metrics. - Alert Retrieval (
get_alerts): Fetch active system alerts and historical event logs. - Asset Information (
get_asset_info): Get detailed configuration and metadata for solar assets (panels, inverters, sensors).
Prerequisites
- Node.js 18 or higher (for local development).
- Docker (for containerized deployment).
- A MeteoControl VCOM API v2 account with:
- API Key
- Username (E-mail address)
- Password
Installation
Local Development
-
Clone the repository:
git clone https://github.com/your-username/meteocontrol-mcp.git cd meteocontrol-mcp -
Install dependencies:
npm install -
Build the project:
npm run build
Configuration
Create a .env file in the project root and add your MeteoControl API credentials:
METEOCONTROL_API_KEY=your_api_key_here
METEOCONTROL_USER=your_email_address_here
METEOCONTROL_PASSWORD=your_password_here
METEOCONTROL_API_BASE_URL=https://api.meteocontrol.de/v2
Usage
Running Locally
To start the MCP server on stdio:
npm start
Running with Docker
-
Build the Docker image:
docker build -t meteocontrol-mcp . -
Run the container:
docker run --rm -it \ -e METEOCONTROL_API_KEY=your_api_key \ -e METEOCONTROL_USER=your_email \ -e METEOCONTROL_PASSWORD=your_password \ meteocontrol-mcp
Integration with Claude Desktop
Add the following configuration to your claude_desktop_config.json:
Local Node.js
{
"mcpServers": {
"meteocontrol": {
"command": "node",
"args": ["/path/to/meteocontrol-mcp/dist/index.js"],
"env": {
"METEOCONTROL_API_KEY": "your_api_key_here",
"METEOCONTROL_USER": "your_email_address_here",
"METEOCONTROL_PASSWORD": "your_password_here"
}
}
}
}
Docker
{
"mcpServers": {
"meteocontrol-docker": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e", "METEOCONTROL_API_KEY=your_api_key_here",
"-e", "METEOCONTROL_USER=your_email_address_here",
"-e", "METEOCONTROL_PASSWORD=your_password_here",
"meteocontrol-mcp"
]
}
}
}
Development
- Run tests:
npm test - Lint code:
npm run lint - Format code:
npm run format - Full check:
npm run check
License
This project is licensed under the ISC License.