Serveur MCP de la NASA - MCP Server sécurisé par ALMC Security 2025

Serveur MCP de la NASA

Voir sur GitHub

NPM Version

Serveur MCP de la NASA

Serveur MCP (Model Context Protocol) pour les API de la NASA, fournissant une interface standardisée pour les modèles d'IA afin d'interagir avec le vaste éventail de sources de données de la NASA. Ce serveur implémente la spécification officielle Model Context Protocol.

Un grand merci à la communauté MCP pour son soutien et ses conseils !

Caractéristiques

  • Accès à plus de 20 sources de données de la NASA via une interface unique et cohérente
  • Formats de données standardisés et optimisés pour l'IA
  • Validation automatique des paramètres et gestion des erreurs
  • Gestion des limites de taux pour les clés API de la NASA
  • Documentation complète et exemples
  • Prise en charge de divers formats d'imagerie de la NASA
  • Conversion et formatage des données pour la compatibilité LLM
  • Support multiplateforme (Windows, macOS, Linux)

Clause de non-responsabilité

Ce projet n'est pas affilié, approuvé ou lié à la NASA (National Aeronautics and Space Administration) ou à l'une de ses filiales ou à l'un de ses affiliés. Il s'agit d'une implémentation indépendante qui accède aux API de la NASA accessibles au public. Toutes les données de la NASA utilisées sont accessibles au public et soumises aux politiques d'utilisation des données de la NASA.

Installation de l'application

Exécution avec npx

env NASA_API_KEY=Votre_clé_API npx -y @programcomputer/nasa-mcp-server@latest

Vous pouvez également passer la clé API comme argument de ligne de commande :

npx -y @programcomputer/nasa-mcp-server@latest --nasa-api-key=Votre_clé_API

Utilisation de SuperGateway pour les événements envoyés par le serveur (SSE)

Vous pouvez utiliser SuperGateway pour les événements envoyés par le serveur (SSE).

Les développeurs de NASA-MCP-server n'approuvent pas le dépôt SuperGateway. Ces informations sont fournies à ceux qui souhaitent mettre en œuvre la fonctionnalité SSE à leur propre discrétion.

Installation manuelle

# Cloner le dépôt git clone https://github.com/ProgramComputer/NASA-MCP-server.git # Installer les dépendances cd NASA-MCP-server npm install # Exécuter avec votre clé API NASA_API_KEY=Votre_clé_API npm start

Exécution sur Cursor

Configuration de Cursor 🖥️ Remarque : nécessite la version 0.45.6+ de Cursor

Pour configurer le serveur NASA MCP dans Cursor :

Créez ou modifiez un fichier mcp.json dans votre répertoire de configuration Cursor avec le contenu suivant :

