About Weishaupt WEM Portal
Weishaupt WEM Portal is an MCP server for monitoring and adjusting Weishaupt heating systems through the WEM Portal. It provides device discovery, live parameter readings, system overviews, and writable parameter controls.
Key features
- 01Discover devices and modules
- 02Read live parameters and status
- 03View a full system snapshot
- 04List adjustable parameters and ranges
- 05Change temperatures, modes, and schedules
Use cases
- 01Check heating-system status
- 02Review temperatures and operating modes
- 03Adjust target temperatures or schedules
MCP support
The server exposes WEM Portal device, status, overview, parameter-reading, metadata, and parameter-writing tools to MCP clients.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y @disane-dev/weishaupt-wem-mcp-serverWEM_USERNAMEYour WEM Portal email/usernameWEM_PASSWORDSecretYour WEM Portal passwordWEM_API_URLWEM Portal API URL (default: https://www.wemportal.com/app)Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEWeishaupt WEM Portal MCP Server
Control and monitor your Weishaupt heating system with AI assistants via the WEM Portal
Features
- Device Discovery - List all devices and modules from your WEM Portal account
- Live Parameters - Read temperatures, pressure, operating modes with current values
- Full Overview - Get a complete snapshot of your entire heating system in one call
- Write Parameters - Adjust target temperatures, operating modes, schedules
- Device Status - Check connection status of your devices
- Writable Filter - List only the parameters you can actually change
- Session Management - Automatic cookie-based auth with login lock for concurrent requests
Quick Start
Install via npx (recommended)
No installation needed. Configure your MCP client to run:
npx @disane-dev/weishaupt-wem-mcp-server
Install from source
git clone https://github.com/Disane87/weishaupt-wem-mcp-server.git
cd weishaupt-wem-mcp-server
npm install
npm run build
Configuration
Claude Desktop
Add to your Claude Desktop config:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"weishaupt-wem": {
"command": "npx",
"args": ["-y", "@disane-dev/weishaupt-wem-mcp-server"],
"env": {
"WEM_USERNAME": "[email protected]",
"WEM_PASSWORD": "your_password"
}
}
}
}
Claude Code
claude mcp add weishaupt-wem -- npx -y @disane-dev/weishaupt-wem-mcp-server
Set the environment variables WEM_USERNAME and WEM_PASSWORD before starting.
From source
{
"mcpServers": {
"weishaupt-wem": {
"command": "node",
"args": ["/path/to/wem-mcp/build/index.js"],
"env": {
"WEM_USERNAME": "[email protected]",
"WEM_PASSWORD": "your_password"
}
}
}
}
Environment Variables
| Variable | Required | Description |
|---|---|---|
WEM_USERNAME | Yes | Your WEM Portal email |
WEM_PASSWORD | Yes | Your WEM Portal password |
WEM_API_URL | No | API base URL (default: https://www.wemportal.com/app) |
Available Tools
| Tool | Description |
|---|---|
wem_get_devices | List all devices with modules. Call this first to discover IDs. |
wem_get_device_status | Get connection status of a device |
wem_get_overview | Full device overview: all modules with all parameters in one call |
wem_get_parameters | Get all parameters of a module with current values |
wem_get_parameter_meta | Get parameter metadata (names, min/max, enums, writable flag) |
wem_get_writable_parameters | List only adjustable parameters with ranges and options |
wem_read_parameters | Read specific parameter values by ID |
wem_write_parameter | Set a parameter value (e.g., target temperature) |
Tip
Start with
wem_get_devicesto discover yourdeviceId,moduleIndex, andmoduleType, then usewem_get_overviewfor a complete snapshot of your heating system.
Typical Workflow
1. wem_get_devices
-> Returns devices with modules (WE0=heat generator, HZK0=heating circuit, WW0=hot water)
2. wem_get_overview (deviceId)
-> Returns ALL modules with ALL parameters in one call
3. wem_get_writable_parameters (deviceId, moduleIndex, moduleType)
-> Shows what you can adjust, with min/max ranges
4. wem_write_parameter (deviceId, moduleIndex, moduleType, parameterId, numericValue)
-> Sets a writable parameter (e.g. target temperature)
Common Module Types
| Type | Name | Description |
|---|---|---|
| 1 | SYSTEM | System overview |
| 2 | HZK | Heating circuit (temperatures, operating mode) |
| 3 | WW | Hot water (temperature, push, schedule) |
| 5 | TERMINAL | Control panel |
| 6 | GATEWAY | Communication gateway |
| 7 | WE | Heat generator (boiler/heat pump performance) |
| 9 | Device | Physical device unit |
| 10 | GROUND | Ground module |
Development
| Command | Description |
|---|---|
npm run build | Build the project |
npm run watch | Watch mode (auto-rebuild on changes) |
npm start | Run server directly |
npm test | Test API connection |
npm run inspector | Official MCP Inspector (Web UI) |
npm run inspector:cli -- devices | CLI inspector for quick API tests |
Troubleshooting
Note
Make sure you can log in at wemportal.com before using this server.
| Issue | Solution |
|---|---|
| Authentication failed | Verify credentials, check if WEM Portal blocks after too many attempts |
| Connection timeout | Check internet, WEM Portal may be temporarily unavailable (30s default timeout) |
| Parameter values show 0 | Some parameters (e.g. room temperature) require a physical sensor connected to the device |
Contributing
Contributions are welcome! Please open an issue or submit a pull request.
License
MIT - see LICENSE
disane.dev | Blog | GitHub | npm
Made by me at Subthiel — software development & 3D printing
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.