Skip to main content
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.

Overview

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.

Requirements

  • Node.js >= 18 (ES2022 support required)
  • npm >= 9
  • iklim.co API credentials: HMAC secret, username, and password

Installation

The source code is publicly available at git.tarla.io/iklim.co/mcp-server.

Environment Variables

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):
Base URL by environment:
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.

Build & Run

A successful start prints:
The server communicates over stdio transport. It is designed to be managed by an MCP client, not run interactively in a terminal.

MCP Client Configuration

Claude CLI (.mcp.json)

Place a .mcp.json file in your project root. Claude CLI picks it up automatically:
To register the server globally, add the same mcpServers block to ~/.claude/settings.json.

OpenClaw

The openclaw mcp set command does not support a separate env flag β€” pass everything as a single JSON object:
Or edit ~/.openclaw/openclaw.json directly:

Other MCP Clients

Any client that supports the MCP stdio standard can connect. Required parameters:

Tool Catalog

⚑ Lightning

πŸŒͺ️ Thunderstorm

🌧️ Precipitation

Intensity levels (lowest β†’ highest): DRIZZLE < LIGHT < MODERATE < HEAVY < VERY_HEAVY < EXTREME

🌀️ Forecast

WEATHER_ICON, TEMPERATURE, APPARENT_TEMPERATURE, DEW_POINT_TEMPERATURE, HUMIDITY, CLOUD_COVER, CLOUD_COVER_LOW, CLOUD_COVER_MID, CLOUD_COVER_HIGH, WIND_SPEED, WIND_GUST, WIND_DIRECTION, WIND_SPEED_AT_100M, WIND_DIRECTION_AT_100M, PRECIPITATION, RAIN, SHOWERS, SNOWFALL, SNOW_DEPTH, PRECIPITATION_PROBABILITY, WEATHER_CODE, PRESSURE_MSL, SURFACE_PRESSURE, VISIBILITY, EVAPOTRANSPIRATION, ET0_FAO_EVAPOTRANSPIRATION, VAPOUR_PRESSURE_DEFICIT, CAPE, LIFTED_INDEX, CONVECTIVE_INHIBITION, SUNSHINE_DURATION, SHORTWAVE_RADIATION, DIRECT_RADIATION, DIFFUSE_RADIATION, DIRECT_NORMAL_IRRADIANCE, GLOBAL_TILTED_IRRADIANCE, TERRESTRIAL_RADIATION, SHORTWAVE_RADIATION_INSTANT, DIRECT_RADIATION_INSTANT, DIFFUSE_RADIATION_INSTANT, DIRECT_NORMAL_IRRADIANCE_INSTANT, GLOBAL_TILTED_IRRADIANCE_INSTANT, TERRESTRIAL_RADIATION_INSTANT, SOIL_TEMPERATURE_0CM, SOIL_TEMPERATURE_6CM, SOIL_TEMPERATURE_18CM, SOIL_TEMPERATURE_54CM, SOIL_MOISTURE_0_TO_1CM, SOIL_MOISTURE_1_TO_3CM, SOIL_MOISTURE_3_TO_9CM, SOIL_MOISTURE_9_TO_27CM, SOIL_MOISTURE_27_TO_81CM, IS_DAY

πŸ‘€ Auth & User

🏒 Account

πŸ“ Point Alarms

GPS-coordinate-based alert subscriptions for events within a configurable radius.

πŸ—ΊοΈ Geo Alarms

Administrative boundary, polygon, or H3 address-based alert subscriptions. Three boundary types are supported:
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:

πŸ“… Forecast Alarms

Threshold-based alerts delivered at 04:00 UTC (morning) or 16:00 UTC (evening). Threshold parameters: 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.

Architecture

Request flow:

Authentication & Security

Every API interaction uses two independent security layers: JWT-based authentication and HMAC-SHA256 request signing. Both are applied to every request.

Automatic Auth Flow

The server logs in automatically on the first tool call. No manual login step is needed.
The login and refresh endpoints do not include an Authorization: Bearer header β€” they are authenticated by HMAC signature alone.

HTTP Request Headers

HMAC-SHA256 Signature

The X-Signature value is the HMAC-SHA256 of four components joined by |:
Example β€” GET request:
Example β€” POST request:

Security Recommendations

  • Never commit IKLIM_HMAC_SECRET or IKLIM_PASSWORD to source control or git history
  • In production, use system environment variables or a secrets manager instead of a .env file
  • Use separate credentials for each environment (prod / test / local)
  • Rotate the HMAC secret regularly