mcp-swiss 0.5.8-dev → 0.6.0
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/manifest.json +329 -78
- package/package.json +1 -1
- package/server.json +3 -3
package/manifest.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"manifest_version": "0.3",
|
|
3
3
|
"name": "mcp-swiss",
|
|
4
|
-
"display_name": "Switzerland MCP
|
|
5
|
-
"version": "0.
|
|
6
|
-
"description": "Swiss open data for AI
|
|
7
|
-
"long_description": "mcp-swiss gives any AI assistant direct access to Swiss open data.
|
|
4
|
+
"display_name": "Switzerland MCP \ud83c\udde8\ud83c\udded",
|
|
5
|
+
"version": "0.6.0",
|
|
6
|
+
"description": "Swiss open data for AI \u2014 73 tools, zero API keys. Transport, weather, geodata, companies, parliament, and 15 more modules.",
|
|
7
|
+
"long_description": "mcp-swiss gives any AI assistant direct access to Swiss open data. 73 tools across 20 modules: train schedules (SBB), weather (MeteoSwiss), river levels (BAFU), geodata (swisstopo), company registry (ZEFIX), parliament (OpenParlData.ch), avalanche bulletins, holidays, postal services, electricity prices, population statistics, exchange rates (SNB), recycling schedules, news (SRF), voting results, dam registry, hiking trail alerts, real estate data, traffic counts, and earthquake monitoring. All APIs are free and require zero authentication.",
|
|
8
8
|
"author": {
|
|
9
9
|
"name": "Vikram Gorla",
|
|
10
10
|
"url": "https://github.com/vikramgorla"
|
|
@@ -22,89 +22,340 @@
|
|
|
22
22
|
"entry_point": "dist/index.js",
|
|
23
23
|
"mcp_config": {
|
|
24
24
|
"command": "node",
|
|
25
|
-
"args": [
|
|
25
|
+
"args": [
|
|
26
|
+
"${__dirname}/dist/index.js"
|
|
27
|
+
]
|
|
26
28
|
}
|
|
27
29
|
},
|
|
28
30
|
"tools": [
|
|
29
|
-
{
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
{
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
{
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
{
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
{
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
{
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
{
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
{
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
{
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
{
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
{
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
{
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
{
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
{
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
{
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
{
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
{
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
31
|
+
{
|
|
32
|
+
"name": "search_stations",
|
|
33
|
+
"description": "Search for Swiss public transport stations/stops by name or coordinates"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"name": "get_connections",
|
|
37
|
+
"description": "Get train/bus connections between two Swiss locations"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"name": "get_departures",
|
|
41
|
+
"description": "Get live departures from a Swiss transport station"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"name": "get_arrivals",
|
|
45
|
+
"description": "Get live arrivals at a Swiss transport station"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"name": "get_nearby_stations",
|
|
49
|
+
"description": "Find Swiss public transport stations near given coordinates"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"name": "get_weather",
|
|
53
|
+
"description": "Get current weather conditions at a Swiss MeteoSwiss station"
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"name": "list_weather_stations",
|
|
57
|
+
"description": "List all available MeteoSwiss weather stations in Switzerland"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"name": "get_weather_history",
|
|
61
|
+
"description": "Get historical weather data for a Swiss station"
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"name": "get_water_level",
|
|
65
|
+
"description": "Get current river or lake water level and temperature at a Swiss hydrological station"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"name": "list_hydro_stations",
|
|
69
|
+
"description": "List all available BAFU hydrological monitoring stations"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"name": "get_water_history",
|
|
73
|
+
"description": "Get historical river/lake water level data for a Swiss hydrological station"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"name": "geocode",
|
|
77
|
+
"description": "Convert a Swiss address or place name to coordinates (swisstopo)"
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"name": "reverse_geocode",
|
|
81
|
+
"description": "Convert coordinates to a Swiss address (swisstopo)"
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"name": "search_places",
|
|
85
|
+
"description": "Search Swiss place names, localities, mountains, and geographic features"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"name": "get_solar_potential",
|
|
89
|
+
"description": "Get rooftop solar energy potential for a location in Switzerland"
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"name": "identify_location",
|
|
93
|
+
"description": "Identify geographic features and data layers at a specific Swiss location"
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"name": "get_municipality",
|
|
97
|
+
"description": "Get information about a Swiss municipality by name"
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"name": "search_companies",
|
|
101
|
+
"description": "Search Swiss company registry (ZEFIX) by name, canton, or legal form"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"name": "get_company",
|
|
105
|
+
"description": "Get full details of a Swiss company by its ZEFIX internal ID"
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"name": "search_companies_by_address",
|
|
109
|
+
"description": "Search Swiss companies registered at a specific address or locality"
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"name": "list_cantons",
|
|
113
|
+
"description": "List all Swiss cantons with their codes"
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"name": "list_legal_forms",
|
|
117
|
+
"description": "List all Swiss company legal forms (AG, GmbH, etc.)"
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"name": "get_public_holidays",
|
|
121
|
+
"description": "Get public holidays for a Swiss canton and year"
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"name": "get_school_holidays",
|
|
125
|
+
"description": "Get school holidays for a Swiss canton"
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"name": "is_holiday_today",
|
|
129
|
+
"description": "Check if today is a public holiday in a Swiss canton"
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
"name": "get_latest_votes",
|
|
133
|
+
"description": "Get the latest parliament votes"
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"name": "search_councillors",
|
|
137
|
+
"description": "Search current National/States Council members"
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
"name": "get_sessions",
|
|
141
|
+
"description": "Get parliament session schedule"
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"name": "search_parliament_business",
|
|
145
|
+
"description": "Search parliamentary affairs and bills"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"name": "get_avalanche_bulletin",
|
|
149
|
+
"description": "Get SLF avalanche danger bulletin"
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
"name": "list_avalanche_regions",
|
|
153
|
+
"description": "List avalanche warning regions"
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"name": "get_air_quality",
|
|
157
|
+
"description": "Get NABEL air quality measurements"
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"name": "list_air_quality_stations",
|
|
161
|
+
"description": "List NABEL air quality monitoring stations"
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
"name": "lookup_postcode",
|
|
165
|
+
"description": "Look up a Swiss postcode"
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
"name": "search_postcode",
|
|
169
|
+
"description": "Search Swiss postcodes by locality name"
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
"name": "list_postcodes_in_canton",
|
|
173
|
+
"description": "List all postcodes in a Swiss canton"
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
"name": "track_parcel",
|
|
177
|
+
"description": "Track a Swiss Post parcel"
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
"name": "get_electricity_tariff",
|
|
181
|
+
"description": "Get electricity tariff for a Swiss municipality"
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
"name": "compare_electricity_tariffs",
|
|
185
|
+
"description": "Compare electricity prices across municipalities"
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
"name": "search_municipality_energy",
|
|
189
|
+
"description": "Search municipalities for energy data"
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
"name": "get_population",
|
|
193
|
+
"description": "Get population data by canton or municipality"
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
"name": "search_statistics",
|
|
197
|
+
"description": "Search BFS statistical datasets"
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
"name": "get_statistic",
|
|
201
|
+
"description": "Get a specific BFS statistic"
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
"name": "get_exchange_rate",
|
|
205
|
+
"description": "Get current CHF exchange rate from SNB"
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
"name": "get_exchange_rate_history",
|
|
209
|
+
"description": "Get historical exchange rates"
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
"name": "list_currencies",
|
|
213
|
+
"description": "List available currency pairs"
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
"name": "get_waste_collection",
|
|
217
|
+
"description": "Get waste collection schedule"
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
"name": "list_waste_types",
|
|
221
|
+
"description": "List available waste types"
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
"name": "get_waste_calendar",
|
|
225
|
+
"description": "Get waste collection calendar"
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
"name": "get_swiss_news",
|
|
229
|
+
"description": "Get SRF news headlines"
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
"name": "search_swiss_news",
|
|
233
|
+
"description": "Search Swiss news by keyword"
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
"name": "get_voting_results",
|
|
237
|
+
"description": "Get popular vote results"
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
"name": "get_vote_details",
|
|
241
|
+
"description": "Get detailed vote breakdown"
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
"name": "search_votes",
|
|
245
|
+
"description": "Search available vote dates and topics"
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
"name": "search_dams",
|
|
249
|
+
"description": "Search Swiss federal dam registry"
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
"name": "get_dams_by_canton",
|
|
253
|
+
"description": "Get dams by canton"
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
"name": "get_dam_details",
|
|
257
|
+
"description": "Get details of a specific dam"
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
"name": "get_trail_closures",
|
|
261
|
+
"description": "Get hiking trail closures and alerts"
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
"name": "get_trail_closures_nearby",
|
|
265
|
+
"description": "Get trail closures near coordinates"
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
"name": "get_property_price_index",
|
|
269
|
+
"description": "Get Swiss property price index"
|
|
270
|
+
},
|
|
271
|
+
{
|
|
272
|
+
"name": "get_rent_index",
|
|
273
|
+
"description": "Get rental price index"
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
"name": "search_real_estate_data",
|
|
277
|
+
"description": "Search real estate market data"
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
"name": "get_traffic_count",
|
|
281
|
+
"description": "Get traffic count data from ASTRA stations"
|
|
282
|
+
},
|
|
283
|
+
{
|
|
284
|
+
"name": "get_traffic_by_canton",
|
|
285
|
+
"description": "Get traffic data by canton"
|
|
286
|
+
},
|
|
287
|
+
{
|
|
288
|
+
"name": "get_traffic_nearby",
|
|
289
|
+
"description": "Get traffic data near coordinates"
|
|
290
|
+
},
|
|
291
|
+
{
|
|
292
|
+
"name": "get_recent_earthquakes",
|
|
293
|
+
"description": "Get recent earthquakes in Switzerland"
|
|
294
|
+
},
|
|
295
|
+
{
|
|
296
|
+
"name": "get_earthquake_details",
|
|
297
|
+
"description": "Get details of a specific earthquake"
|
|
298
|
+
},
|
|
299
|
+
{
|
|
300
|
+
"name": "search_earthquakes_by_location",
|
|
301
|
+
"description": "Search earthquakes near a location"
|
|
302
|
+
},
|
|
303
|
+
{
|
|
304
|
+
"name": "search_parliament_speeches",
|
|
305
|
+
"description": "Search speeches given in Swiss parliament"
|
|
306
|
+
},
|
|
307
|
+
{
|
|
308
|
+
"name": "get_politician_interests",
|
|
309
|
+
"description": "Get interests and affiliations of a Swiss parliamentarian"
|
|
310
|
+
},
|
|
311
|
+
{
|
|
312
|
+
"name": "search_cantonal_affairs",
|
|
313
|
+
"description": "Search cantonal government affairs submitted to the federal parliament"
|
|
314
|
+
},
|
|
315
|
+
{
|
|
316
|
+
"name": "get_parliamentary_documents",
|
|
317
|
+
"description": "Get official documents for a Swiss parliamentary affair"
|
|
318
|
+
},
|
|
319
|
+
{
|
|
320
|
+
"name": "get_committee_meetings",
|
|
321
|
+
"description": "Get Swiss parliamentary committee meetings and agendas"
|
|
322
|
+
}
|
|
97
323
|
],
|
|
98
324
|
"keywords": [
|
|
99
|
-
"switzerland",
|
|
100
|
-
"
|
|
101
|
-
"
|
|
102
|
-
"
|
|
325
|
+
"switzerland",
|
|
326
|
+
"swiss",
|
|
327
|
+
"open-data",
|
|
328
|
+
"transport",
|
|
329
|
+
"sbb",
|
|
330
|
+
"weather",
|
|
331
|
+
"meteoswiss",
|
|
332
|
+
"geodata",
|
|
333
|
+
"swisstopo",
|
|
334
|
+
"zefix",
|
|
335
|
+
"companies",
|
|
336
|
+
"parliament",
|
|
337
|
+
"avalanche",
|
|
338
|
+
"holidays",
|
|
339
|
+
"postal",
|
|
340
|
+
"energy",
|
|
341
|
+
"statistics",
|
|
342
|
+
"exchange-rates",
|
|
343
|
+
"recycling",
|
|
344
|
+
"news",
|
|
345
|
+
"voting",
|
|
346
|
+
"dams",
|
|
347
|
+
"hiking",
|
|
348
|
+
"real-estate",
|
|
349
|
+
"traffic",
|
|
103
350
|
"earthquakes"
|
|
104
351
|
],
|
|
105
352
|
"license": "MIT",
|
|
106
353
|
"compatibility": {
|
|
107
|
-
"platforms": [
|
|
354
|
+
"platforms": [
|
|
355
|
+
"darwin",
|
|
356
|
+
"win32",
|
|
357
|
+
"linux"
|
|
358
|
+
],
|
|
108
359
|
"runtimes": {
|
|
109
360
|
"node": ">=20.0.0"
|
|
110
361
|
}
|
package/package.json
CHANGED
package/server.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
|
|
3
3
|
"name": "io.github.vikramgorla/swiss",
|
|
4
|
-
"title": "Switzerland MCP
|
|
4
|
+
"title": "Switzerland MCP \ud83c\udde8\ud83c\udded",
|
|
5
5
|
"description": "Swiss open data MCP server. 73 tools, zero API keys. Transport, weather, geodata, news, rates.",
|
|
6
6
|
"repository": {
|
|
7
7
|
"url": "https://github.com/vikramgorla/mcp-swiss",
|
|
8
8
|
"source": "github"
|
|
9
9
|
},
|
|
10
|
-
"version": "0.
|
|
10
|
+
"version": "0.6.0",
|
|
11
11
|
"icons": [
|
|
12
12
|
{
|
|
13
13
|
"src": "https://raw.githubusercontent.com/vikramgorla/mcp-swiss/main/assets/icon.svg",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
{
|
|
26
26
|
"registryType": "npm",
|
|
27
27
|
"identifier": "mcp-swiss",
|
|
28
|
-
"version": "0.
|
|
28
|
+
"version": "0.6.0",
|
|
29
29
|
"runtimeHint": "npx",
|
|
30
30
|
"transport": {
|
|
31
31
|
"type": "stdio"
|