Infoclimat Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Infoclimat Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A FastMCP server that exposes Infoclimat weather data via the Model Context Protocol (MCP). The server proxies requests to the Infoclimat API, injecting your API token server-side so clients never see it.
| Tool | Description |
|---|---|
list_stations | List stations with optional filters (département, pays, genre, active_only) |
search_stations | Search stations by name or département — use this to resolve a place name to station IDs |
find_nearest_stations | Find stations within a radius of a lat/lon point |
get_observations | Observations for one or more stations over a date range — raw (~10 min resolution) or aggregated daily (aggregate="daily") |
get_latest | Latest observation for each requested station |
get_precipitation_summary | Precipitation totals over a period, with lat/lon for mapping |
git clone <repo>
cd infoclimat-mcp
uv syncpip install fastmcp httpx cachetools python-dotenvCopy .env.example to .env and fill in your token:
cp .env.example .envINFOCLIMAT_TOKEN=your_token_here
MCP_HOST=0.0.0.0 # optional, default 0.0.0.0
MCP_PORT=8000 # optional, default 8000Get a token at infoclimat.fr.
uv run python main.pyThe server starts an SSE endpoint at http://0.0.0.0:8000/sse.
The image is published automatically to GitHub Container Registry on every push to master and on version tags.
docker pull ghcr.io/cmer81/infoclimat-mcp:latestRun the server:
docker run -d \
-e INFOCLIMAT_TOKEN=your_token_here \
-p 8000:8000 \
ghcr.io/cmer81/infoclimat-mcp:latestOptional environment variables:
| Variable | Default | Description |
|---|---|---|
INFOCLIMAT_TOKEN | (required) | Your Infoclimat API token |
MCP_HOST | 0.0.0.0 | Host to bind |
MCP_PORT | 8000 | Port to listen on |
The SSE endpoint is available at http://localhost:8000/sse.
Note: Never passINFOCLIMAT_TOKENas a build argument — always supply it at runtime via-e.
The Docker image exposes the same SSE endpoint (/sse) on port 8000. The configuration below applies whether you're running the server directly or via Docker.Note: Claude Desktop natively uses stdio for local MCP servers. The config below assumes the server is deployed remotely (e.g., behind a reverse proxy with TLS).
{
"mcpServers": {
"infoclimat": {
"transport": "sse",
"url": "https://your-server.example.com/sse"
}
}
}SSE endpoint: https://your-server.example.com/sseExample Caddyfile for TLS termination:
your-server.example.com {
reverse_proxy localhost:8000
}get_observations accepts an optional aggregate parameter:
| Value | Behaviour |
|---|---|
"raw" (default) | Returns all raw ~10-minute observations |
"daily" | Returns compact per-day statistics — suitable for injecting into LLM context |
Example daily response per station:
{
"STATIC0183": {
"station_name": "Sainte-Radegonde",
"period": { "start": "2026-03-01", "end": "2026-03-21" },
"daily": [
{
"date": "2026-03-01",
"temp_min": 2.2,
"temp_mean": 6.9,
"temp_max": 13.8,
"humidity_mean": 79.0,
"wind_mean_kmh": 7.2,
"wind_gust_max_kmh": 63.7,
"pressure_mean": 1023.8,
"precip_mm": 0.0
}
],
"summary": {
"temp_min_abs": -4.1,
"temp_max_abs": 21.4,
"temp_mean": 8.2,
"precip_total_mm": 29.8,
"days_count": 21
}
}
}Fields with all-null source values are omitted. precip_mm is the last pluie_cumul_0h value of the day (cumul since midnight).
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.