Connect AI assistants like Claude to the iklim.co Weather API using the Model Context Protocol (MCP).
This guide is intended for developers and technically proficient users. Setting up the MCP server requires Node.js, a terminal, and basic familiarity with configuration files.
57 Tools
Every iklim.co API capability is exposed as an MCP tool β lightning, thunderstorm, precipitation, forecast, alarms, and more.
Auto Auth
JWT tokens are acquired and refreshed automatically. Just provide your credentials and the server handles the rest.
HMAC-Signed
Every request is signed with HMAC-SHA256. Credentials never travel in plain text and replay attacks are blocked with a per-request nonce.
The iklim.co MCP Server implements the Model Context Protocol and exposes the full iklim.co REST API as 57 tools across 9 categories. Any MCP-compatible AI client (Claude, OpenClaw, and others) can query live weather data, manage alarms, and handle user accounts through natural language.
The following variables must be set before the server starts. For local development, create a .env file in the mcp-server directory (already in .gitignore):
# .envIKLIM_ENV=test # prod | test | local (used when IKLIM_BASE_URL is not set)IKLIM_BASE_URL= # Optional. Overrides IKLIM_ENV when setIKLIM_HMAC_SECRET=<secret> # Required. HMAC-SHA256 key for request signingIKLIM_USERNAME=<email> # Required. API account e-mailIKLIM_PASSWORD=<password> # Required. API account passwordIKLIM_TOKEN_STORE_PATH= # Optional. Path for persisting access/refresh tokensIKLIM_HTTP_LOG_PATH= # Optional. API request log file pathIKLIM_HTTP_LOG_MAX_BYTES=5242880 # Optional. Rotate threshold in bytes (default: 5 MB)IKLIM_HTTP_LOG_MAX_FILES=5 # Optional. Number of rotated files to keepIKLIM_HTTP_LOG_REQUEST_BODY_MAX_BYTES=16384 # Optional. Request body log size limitIKLIM_HTTP_LOG_RESPONSE_BODY_MAX_BYTES=16384 # Optional. Response body log size limit
Base URL by environment:
IKLIM_ENV
URL
prod
https://api.iklim.co
test
https://api-test.iklim.co
local
http://localhost:8080
When IKLIM_HTTP_LOG_PATH is set, every API call is written as a single-line JSON log entry. Sensitive fields (Authorization, X-Signature, password, token, etc.) are automatically masked.
The openclaw mcp set command does not support a separate env flag β pass everything as a single JSON object:
openclaw mcp set iklim '{"type":"stdio","command":"node","args":["/absolute/path/to/mcp-server/dist/index.js"],"env":{"IKLIM_ENV":"test","IKLIM_HMAC_SECRET":"<secret>","IKLIM_USERNAME":"<email>","IKLIM_PASSWORD":"<password>"}}'
CRUD tools (geo_alarm_register, geo_alarm_update, geo_alarm_delete, geo_alarm_get_by_id, geo_alarm_get_by_recipient, geo_alarm_list) share the same signature as Point Alarms.Location catalog:
Threshold-based alerts delivered at 04:00 UTC (morning) or 16:00 UTC (evening).Threshold parameters:
Parameter
Values
precipitationThreshold
Numeric value in mm
snowFallThreshold
LIGHT | MODERATE | HEAVY
windGustThreshold
STRONG_WIND | STORM | SEVERE_STORM | HURRICANE
hotTemperatureThreshold
HOT_SNAP | HEAVY_HOT_SNAP | EXTREME_HOT_SNAP
coldTemperatureThreshold
COLD_SNAP | HEAVY_COLD_SNAP | EXTREME_COLD_SNAP
CRUD tools follow the same signature as Point Alarms. Additional location catalog tools: forecast_alarm_list_cities, forecast_alarm_get_city, forecast_alarm_list_districts, forecast_alarm_get_district.
Every API interaction uses two independent security layers: JWT-based authentication and HMAC-SHA256 request signing. Both are applied to every request.