meteoswiss-mcp 2.0.2 → 2.2.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/data/ogd-local-forecast.js +3 -1
- package/dist/data/ogd-local-forecast.js.map +1 -1
- package/dist/support/weather-icons.js +16 -2
- package/dist/support/weather-icons.js.map +1 -1
- package/package.json +1 -1
- package/src/views/homepage/overview.md +4 -2
- package/src/views/homepage/usage.md +4 -4
package/README.md
CHANGED
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
|
|
7
7
|
MCP server for MeteoSwiss weather data — powered by [MeteoSwiss Open Data](https://opendatadocs.meteoswiss.ch/), the same data behind the MeteoSwiss app and website.
|
|
8
8
|
|
|
9
|
+
**[meteoswiss-mcp.ars.is](https://meteoswiss-mcp.ars.is/)** — try it now, no setup needed.
|
|
10
|
+
|
|
9
11
|
- **Multi-day forecasts** for ~6000 Swiss locations (postal codes, stations, place names)
|
|
10
12
|
- **Real-time measurements** from ~160 automatic weather stations, updated every 10 minutes
|
|
11
13
|
- **Station discovery** by name, canton, or GPS coordinates
|
|
@@ -11,7 +11,7 @@ import { parseNumeric } from '../support/ogd-csv-parser.js';
|
|
|
11
11
|
import { resolveForecastPoint } from './ogd-station-resolver.js';
|
|
12
12
|
import { debugData } from '../support/logging.js';
|
|
13
13
|
import { OGD_COLLECTIONS, pointTypeFromId, SOURCE_ATTRIBUTION } from '../schemas/ogd-shared.js';
|
|
14
|
-
import { weatherIconDescription } from '../support/weather-icons.js';
|
|
14
|
+
import { weatherIconDescription, weatherIconUrl } from '../support/weather-icons.js';
|
|
15
15
|
/** Daily params — only available for stations (point_type_id=1) */
|
|
16
16
|
const DAILY_PARAMS = ['tre200dx', 'tre200dn', 'rka150d0', 'jp2000d0'];
|
|
17
17
|
/** Hourly params — available for all point types */
|
|
@@ -47,6 +47,7 @@ function buildStationForecast(paramData, days) {
|
|
|
47
47
|
return {
|
|
48
48
|
date,
|
|
49
49
|
weather: iconCode !== null ? weatherIconDescription(iconCode) : null,
|
|
50
|
+
weather_icon_url: iconCode !== null ? weatherIconUrl(iconCode) : null,
|
|
50
51
|
temperature: {
|
|
51
52
|
min: dateKeyed.get('tre200dn')?.get(date) ?? null,
|
|
52
53
|
max: dateKeyed.get('tre200dx')?.get(date) ?? null,
|
|
@@ -137,6 +138,7 @@ function buildHourlyAggregatedForecast(paramData, days) {
|
|
|
137
138
|
},
|
|
138
139
|
precipitation: { total: precipTotal, unit: 'mm' },
|
|
139
140
|
weather: iconCode !== null ? weatherIconDescription(iconCode) : null,
|
|
141
|
+
weather_icon_url: iconCode !== null ? weatherIconUrl(iconCode) : null,
|
|
140
142
|
};
|
|
141
143
|
});
|
|
142
144
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ogd-local-forecast.js","sourceRoot":"","sources":["../../src/data/ogd-local-forecast.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAChG,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"ogd-local-forecast.js","sourceRoot":"","sources":["../../src/data/ogd-local-forecast.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* Source: MeteoSwiss official icon spreadsheet and opendata documentation.
|
|
7
7
|
* SVG icons: https://www.meteoschweiz.admin.ch/static/resources/weather-symbols/{code}.svg
|
|
8
8
|
*/
|
|
9
|
-
/** Daytime weather descriptions (codes 1-
|
|
9
|
+
/** Daytime weather descriptions (codes 1-35) */
|
|
10
10
|
const DAY_ICONS = {
|
|
11
11
|
1: 'sunny',
|
|
12
12
|
2: 'mostly sunny, some clouds',
|
|
@@ -89,13 +89,27 @@ const NIGHT_ICONS = {
|
|
|
89
89
|
141: 'overcast, slightly stormy',
|
|
90
90
|
142: 'very cloudy, thundery snow showers',
|
|
91
91
|
};
|
|
92
|
+
const ICON_BASE_URL = 'https://www.meteoschweiz.admin.ch/static/resources/weather-symbols';
|
|
92
93
|
/**
|
|
93
94
|
* Map a MeteoSwiss weather pictogram code to a human-readable description.
|
|
94
95
|
*
|
|
95
|
-
* @param code - Numeric pictogram code (1-
|
|
96
|
+
* @param code - Numeric pictogram code (1-35 for day, 101-142 for night)
|
|
96
97
|
* @returns Human-readable weather description, or "unknown ({code})" for unmapped codes
|
|
97
98
|
*/
|
|
98
99
|
export function weatherIconDescription(code) {
|
|
99
100
|
return DAY_ICONS[code] ?? NIGHT_ICONS[code] ?? `unknown (${code})`;
|
|
100
101
|
}
|
|
102
|
+
/**
|
|
103
|
+
* Get the SVG icon URL for a MeteoSwiss weather pictogram code.
|
|
104
|
+
* Returns null for codes not in the known icon maps.
|
|
105
|
+
*
|
|
106
|
+
* @param code - Numeric pictogram code (1-35 for day, 101-142 for night)
|
|
107
|
+
* @returns URL to the SVG weather symbol, or null for unknown codes
|
|
108
|
+
*/
|
|
109
|
+
export function weatherIconUrl(code) {
|
|
110
|
+
if (DAY_ICONS[code] === undefined && NIGHT_ICONS[code] === undefined) {
|
|
111
|
+
return null;
|
|
112
|
+
}
|
|
113
|
+
return `${ICON_BASE_URL}/${code}.svg`;
|
|
114
|
+
}
|
|
101
115
|
//# sourceMappingURL=weather-icons.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"weather-icons.js","sourceRoot":"","sources":["../../src/support/weather-icons.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,gDAAgD;AAChD,MAAM,SAAS,GAA2B;IACxC,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,2BAA2B;IAC9B,CAAC,EAAE,oCAAoC;IACvC,CAAC,EAAE,UAAU;IACb,CAAC,EAAE,aAAa;IAChB,CAAC,EAAE,mCAAmC;IACtC,CAAC,EAAE,iCAAiC;IACpC,CAAC,EAAE,+BAA+B;IAClC,CAAC,EAAE,6BAA6B;IAChC,EAAE,EAAE,sBAAsB;IAC1B,EAAE,EAAE,6BAA6B;IACjC,EAAE,EAAE,0CAA0C;IAC9C,EAAE,EAAE,yCAAyC;IAC7C,EAAE,EAAE,yBAAyB;IAC7B,EAAE,EAAE,0BAA0B;IAC9B,EAAE,EAAE,iCAAiC;IACrC,EAAE,EAAE,gCAAgC;IACpC,EAAE,EAAE,iCAAiC;IACrC,EAAE,EAAE,gCAAgC;IACpC,EAAE,EAAE,yBAAyB;IAC7B,EAAE,EAAE,mCAAmC;IACvC,EAAE,EAAE,+BAA+B;IACnC,EAAE,EAAE,wCAAwC;IAC5C,EAAE,EAAE,2BAA2B;IAC/B,EAAE,EAAE,0BAA0B;IAC9B,EAAE,EAAE,aAAa;IACjB,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,oCAAoC;IACxC,EAAE,EAAE,yCAAyC;IAC7C,EAAE,EAAE,kCAAkC;IACtC,EAAE,EAAE,+BAA+B;IACnC,EAAE,EAAE,sCAAsC;IAC1C,EAAE,EAAE,0CAA0C;IAC9C,EAAE,EAAE,kBAAkB;CACvB,CAAC;AAEF,qDAAqD;AACrD,MAAM,WAAW,GAA2B;IAC1C,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,mBAAmB;IACxB,GAAG,EAAE,wBAAwB;IAC7B,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,aAAa;IAClB,GAAG,EAAE,6BAA6B;IAClC,GAAG,EAAE,2CAA2C;IAChD,GAAG,EAAE,wBAAwB;IAC7B,GAAG,EAAE,wBAAwB;IAC7B,GAAG,EAAE,sCAAsC;IAC3C,GAAG,EAAE,6BAA6B;IAClC,GAAG,EAAE,iBAAiB;IACtB,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,yBAAyB;IAC9B,GAAG,EAAE,0CAA0C;IAC/C,GAAG,EAAE,6BAA6B;IAClC,GAAG,EAAE,gCAAgC;IACrC,GAAG,EAAE,mDAAmD;IACxD,GAAG,EAAE,oCAAoC;IACzC,GAAG,EAAE,4BAA4B;IACjC,GAAG,EAAE,yCAAyC;IAC9C,GAAG,EAAE,6BAA6B;IAClC,GAAG,EAAE,8BAA8B;IACnC,GAAG,EAAE,qBAAqB;IAC1B,GAAG,EAAE,qBAAqB;IAC1B,GAAG,EAAE,YAAY;IACjB,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,sCAAsC;IAC3C,GAAG,EAAE,uCAAuC;IAC5C,GAAG,EAAE,0CAA0C;IAC/C,GAAG,EAAE,iCAAiC;IACtC,GAAG,EAAE,iCAAiC;IACtC,GAAG,EAAE,iCAAiC;IACtC,GAAG,EAAE,kBAAkB;IACvB,GAAG,EAAE,oCAAoC;IACzC,GAAG,EAAE,wCAAwC;IAC7C,GAAG,EAAE,4BAA4B;IACjC,GAAG,EAAE,iCAAiC;IACtC,GAAG,EAAE,8BAA8B;IACnC,GAAG,EAAE,2BAA2B;IAChC,GAAG,EAAE,oCAAoC;CAC1C,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,YAAY,IAAI,GAAG,CAAC;AACrE,CAAC"}
|
|
1
|
+
{"version":3,"file":"weather-icons.js","sourceRoot":"","sources":["../../src/support/weather-icons.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "meteoswiss-mcp",
|
|
3
3
|
"mcpName": "io.github.eins78/meteoswiss-mcp",
|
|
4
|
-
"version": "2.0.
|
|
4
|
+
"version": "2.2.0-rc.1",
|
|
5
5
|
"description": "MCP server for MeteoSwiss weather data — forecasts, real-time measurements, stations, pollen.",
|
|
6
6
|
"license": "CC0-1.0",
|
|
7
7
|
"author": "Max F. Albrecht <1@178.is>",
|
|
@@ -2,8 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
Swiss weather data for AI assistants — powered by [MeteoSwiss Open Data](https://opendatadocs.meteoswiss.ch/).
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
| | |
|
|
6
|
+
|---|---|
|
|
7
|
+
| **Service URL** | `$$$___TEMPLATE_BASE_URL___$$$` |
|
|
8
|
+
| **MCP Endpoint** | `$$$___TEMPLATE_MCP_URL___$$$` |
|
|
7
9
|
|
|
8
10
|
## What You Get
|
|
9
11
|
|
|
@@ -34,10 +34,10 @@ Go to **Settings** → **Integrations** → **Add MCP Server** → paste the MCP
|
|
|
34
34
|
|
|
35
35
|
## Example Questions
|
|
36
36
|
|
|
37
|
-
**German:** "Wie wird das Wetter in Zürich diese Woche?"
|
|
38
|
-
**French:** "Quelle est la météo à Genève demain?"
|
|
39
|
-
**Italian:** "Che tempo fa a Lugano?"
|
|
40
|
-
**English:** "What's the current temperature at Jungfraujoch?"
|
|
37
|
+
- **German:** "Wie wird das Wetter in Zürich diese Woche?"
|
|
38
|
+
- **French:** "Quelle est la météo à Genève demain?"
|
|
39
|
+
- **Italian:** "Che tempo fa a Lugano?"
|
|
40
|
+
- **English:** "What's the current temperature at Jungfraujoch?"
|
|
41
41
|
|
|
42
42
|
## Self-Hosting & Development
|
|
43
43
|
|