Serveur Open-Meteo MCP
Un serveur complet de protocole de contexte de modèle (MCP) qui fournit un accès aux API météorologiques d'Open-Meteo pour l'utilisation de grands modèles de langage.
Caractéristiques
Ce serveur MCP fournit un accès complet aux API d'Open-Meteo, y compris :
API météorologiques de base
- Prévisions météor ologiques
(weather_forecast
) - Prévisions à 7 jours avec résolution horaire et journalière - Archives météorologiques
(weather_archive
) - Données historiques ERA5 de 1940 à aujourd'hui - Qualité de l'air
(air_quality
) - PM2.5, PM10, ozone, dioxyde d'azote et autres polluants - Météo marine
(marine_weather
) - Hauteur des vagues, période des vagues, direction des vagues et température de surface de la mer - Élévation
(elevation
) - Données du modèle numérique d'élévation pour des coordonnées données - Géocodage
(geocoding
) - Recherche de lieux dans le monde entier par nom ou code postal, obtention de coordonnées et d'informations détaillées sur les lieux
Modèles météorologiques spécialisés
- DWD ICON
(dwd_icon_forecast
) - Modèle haute résolution du service météorologique allemand pour l'Europe - NOAA GFS
(gfs_forecast
) - Modèle global du service météorologique américain avec des données à haute résolution pour l'Amérique du Nord - Météo-France
(meteofrance_forecast
) - Modèles AROME et ARPEGE du service météorologique français - ECMWF
(ecmwf_forecast
) - Centre européen pour les prévisions météorologiques à moyen terme - JMA
(jma_forecast
) - Modèle haute résolution de l'Agence météorologique japonaise pour l'Asie - MET Norway
(metno_forecast
) - Service météorologique norvégien pour les pays nordiques - Environnement Canada GEM
(gem_forecast
) - Modèle du service météorologique canadien
Outils de prévision avancés
- Flood Fore cast
(flood_forecast
) - Débit fluvial et prévisions d'inondation du GloFAS (Global Flood Awareness System) - Prévisions saisonnières
(seasonal_forecast
) - Prévisions à long terme jusqu'à 9 mois - Projections climatiques
(climate_projection
) - Projections du changement climatique CMIP6 pour différents scénarios de réchauffement - Prévisions d'ensemble
(ensemble_forecast
) - Multiples simulations de modèles montrant l'incertitude des prévisions
Installation
Méthode 1 : Utilisation de npx (Recommandé)
Aucune installation n'est nécessaire ! Le serveur fonctionnera directement via npx.
Méthode 2 : Installation globale via npm
npm install -g open-meteo-mcp-server
Méthode 3 : A partir des sources (Développement)
# Cloner le dépôt git clone https://github.com/cmer81/open-meteo-mcp.git cd open-meteo-mcp # Installer les dépendances npm install # Construire le projet npm run build
Configuration du projet
Configuration du bureau de Claude
Configuration simple (recommandée)
Ajoutez la configuration suivante au fichier de configuration de votre Claude Desktop :
{ "mcpServers" : { "open-meteo" : { "command" : "npx", "args" : ["open-meteo-mcp-server"] } } }
Configuration complète (avec variables d'environnement)
{ "mcpServers" : { "open-meteo" : { "command" : "npx", "args" : ["open-meteo-mcp-server"], "env" : { "OPEN_METEO_API_URL" : "https://api.open-meteo.com", "OPEN_METEO_AIR_QUALITY_API_URL" : "https://air-quality-api.open-meteo.com", "OPEN_METEO_MARINE_API_URL" : "https://marine-api.open-meteo.com", "OPEN_METEO_ARCHIVE_API_URL" : "https://archive-api.open-meteo.com", "OPEN_METEO_SEASONAL_API_URL" : "https://seasonal-api.open-meteo.com", "OPEN_METEO_ENSEMBLE_API_URL" : "https://ensemble-api.open-meteo.com", "OPEN_METEO_GEOCODING_API_URL" : "https://geocoding-api.open-meteo.com" } } }
Configuration du développement local
Si vous développez localement ou si vous avez installé le logiciel à partir des sources :
{ "mcpServers" : { "open-meteo" : { "command" : "node", "args" : ["/path/to/open-meteo-mcp/dist/index.js"], "env" : {"OPEN_METEO_API_URL" : "https://api.open-meteo.com", "OPEN_METEO_AIR_QUALITY_API_URL" : "https://air-quality-api.open-meteo.com", "OPEN_METEO_MARINE_API_URL" : "https://marine-api.open-meteo.com", "OPEN_METEO_ARCHIVE_API_URL" : "https://archive-api.open-meteo.com", "OPEN_METEO_SEASONAL_API_URL" : "https://seasonal-api.open-meteo.com", "OPEN_METEO_ENSEMBLE_API_URL" : "https://ensemble-api.open-meteo.com", "OPEN_METEO_GEOCODING_API_URL" : "https://geocoding-api.open-meteo.com" } } }
Configuration personnalisée de l'instance
Si vous utilisez votre propre instance Open-Meteo :
{ "mcpServers" : { "open-meteo" : { "command" : "npx", "args" : ["open-meteo-mcp-server"], "env" : { "OPEN_METEO_API_URL" : "https://your-meteo-api.example.com", "OPEN_METEO_AIR_QUALITY_API_URL" : "https://air-quality-api.example.com", "OPEN_METEO_MARINE_API_URL" : "https://marine-api.example.com", "OPEN_METEO_ARCHIVE_API_URL" : "https://archive-api.example.com", "OPEN_METEO_SEASONAL_API_URL" : "https://seasonal-api.example.com", "OPEN_METEO_ENSEMBLE_API_URL" : "https://ensemble-api.example.com", "OPEN_METEO_GEOCODING_API_URL" : "https://geocoding-api.example.com" } } }
Variables d'environnement
Toutes les variables d'environnement sont facultatives et ont des valeurs par défaut raisonnables :
OPEN_METEO_API_URL
- URL de base pour l'API de prévision Open-Meteo (par défaut : https://api.open-meteo.com)OPEN_METEO_AIR_QUALITY_API_URL
- URL de l'API de qualité de l'air (par défaut : https://air-quality-api.open-meteo.com)OPEN_METEO_MARINE_API_URL
- URL de l'API météo marine (par défaut : https://marine-api.open-meteo.com)OPEN_METEO_ARCHIVE_API_URL
- URL de l'API pour les données historiques (par défaut : https://archive-api.open-meteo.com)OPEN_METEO_SEASONAL_API_URL
- URL de l'API pour les prévisions saisonnières (par défaut : https://seasonal-api.open-meteo.com)OPEN_METEO_ENSEMBLE_API_URL
- URL de l'API pour les prévisions d'ensemble (par défaut : https://ensemble-api.open-meteo.com)OPEN_METEO_GEOCODING_API_URL
- URL de l'API de géocodage (par défaut : https://geocoding-api.open-meteo.com)
Exemples d'utilisation
Géocodage et recherche de lieux
Trouver les coordonnées de Paris, France
Recherche de lieux nommés "Berlin" et retour des 5 premiers résultats
Quelles sont les coordonnées du code postal 75001 ?
Recherche de "Lyon" en France uniquement (countryCode : FR) avec des résultats en français (langue : fr)
Trouver toutes les villes nommées "London" au Royaume-Uni avec des descriptions en anglais
Prévisions météorologiques de base
Pouvez-vous me donner les prévisions météorologiques pour Paris (48.8566, 2.3522) avec la température, l'humidité et les précipitations pour les 3 prochains jours ?
Données météorologiques historiques
Quelles étaient les températures à Londres en janvier 2023 ?
Surveillance de la qualité de l'air
Quelle est la qualité actuelle de l'air à Pékin avec les niveaux de PM2.5 et d'ozone ?
Météo marine
Obtenez-moi la hauteur des vagues et la température de surface de la mer pour les coordonnées 45.0, -125.0 pour les 5 prochains jours
Surveillance des inondations
Consultez les prévisions de débit du fleuve pour les coordonnées 52.5, 13.4 pour les 30 prochains jours
Projections climatiques
Montrez-moi les projections de température pour New York de 2050 à 2070 en utilisant les modèles CMIP6
Paramètres API
Paramètres requis
latitude
: Latitude dans le système de coordonnées WGS84 (-90 à 90)longitude
: Longitude dans le système de coordonnées WGS84 (-180 à 180)
Variables météorologiques horaires
temperature_2m
: Température à 2 mètresrelative_humidity_2m
: Humidité relativeprecipitation
: Précipitationwind_speed_10m
: Vitesse du vent à 10 mètreswind_direction_10m
: Direction du ventpressure_msl
: Pression au niveau moyen de la mercloud_cover
: Pourcentage de couverture nuageuseweather_code
: Code des conditions météorologiquesvisibility
: Visibilitéuv_index
: Indice UV- Et bien d'autres encore...
Variables météorologiques quotidiennes
temperature_2m_max/min
: Températures maximales/minimalesprecipitation_sum
: Total des précipitationswind_speed_10m_max
: Vitesse maximale du ventsunrise/sunset
: Heures de lever et de coucher du soleilweather_code
: Code des conditions météorologiquesuv_index_max
: Indice UV maximal
Variables de la qualité de l'air
pm10
: Particules PM10pm2_5
: particules PM2.5carbon_monoxide
: Monoxyde de carbonenitrogen_dioxide
: Dioxyde d'azoteozone
: Ozonesulphur_dioxide
: Dioxyde de soufreammoniaque
: Ammoniaquedust
: Particules de poussière
Variables météorologiques marines
wave_height
: Hauteur des vagueswave_direction
: Direction des vagueswave_period
: Période de la vaguewind_wave_height
: Hauteur de la vague de ventswell_wave_height
: Hauteur de la houlesea_surface_temperature
: Température de surface de la mer
Options de formatage
temperature_unit
:celsius
,fahrenheit
wind_speed_unit
:kmh
,ms
,mph
,kn
precipitation_unit
:mm
,inch
timezone
:Europe/Paris
,Amérique/New_York
, etc.
Options d'intervalle de temps
forecast_days
: Nombre de jours de prévision (varie selon l'API)past_days
: Inclure les données des jours précédentsstart_date
/end_date
: Plage de dates pour les données historiques (format AAAA-MM-JJ)
Scripts de développement
# Développement avec auto-rechargement npm run dev # Construction TypeScript npm run build # Démarrage du serveur de production npm start # Exécution des tests npm test # Vérification de type npm run typecheck # Linting npm run lint
Structure du projet
src/ ├── index.ts # point d'entrée du serveur MCP ├── client.ts # client HTTP pour l'API Open-Meteo ├── tools.ts # définitions des outils MCP └── types.ts # schémas de validation Zod
Couverture de l'API
Ce serveur fournit un accès à tous les principaux points de terminaison d'Open-Meteo :
Données météorologiques
- Conditions météorologiques actuelles
- Prévisions horaires (jusqu'à 16 jours)
- Prévisions journalières (jusqu'à 16 jours)
- Données météorologiques historiques (1940-présent)
Modèles spécialisés
- Modèles régionaux à haute résolution (DWD ICON, Météo-France AROME)
- Modèles mondiaux (NOAA GFS, ECMWF)
- Spécialistes régionaux (JMA pour l'Asie, MET Norway pour les pays nordiques)
Données environnementales
- Prévisions de la qualité de l'air
- Conditions marines et océaniques
- Débit des cours d'eau et alertes aux inondations
- Projections sur le changement climatique
Fonctionnalités avancées
- Prévisions d'ensemble pour la quantification de l'incertitude
- Prévisions saisonnières pour la planification à long terme
- Comparaison de plusieurs modèles
- Unités et fuseaux horaires personnalisables
Gestion des erreurs
Le serveur fournit une gestion complète des erreurs avec des messages d'erreur détaillés pour :
- Coordonnées non valides
- Paramètres requis manquants
- Limites de débit de l'API
- Problèmes de connectivité réseau
- Plages de dates non valides
Performances
- Client HTTP efficace avec mise en commun des connexions
- Mise en cache des requêtes pour les requêtes répétées
- Sérialisation optimisée des données
- Empreinte mémoire minimale
Documentation de l'API
Pour une documentation détaillée de l'API, reportez-vous au fichier openapi.yml
et à la documentation de l'API Open-Meteo.
Contribuer
Les contributions sont les bienvenues ! N'hésitez pas à soumettre une Pull Request.
Configuration du développement
- Créer un dépôt (fork)
- Clonez votre fork :
git clone https://github.com/your-username/open-meteo-mcp.git
- Installer les dépendances :
npm install
- Créez une branche de fonctionnalités :
git checkout -b feature/amazing-feature
- Effectuez vos modifications et ajoutez des tests
- Exécutez les tests :
npm test
- Validez vos modifications :
git commit -m 'Add amazing feature' (ajouter une fonctionnalité étonnante)
- Pousser vers la branche :
git push origin feature/amazing-feature
- Ouvrir une demande de retrait
Publication
Ce projet utilise des versions automatisées via GitHub Actions. Pour créer une nouvelle version :
# Pour une version patch (1.0.0 -> 1.0.1) npm run release:patch # Pour une version mineure (1.0.0 -> 1.1.0) npm run release:minor # Pour une version majeure (1.0.0 -> 2.0.0) npm run release:major
L'action GitHub va automatiquement :
- Exécuter les tests et construire le projet
- Publier sur npm avec la provenance
- Créer une version GitHub
- Mettre à jour les badges de version
Licence
MIT