{ "mcpServers" : { "nasa-mcp" : { "command" : "npx", "args" : ["-y", "@programcomputer/nasa-mcp-server@latest"], "env" : { "NASA_API_KEY" : "your-api-key" } } }

Remplacez your-api-key par votre clé API NASA provenant de https://api.nasa.gov/.

Après avoir ajouté la configuration, redémarrez Cursor pour voir les nouveaux outils NASA. L'agent de composition utilisera automatiquement le MCP de la NASA, le cas échéant, pour les requêtes liées à l'espace.

Variables d'environnement

Le serveur peut être configuré avec les variables d'environnement suivantes :

VariableVariable Description
NASA_API_KEYVotre clé API NASA (à obtenir sur api.nasa.gov)

API de la NASA incluses

Ce serveur MCP intègre les API suivantes de la NASA :

  1. NASA Open API (api.nasa.gov) :

    • APOD (Astronomy Picture of the Day)
    • EPIC (Caméra d'imagerie polychromatique de la Terre)
    • DONKI (base de données météorologiques spatiales de notifications, de connaissances et d'informations)
    • Insight (Service météorologique de Mars)
    • Photos du Mars Rover
    • NEO (Near Earth Object Web Service)
    • EONET (Earth Observatory Natural Event Tracker)
    • TLE (Two-Line Element)
    • Bibliothèque d'images et de vidéos de la NASA
    • Archives des exoplanètes
    • NASA Sounds API (Beta)
    • POWER (Prévision des ressources énergétiques mondiales)
  2. JPL Solar System Dynamics API (ssd-api.jpl.nasa.gov) :

    • SBDB (Small-Body DataBase)
    • Données SBDB sur les objets proches
    • Données sur les boules de feu
    • API Scout
  3. Données sur la Terre (Earth Data APIs) :

    • GIBS (Global Imagery Browse Services)
    • CMR (Common Metadata Repository) - Amélioré avec des capacités de recherche avancées
    • EPIC (Caméra d'imagerie polychromatique terrestre)
    • FIRMS (Système d'information sur les incendies pour la gestion des ressources)

Méthodes API

Chaque API de la NASA est exposée par le biais de méthodes MCP normalisées :

APOD (Astronomy Picture of the Day - Image astronomique du jour)

{"method" : "nasa/apod", "params" : { "date" : "2023-01-01", // Facultatif : format AAAA-MM-JJ "count" : 5, // Facultatif : Renvoie un nombre spécifié d'images aléatoires "thumbs" : true // Facultatif : Renvoie l'URL de la vignette vidéo } }

Photos du Mars Rover

{ "method" : "nasa/mars-rover", "params" : { "rover" : "curiosity", // Requis : "curiosity", "opportunity", ou "spirit" "sol" : 1000, // Il faut soit sol, soit earth_date "earth_date" : "2023-01-01", // Format AAAA-MM-JJ "camera" : "FHAZ" // Facultatif : Filtre sur le type de caméra } }

Objets proches de la Terre

{ "method" : "nasa/neo", "params" : { "start_date" : "2023-01-01", // Requis : Format AAAA-MM-JJ "end_date" : "2023-01-07" // Requis : Format AAAA-MM-JJ (7 jours maximum à partir du début) } }

GIBS (Global Imagery Browse Services)

{ "method" : "nasa/gibs", "params" : { "layer" : "MODIS_Terra_CorrectedReflectance_TrueColor", // Requis : ID de la couche "date" : "2023-01-01", // Requis : Format AAAA-MM-JJ "format" : "png" // Facultatif : "png" ou "jpg" } }

POWER (Prévision des ressources énergétiques mondiales)

{ "method" : "nasa/power", "params" : { "parameters" : "T2M,PRECTOTCORR,WS10M", // Requis : Liste séparée par des virgules "community" : "re", // Requis : Identifiant de la communauté "latitude" : 40.7128, // Requis : Latitude "longitude" : -74.0060, // Requis : Longitude "start" : "20220101", // Requis : Date de début (AAAAMMJJ) "end" : "20220107" // Requis : End date (YYYYMMDD) } }

Pour une documentation complète de toutes les méthodes et de tous les paramètres disponibles, voir la référence de l'API dans le répertoire /docs.

Système de journalisation

Le serveur comprend un système de journalisation complet :

  • État et progression des opérations
  • Mesures des performances
  • Suivi des limites de débit
  • Conditions d'erreur
  • Validation des demandes

Exemple de messages du journal :

[INFO] Le serveur MCP de la NASA a été initialisé avec succès [INFO] Traitement de la demande APOD pour la date : 2023-01-01 [INFO] Récupération des données du Mars Rover pour Curiosity, sol 1000 [WARNING] Seuil de limite de débit atteint (80%) [ERROR] Paramètre invalide : 'date' doit être au format AAAA-MM-JJ

Considérations relatives à la sécurité

Ce serveur MCP met en œuvre les meilleures pratiques de sécurité conformément aux spécifications du Model Context Protocol :

  • Validation et assainissement des entrées à l'aide des schémas Zod
  • Pas d'exécution de code arbitraire
  • Protection contre l'injection de commandes
  • Traitement approprié des erreurs pour éviter les fuites d'informations
  • Limitation du débit et contrôle du délai d'attente pour les demandes d'API
  • Pas d'état persistant susceptible d'être exploité d'une session à l'autre

Développement

# Cloner le dépôt git clone https://github.com/ProgramComputer/NASA-MCP-server.git # Installer les dépendances npm install # Copier le fichier d'environnement de l'exemple et le mettre à jour avec vos clés API cp .env.example .env # Construire le code TypeScript npm run build # Démarrer le serveur de développement npm run dev # Exécuter les tests npm test

Test avec MCP Inspector

Le serveur MCP de la NASA comprend un script pour vous aider à tester les API à l'aide de l'inspecteur MCP :

# Exécuter le script de test fourni ./scripts/test-with-inspector.sh

Ceci aura pour effet de :

  1. Construire le projet pour s'assurer que les dernières modifications sont incluses
  2. Démarrer l'Inspecteur MCP avec le serveur MCP de la NASA en cours d'exécution
  3. Vous permettre de tester interactivement toutes les API de la NASA

Exemples de demandes de test

Le référentiel comprend des exemples de demandes de test pour chaque API que vous pouvez copier et coller dans l'inspecteur MCP :

# Afficher les exemples de demandes de test cat docs/inspector-test-examples.md

Pour des exemples détaillés, voir le document Inspector Test Examples.

Utilisation du client MCP

Ce serveur suit le protocole officiel Model Context Protocol. Voici un exemple d'utilisation avec le SDK MCP :

import { Client } from "@modelcontextprotocol/sdk/client/index.js" ; import { HttpClientTransport } from "@modelcontextprotocol/sdk/client/http.js" ; const transport = new HttpClientTransport({ url : "http://localhost:3000", }) ; const client = new Client({ name : "mcp-client", version : "1.0.0", }) ; await client.connect(transport) ; // Exemple : Obtenir l'image astronomique du jour const apodResult = await client.request({ method : "nasa/apod", params : {} }) ; // Exemple : Obtenir les photos du Mars Rover const marsRoverResult = await client.request({ method : "nasa/mars-rover", params : { rover : "curiosity", sol : 1000 } }) ; // Exemple : Recherche d'objets proches de la Terre const neoResults = await client.request({ method : "nasa/neo", params : { start_date : '2023-01-01', end_date : '2023-01-07' } }) ; // Exemple : Obtenir l'imagerie satellite de GIBS const satelliteImage = await client.request({ method : "nasa/gibs", params : { layer : 'MODIS_Terra_CorrectedReflectance_TrueColor', date : '2023-01-01' } }) ; // Exemple : Utilisation de la nouvelle API POWER const powerData = await client.request({ method : "nasa/power", params : { parameters : "T2M,PRECTOTCORR,WS10M", community : "re", latitude : 40.7128, longitude : -74.0060, start : "20220101", end : "20220107" } })

Contribuer

  1. Créer un dépôt (Fork)
  2. Créez votre branche de fonctionnalité
  3. Lancer les tests : npm test
  4. Soumettre une demande d'extraction

Licence

Licence ISC - voir le fichier LICENSE pour plus de détails

Liés dans Service en nuage - MCP Servers sécurisés

ServeurRésuméActions
Serveur Salesforce MCPUne implémentation de serveur MCP (Model Context Protocol) qui intègre Claude avec Salesforce, perme...Voir
Google Play StoreUn serveur MCP (Model Context Protocol) qui permet l'intégration des outils de ligne de commande du...Voir
MezmoUn serveur Model Context Protocol (MCP) pour récupérer les logs de Mezmo. Fonctionne avec des fenêtr...Voir
Serveur Azure AHDS FHIR MCPMise en œuvre d'un serveur Model Context Protocol (MCP) pour Azure Health Data Services FHIR (Fast H...Voir
DopplerUn serveur MCP (Model Context Protocol) simplifié pour l'accès en lecture seule à la plate-forme de...Voir
Serveur MCP distant sur CloudflareAucune documentation n'est disponible.Voir