dailymeteo-mcp
Provides place-name to latitude/longitude lookup via OpenStreetMap, enabling weather queries for named locations.
Lists and downloads MeteoEurope1km gridded raster archives from Zenodo, covering Europe from 1961–2020 including sea-level pressure.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@dailymeteo-mcpHow much warmer are July days in Belgrade now than in 1961–1990?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
dailymeteo-mcp
An MCP server for DailyMeteo. With it, an AI assistant (Claude, VS Code, Cursor and other MCP clients) can answer questions about historical weather and climate change for any land location. Data are 1 km grids from 1961 to the present.
How much warmer are July days in Belgrade now than in 1961–1990? Which was the wettest year in Lisbon since 1961? Download daily mean temperature grids for Europe for 2003.
Install
Easiest: ask your AI assistant (Claude Code, Cursor, Cline…): "Install the DailyMeteo MCP server from github.com/srpp011/dailymeteo-mcp". It will follow llms-install.md.
Claude Code plugin. The plugin includes the server and a skill that tells Claude which tool to use. It asks for your DailyMeteo email and password, which are optional:
claude plugin marketplace add srpp011/dailymeteo-mcp
claude plugin install dailymeteo@dailymeteoThe first start downloads about 60 MB. If the server shows failed in a new session, wait a minute and reconnect it with /mcp.
All other clients need uv and run uvx --python 3.12 dailymeteo-mcp. See Configuration.
Related MCP server: Weather MCP Server
Tools
Everything the DailyMeteo app offers, for land areas worldwide, from 1961 to the present:
Tool | What it does | Cost |
| Place name → latitude/longitude (OpenStreetMap) | free |
| Area name → boundary polygon and size, for area downloads | free |
| Daily, monthly or annual values for a location; several variables at once; summary, yearly aggregates, trend, CSV | monthly/annual free; daily 1 credit per day and variable |
| Normals 1961–1990 and 1991–2020 and their change (year, months, or a calendar day) | free |
| Plan, API credits, bulk credits | free |
| Every variable, daily, for one location (whole record by default), CSV by email | 1 bulk credit |
| Cost of daily rasters clipped to an area (max 3,000 km²) | free |
| Daily GeoTIFF rasters clipped to an area, by email | API credits |
| Opens the location and series in the DailyMeteo app (map, chart, CSV/PDF export) | free |
| MeteoEurope1km raster archives on Zenodo (Europe, 1961–2020, incl. sea-level pressure) | free |
Variables are tmean, tmax and tmin in °C, and prcp in mm (monthly and annual values are totals).
As in the app, daily requests over 1,000 credits ask for the user's confirmation, and area downloads should be estimated before they are ordered. Repeating the same daily request is not charged again. Long series are not dumped into the conversation. They are summarised (per variable and per year) and saved as CSV.
Configuration
All environment variables are optional. Without any of them, monthly and annual values, normals, links and Zenodo grids work.
DAILYMETEO_EMAILandDAILYMETEO_PASSWORD: your DailyMeteo account. They enable daily values, credits, point history and area downloads. Sign up at https://app.dailymeteo.com/.DAILYMETEO_API_KEY: alternative for daily values only (Account → API Keys).DAILYMETEO_OUTPUT_DIR: where CSV files and downloads are saved (default~/dailymeteo).
Claude Code
claude mcp add dailymeteo -s user -e DAILYMETEO_EMAIL=you@example.com -e DAILYMETEO_PASSWORD=... -- uvx --python 3.12 dailymeteo-mcpClaude Desktop, Cursor, VS Code (mcpServers JSON)
{
"mcpServers": {
"dailymeteo": {
"command": "uvx",
"args": ["--python", "3.12", "dailymeteo-mcp"],
"env": { "DAILYMETEO_EMAIL": "you@example.com", "DAILYMETEO_PASSWORD": "..." }
}
}
}Docker (no local Python)
docker build -t dailymeteo-mcp .
claude mcp add-json dailymeteo -s user '{"type":"stdio","command":"docker","args":["run","-i","--rm","-e","DAILYMETEO_EMAIL","-e","DAILYMETEO_PASSWORD","-v","/path/to/output:/data","dailymeteo-mcp"]}'Data and citation
The values are interpolated grids, not station measurements. Results used in a publication should cite:
Sekulić, A., & Kilibarda, M. (2026). MeteoEurope1km (1961–2020): daily gridded meteorological dataset for Europe at a 1-km spatial resolution. Zenodo. https://doi.org/10.5281/zenodo.23264155
Built on the Python client dailymeteo. License: GPL-2.0-or-later.
Available Tools
11 toolsaccount_statusDailyMeteo account and creditsBRead-only
Plan and remaining credits: API credits (daily point and area data) and bulk credits (point history).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds useful domain context by distinguishing API credits (daily point/area data) from bulk credits (point history), but says nothing about authentication requirements, whether counts update in real time, or what a depleted balance implies for subsequent calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with the core concept ('Plan and remaining credits') front-loaded and the two credit categories immediately clarified. No wasted text, though the fragment style ('Plan and remaining credits:') is slightly telegraphic.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no input parameters and no output schema, the description carries the burden of explaining return content. It identifies the fields conceptually (plan, API credits, bulk credits) but gives no sense of units, structure, or how to interpret a low balance against the request_* tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline of 4 applies; there is nothing for the description to disambiguate beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource ('Plan and remaining credits') and enumerates the two credit pools it reports, so an agent knows exactly what information it yields. It lacks an explicit verb, but no sibling tool covers account/credit data, so differentiation is implicit and strong.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to call it or in what sequence relative to the request/download tools. An agent must infer that this is a pre-flight credit check rather than being told so.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
app_linkOpen in the DailyMeteo appBRead-only
Link that opens the location, variable and period on the DailyMeteo map with its chart and CSV export.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Same format; default the current year | |
| lat | Yes | Latitude in decimal degrees (WGS84) | |
| lon | Yes | Longitude in decimal degrees (WGS84) | |
| start | No | YYYY-MM-DD, YYYY-MM or YYYY to match time_scale | 1961 |
| variable | No | tmean | |
| time_scale | No | ann |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds useful context about what the link exposes (map, chart, CSV export), but says nothing about whether the URL is absolute, how long it stays valid, or that the call itself fetches no weather data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is a noun phrase rather than a verb construction, which slightly undercuts immediacy, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values needn't be explained, and annotations cover the read-only nature. However, for a 6-parameter URL-builder, the description never clarifies the link's intended consumer (human browser vs. embedding) or the start/end/time_scale consistency rule, leaving real gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67%, and the description only loosely maps to parameters via 'location, variable and period'. It adds no semantics for the undocumented enum values (tmean/tmax/tmin/prcp, day/mon/ann) or for how start/end must align with time_scale, leaving the schema to carry that weight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (a link) and states exactly what it resolves to: location, variable and period on the DailyMeteo map with chart and CSV export. It implicitly distinguishes itself from download/query siblings like download_gridded_files and request_point_history, though it never names them or says 'returns a URL' outright.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance or routing against the many siblings (get_weather, request_point_history, download_gridded_files, find_location). An agent must infer that this is the 'give a human a shareable interactive view' option rather than a data-returning tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
download_gridded_filesDownload MeteoEurope1km grid archivesAIdempotent
Download MeteoEurope1km archives (1-3.5 GB per year of daily data), verify MD5, optionally unzip.
Interrupted downloads resume. Tell the user the total size (list_gridded_files) before large downloads.
| Name | Required | Description | Default |
|---|---|---|---|
| unzip | No | ||
| years | No | Years 1961-2020; required for day and mon | |
| period | No | Normal period for ltm_day / ltm_mon_ann; default both | |
| product | No | day (one archive per year), mon (one per decade), ann (1961-2020), ltm_day / ltm_mon_ann (normals), ltm_diff (1991-2020 minus 1961-1990) | day |
| dest_dir | No | Folder; default <output dir>/meteoeurope1km | |
| variable | Yes | tmean, tmax, tmin, prcp or slp (sea-level pressure, daily only) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare non-read-only, idempotent, non-destructive and open-world, and the description adds genuinely new behavior: 1-3.5 GB per year of daily data, MD5 verification, and resumption of interrupted downloads. It doesn't say whether existing files are overwritten, where the files end up beyond the schema's dest_dir default, or what the tool returns, so it earns a 4 rather than a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short paragraphs, front-loaded with the operation and its size/cost implication, followed by the safety-relevant resume behavior and the caller-side instruction. No sentence is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a six-parameter download tool with no output schema, the description covers cost, integrity checking, resumability and the required pre-step. The main remaining gap is what the call returns (file paths? manifest?), which matters for chaining a subsequent read, but the operational essentials are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 83% and the schema already explains product, years, period, dest_dir and variable in detail; the description adds only the 'optionally unzip' framing, which is largely implied by the unzip boolean. Baseline 3 is the correct call when the schema carries the parameter burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Download) and a named resource (MeteoEurope1km archives) with key attributes in the same breath: per-year archive size, MD5 verification, optional unzip. An agent can tell this apart from list_gridded_files, which it explicitly frames as the sizing/listing sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete workflow rule — call list_gridded_files and tell the user the total size before large downloads — which routes the agent to the right sibling at the right moment. It lacks explicit when-not guidance (e.g. point data should use get_weather instead of downloading archives), so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estimate_area_downloadEstimate area download costBRead-only
Credit cost of daily rasters clipped to an area (max 3,000 km²), and the account balance.
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | YYYY-MM-DD | |
| bbox | No | [west, south, east, north] | |
| start | Yes | YYYY-MM-DD | |
| area_wkt | No | Polygon in WKT, lon lat (from find_area) | |
| variables | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the description is not carrying the safety burden. It does add real behavioral facts beyond the annotations: the 3,000 km² area ceiling and the fact that the account balance is returned alongside the cost. It does not say what happens on exceeding the limit or whether estimation commits anything.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with no filler, and the cost-plus-area scoping is front-loaded. It reads as a noun-phrase fragment rather than a full clause, which slightly weakens the leading statement but wastes nothing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly names the two return values. However, for a 5-parameter tool it leaves the area-selection rules (bbox vs WKT vs neither), the meaning of variables, and the failure mode above 3,000 km² unexplained, which is not enough for confident invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 80%, so the baseline is 3. The description adds nothing on the bbox vs area_wkt choice (both default null, no stated mutual exclusivity or requirement) and nothing on the variables enum, leaving the biggest selection ambiguity to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb-resource pair (credit cost estimate for daily rasters clipped to an area) and adds the account-balance return. It is clearly separable from request_area_download, but it never names that sibling, so differentiation is inferred rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can guess this is the pre-flight check before request_area_download, but no alternative is named and no when/when-not condition is stated. The 3,000 km² cap hints at a boundary but is framed as a limit, not as selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_areaFind an area (polygon)ARead-only
Boundary polygon (WKT) and size of a named area, for estimate_area_download / request_area_download.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Area name, e.g. 'Opština Brus' or 'Lake Bled' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description usefully adds what the call yields (polygon + size), but says nothing about ambiguous name matches, not-found behavior, or size units — meaningful gaps for an open-world lookup.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight clause with zero filler; the outputs and the downstream purpose are both front-loaded. Nothing could be removed without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only lookup with no output schema, the description covers the essential contract: input is an area name, output is a WKT polygon and its size, and it feeds the two area-download tools. Only edge-case behavior (no match, multiple matches, units) is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single 'query' parameter already carries an example ('Opština Brus', 'Lake Bled'). The description only restates 'named area', adding no new constraints such as expected granularity or matching rules, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the concrete outputs (boundary polygon in WKT plus area size) for a named area, which is far more specific than the name 'find_area' alone. It also names the downstream consumers, distinguishing it from siblings like find_location or get_weather. It stops short of a clean verb+resource phrasing, reading as a noun phrase.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'for estimate_area_download / request_area_download' implies this is a prerequisite lookup step before those tools, giving usable context. However, there is no explicit when-to-use/when-not guidance and no differentiation from find_location, the obvious alternative for resolving a place.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_locationFind a placeARead-only
Latitude and longitude of a place (OpenStreetMap Nominatim). If several match, ask the user which one.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | Place name, e.g. 'Kopaonik' or 'Lisbon, Portugal' |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint and openWorldHint, so external-service behavior is partly covered. The description adds the data source and the multi-match/user-disambiguation behavior, which are genuinely beyond the annotations, but says nothing about rate limits, result ordering, or failure behavior for unmatched names.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. It front-loads the return value rather than the action, which is slightly backwards for tool selection, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the description does not need to explain return values, and it covers the main risk (ambiguous matches) an agent must handle. The remaining gap is the undocumented limit parameter and whether results are ranked.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%: query is documented with examples in the schema, but limit has no description anywhere. The phrase 'if several match' hints that multiple results can come back, which indirectly relates to limit, but the description never explains limit's range or effect.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the resource (coordinates of a place) and names the geocoding backend (OpenStreetMap Nominatim), so an agent knows exactly what it gets back. The verb is implicit rather than stated ('Latitude and longitude of a place' rather than 'Geocode a place name'), and it does not distinguish itself from the sibling find_area, which is likely the nearest alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives one concrete operational rule — 'If several match, ask the user which one' — which is real guidance for disambiguation. But it never says when to use this rather than find_area or when coordinates are a prerequisite for get_weather / request_point_history, so the choice among siblings is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_climate_normalsClimate normals 1961-1990 vs 1991-2020ARead-only
Climate normals for 1961-1990 and 1991-2020 and the change (newer minus older). Free.
Without month, time_scale=mon returns all 12 months. Annual precipitation normals are yearly totals.
| Name | Required | Description | Default |
|---|---|---|---|
| day | No | Day of month, required for time_scale=day | |
| lat | Yes | Latitude in decimal degrees (WGS84) | |
| lon | Yes | Longitude in decimal degrees (WGS84) | |
| month | No | Only this month (mon), or the month of the day (day) | |
| variables | No | One or more of tmean, tmax, tmin (°C), prcp (mm) | |
| time_scale | No | ann (year), mon (by month) or day (one calendar day) | mon |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover read-only and open-world; the description adds cost ('Free'), the derived change metric semantics, default expansion behavior when month is omitted, and prcp aggregation semantics. It does not say anything about response shape or rate/limits, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences plus a one-word cost flag, all front-loaded; the earliest and most consequential caveats (month omission, annual prcp totals) come after the purpose, and nothing is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter read with full schema coverage and no output schema, the description supplies the purpose, cost, and the two behavior traps most likely to cause misreads. It stops short of describing what a returned record contains for each time_scale, which would be the remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, so 3 is the floor; the description goes beyond it by explaining that omitting `month` with time_scale=mon returns all 12 months, and that annual precipitation is reported as a yearly total (units beyond the schema's °C/mm note). Day/ann interactions remain unstated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the specific resource (climate normals) plus the two baselines covered and the derived change field ('newer minus older'), which is real information beyond the name. It does not distinguish itself from siblings like get_weather or request_point_history, so an agent must still infer when normals beat an actuals call.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Free' is a genuinely useful selection hint against paid/download siblings such as request_point_history or request_area_download, and the time_scale notes imply the intended granularity. But there is no explicit when-to-use or when-not-to-use statement and no sibling is named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_weatherWeather values for a locationARead-only
Daily, monthly or annual values for one location and one or more variables, 1961 to the present.
Monthly and annual values are free. Daily values cost 1 credit per day and variable and need an account or API key in the server configuration. Results include a summary per variable; series longer than 400 rows are not listed but summarised by year and saved as CSV.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Last date, same format | |
| lat | Yes | Latitude in decimal degrees (WGS84) | |
| lon | Yes | Longitude in decimal degrees (WGS84) | |
| dates | No | Individual dates instead of a range, same format | |
| start | No | First date: YYYY-MM-DD (day), YYYY-MM (mon) or YYYY (ann); from 1961 | |
| save_csv | No | Save the table as CSV (long series are always saved) | |
| variables | No | One or more of tmean, tmax, tmin (°C), prcp (mm) | |
| time_scale | No | day, mon (monthly) or ann (annual) | mon |
| confirm_credits | No | Set true only after the user agreed to a day request over 1000 credits |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the readOnly/openWorld annotations by disclosing the cost model, the authentication prerequisite, the row-limit behavior (series over 400 rows are summarised by year and written to CSV rather than listed), and that results include a per-variable summary. These are exactly the facts an agent needs before spending credits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each load-bearing, with the scope statement front-loaded and the cost/auth caveats following in the order an agent would need them. No filler or restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With nine parameters and no output schema, the description does well to describe return shape (per-variable summary, CSV fallback for long series) and the paid-tier gate. It could say more about what happens when confirm_credits is required but false, but nothing essential to a correct call is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, and the description still adds meaning: the cost formula ties directly to time_scale and variables, and the 1961 floor bounds start/dates. It stops short of explaining the confirm_credits threshold workflow beyond the schema's own text, so it sits modestly above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a precise statement of what is returned: temporal resolution (daily/monthly/annual), a single location, one or more variables, and the 1961-to-present coverage window. That cleanly separates it from get_climate_normals and the file-download siblings, though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete operational context for choosing this tool: monthly/annual is free, daily costs 1 credit per day per variable and requires an account or API key in server config. It does not explicitly say when to prefer this over request_point_history or get_climate_normals, so alternatives remain unaddressed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_gridded_filesList MeteoEurope1km grid archivesCRead-only
MeteoEurope1km archives on Zenodo (Europe, 1 km, 1961-2020, Cloud-Optimized GeoTIFF), free.
Rasters are Equi7 Europe (EPSG:27704), Int16 in tenths of the unit (°C, mm, hPa), NoData -9999.
| Name | Required | Description | Default |
|---|---|---|---|
| years | No | Years 1961-2020; required for day and mon | |
| period | No | Normal period for ltm_day / ltm_mon_ann; default both | |
| product | No | day (one archive per year), mon (one per decade), ann (1961-2020), ltm_day / ltm_mon_ann (normals), ltm_diff (1991-2020 minus 1961-1990) | day |
| variable | Yes | tmean, tmax, tmin, prcp or slp (sea-level pressure, daily only) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true; the description adds genuinely non-obvious context — the data is free, hosted on an external service (Zenodo), GeoTIFF/COG format, Equi7 Europe EPSG:27704, Int16 scaled in tenths, NoData -9999. It does not disclose anything about the listing behavior itself: number of files returned, whether URLs or sizes are included, or whether results vary by product/variable combination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler; the dataset identity and geospatial/radiometric conventions are front-loaded. It is fragmentary rather than wasteful, though the second sentence is purely about raster decoding and slightly off-target for a listing tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should say what the agent gets back from a 'list' call (file names, year coverage, URLs, sizes), and it does not. Four parameters with two enums and a required variable make the selection logic non-trivial, and the description leaves all of it to the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all four parameters (including enum meanings for product and variable) are already documented in the schema. The description only adds the unit context for the raster values (°C, mm, hPa, in tenths), which helps interpret variables but adds no parameter-level semantics beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource precisely (MeteoEurope1km archives on Zenodo, Europe/1 km/1961-2020/COG) but never states the action — it never says it lists available archive files or what a returned entry contains. The verb 'list' exists only in the title and tool name, so an agent must infer that this returns a file catalog rather than metadata or a download link.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus siblings such as download_gridded_files or estimate_area_download, nor any statement of prerequisites (e.g. that you must list before downloading). The only usage constraints live in the schema's parameter descriptions (years required for day/mon, period for normals), not in the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
request_area_downloadOrder area download (email)A
Daily GeoTIFF rasters clipped to an area (max 3,000 km²), prepared on the server and emailed.
Spends API credits: run estimate_area_download first and get the user's agreement to the cost.
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | YYYY-MM-DD | |
| bbox | No | [west, south, east, north] | |
| start | Yes | YYYY-MM-DD | |
| area_wkt | No | Polygon in WKT, lon lat (from find_area) | |
| variables | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds meaningful behavior beyond the annotations: the operation spends API credits, requires prior cost estimation plus user consent, is capped at 3,000 km², and results arrive asynchronously by email. Annotations (readOnly=false, idempotent=false, destructive=false) only tell the agent it is a non-repeatable write; the credit cost and email delivery are the valuable additions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, both front-loaded: what the tool produces first, then the cost warning. Every clause carries decision-relevant information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the essentials for a 5-parameter, no-output-schema tool: what is produced, the area constraint, the cost prerequisite, and how the result reaches the user (email). It leaves minor gaps such as what the immediate response contains (confirmation or job reference) and expected turnaround.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 80%, so bbox, area_wkt, start/end and variables are already documented in the schema. The description only contributes the 3,000 km² area limit tied to bbox/area_wkt and adds no guidance on which geometry parameter to use or how variables are chosen.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (daily GeoTIFF rasters clipped to an area), the size cap (max 3,000 km²), and the delivery mechanism (server-prepared, emailed). This clearly separates it from immediate-download siblings like download_gridded_files and from point-based request_point_history, though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit prerequisite workflow: run estimate_area_download first and obtain the user's agreement to the cost. That is concrete routing to a named alternative, but it does not say when to prefer this over request_point_history or how to choose between bbox and area_wkt.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
request_point_historyOrder full point history (email)A
Every variable, daily, for one location — by default the whole record since 1961 — as CSV by email.
Costs one bulk credit (bulk credits are separate from API credits). Preparing the file takes minutes.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Last day YYYY-MM-DD; default the latest available day | |
| lat | Yes | Latitude in decimal degrees (WGS84) | |
| lon | Yes | Longitude in decimal degrees (WGS84) | |
| start | No | First day YYYY-MM-DD; default the start of the record (1961) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry readOnlyHint=false, openWorldHint=true, idempotentHint=false, destructiveHint=false, so the safety profile is set. The description adds genuinely non-obvious behavior: it consumes one bulk credit that is billed separately from API credits, and file preparation takes minutes — both critical for an agent deciding whether to invoke it. It stops short of saying how the job is tracked or what happens if the email fails.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both front-loaded with the highest-value facts (scope and delivery first, then cost and latency). Nothing is padded and no sentence is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an asynchronous, email-delivered job with no output schema, the description covers what is produced, how it arrives, what it costs, and how long it takes. Remaining gap is failure/cancellation behavior and whether the call returns a tracking identifier, which an agent might want given idempotentHint=false.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and latency/date semantics for start and end are fully documented there. The description's only addition — that the default span is the whole record back to 1961 — restates the schema defaults rather than extending them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — request the full daily point history for one location, delivered as CSV by email. The phrase "for one location" implicitly separates it from the area-oriented siblings (request_area_download, find_area) and from get_weather, though it never names a sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The "one location" scoping and the note that the default is the entire record since 1961 imply when this is the right call, but there is no explicit when-to-use vs request_area_download or estimate_area_download guidance, and no stated prerequisites or eligibility conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
11 tool updates
v0.1.0- First observed
account_status - First observed
app_link - First observed
download_gridded_files - First observed
estimate_area_download - First observed
find_area - First observed
find_location - First observed
get_climate_normals - First observed
get_weather - First observed
list_gridded_files - First observed
request_area_download - First observed
request_point_history
TDQS
Scored across 11 tools
Most tools have clearly distinct roles: geographic lookup (find_location vs find_area), archive listing/downloading, point data, normals, credit estimation, and linking. The main potential confusion is between get_weather and request_point_history, which both return point time-series data (differing only by credit type and delivery method), and between estimate_area_download and request_area_download, though the estimate/request pairing is standard and descriptions clarify it.
The set follows a mostly predictable verb_noun snake_case convention (list_gridded_files, download_gridded_files, get_weather, estimate_area_download, request_area_download). The only deviations are account_status and app_link, which are noun phrases without a leading verb, but they remain readable and unambiguous.
Eleven tools is well within the ideal range and each one covers a distinct capability: discovery, archival download, geocoding, point queries, normals, credits/account, bulk history, area estimation/download, and sharing. No tool appears redundant or trivially included.
The surface covers the full workflow from locating a place through estimating cost, querying data, and retrieving results, with an account/credit check and a share link. Minor gaps exist around async job tracking for the emailed point-history and area-download requests (no status or cancel tool) and no in-tool authentication/account creation, though these are workable via email delivery and server configuration.
Maintenance
Related MCP Connectors
Historical weather and climate: 100+ years of station data, normals, extremes, and trends.
NOAA weather for AI agents: conditions, forecasts, observed history. 3 tools, free, no key.
Weather, climate, terrain, fire and flood risk data for any point or polygon on Earth. Free tier.
Historical climate data, temperatures, precipitation, and normals
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceExposes public weather and climate data through a standardized API, allowing AI agents to retrieve current conditions, 7-day forecasts, and historical data. It enables weather-aware automation and data enrichment for conversational agents and travel planning.-
- AlicenseNot gradedqualityDmaintenanceGlobal weather intelligence for AI assistants providing 10 weather tools — forecasts, historical data, air quality, marine, geocoding, elevation, and climate projections at 1km resolution with 80+ years of archive.1MIT
- AlicenseNot gradedqualityFmaintenanceProvides weather and climate intelligence for AI agents, including current conditions, forecasts, historical data, severe-weather alerts, agricultural outlook, and travel conditions via free and paid tools.1MIT
- FlicenseAqualityBmaintenanceEnables AI assistants to retrieve current weather conditions and forecasts for any location via natural language, with optional AI-generated summaries.1-