NASA MCP Servidor - MCP Server segur per ALMC Security 2025

NASA MCP Servidor

Veure a GitHub

NPM Version

Servidor NASA MCP

Un servidor Model Context Protocol (MCP) per a les API de NASA, que ofereix una interfície estàndard perquè els models d’IA interactuïn amb la vasta gamma de fonts de dades de NASA. Aquest servidor implementa la especificació oficial del Model Context Protocol.

Moltes gràcies a la comunitat MCP pel seu suport i orientació!

Característiques

  • Accés a més de 20 fonts de dades de NASA a través d’una única interfície consistent
  • Formats de dades estàndard optimitzats per al consum d’IA
  • Validació automàtica de paràmetres i gestió d’errors
  • Gestió de límits d’ús per a les claus d’API de NASA
  • Documentació completa i exemples
  • Suport per a diversos formats d’imatges de NASA
  • Conversió i formatació de dades per a la compatibilitat amb LLM
  • Suport multiplataforma (Windows, macOS, Linux)

Avís legal

Aquest projecte no està afiliat, avalat ni relacionat amb la NASA (National Aeronautics and Space Administration) ni amb cap de les seves filials o afiliats. És una implementació independent que accedeix a les API públiques de NASA. Totes les dades de NASA utilitzades són públiques i sotmeses a les polítiques d’ús de dades de NASA.

Instal·lació

Execució amb npx

env NASA_API_KEY=YOUR_API_KEY npx -y @programcomputer/nasa-mcp-server@latest

També podeu passar la clau d’API com a argument de línia d’ordres:

npx -y @programcomputer/nasa-mcp-server@latest --nasa-api-key=YOUR_API_KEY

Ús de SuperGateway per a Server-Sent Events (SSE)

Podeu utilitzar SuperGateway per a Server-Sent Events (SSE).

Els desenvolupadors de NASA-MCP-server NO AVALEN el repositori SuperGateway. Aquesta informació es proporciona per a aquells que vulguin implementar funcionalitat SSE a la seva discreció.

Instal·lació manual

# Clonar el repositori
git clone https://github.com/ProgramComputer/NASA-MCP-server.git

# Instal·lar dependències
cd NASA-MCP-server
npm install

# Executar amb la vostra clau d’API
NASA_API_KEY=YOUR_API_KEY npm start

Execució a Cursor

Configuració de Cursor 🖥️ Nota: Requereix la versió 0.45.6+ de Cursor

Per configurar el servidor NASA MCP a Cursor:

Crea o edita un fitxer mcp.json al directori de configuració de Cursor amb el següent contingut:

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

Substituïu your-api-key per la vostra clau d’API de NASA de https://api.nasa.gov/.

Després d’afegir la configuració, reinicieu Cursor per veure les noves eines de NASA. L’Agent Composer utilitzarà automàticament NASA MCP quan sigui apropiat per a consultes relacionades amb l’espai.

Variables d’entorn

El servidor es pot configurar amb les següents variables d’entorn:

VariableDescripció
NASA_API_KEYLa vostra clau d’API de NASA (obtinguda a api.nasa.gov)

APIs de NASA incloses

Aquest servidor MCP integra les següents APIs de NASA:

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

    • APOD (Astronomy Picture of the Day)
    • EPIC (Earth Polychromatic Imaging Camera)
    • DONKI (Space Weather Database Of Notifications, Knowledge, Information)
    • Insight (Mars Weather Service)
    • Mars Rover Photos
    • NEO (Near Earth Object Web Service)
    • EONET (Earth Observatory Natural Event Tracker)
    • TLE (Two-Line Element)
    • NASA Image and Video Library
    • Exoplanet Archive
    • NASA Sounds API (Beta)
    • POWER (Prediction Of Worldwide Energy Resources)
  2. JPL Solar System Dynamics API (ssd-api.jpl.nasa.gov):

    • SBDB (Small-Body DataBase)
    • SBDB Close-Approach Data
    • Fireball Data
    • Scout API
  3. Earth Data APIs:

    • GIBS (Global Imagery Browse Services)
    • CMR (Common Metadata Repository) - Enhanced with advanced search capabilities
    • EPIC (Earth Polychromatic Imaging Camera)
    • FIRMS (Fire Information for Resource Management System)

Mètodes d’API

Cada API de NASA es exposa a través de mètodes MCP estàndard:

APOD (Astronomy Picture of the Day)

{
  "method": "nasa/apod",
  "params": {
    "date": "2023-01-01", // Opcional: format YYYY-MM-DD
    "count": 5, // Opcional: Retorna un nombre específic d’imatges aleatòries
    "thumbs": true // Opcional: Retorna URL de la miniatura del vídeo
  }
}

Mars Rover Photos

{
  "method": "nasa/mars-rover",
  "params": {
    "rover": "curiosity", // Obligatori: "curiosity", "opportunity" o "spirit"
    "sol": 1000, // Sol o earth_date és obligatori
    "earth_date": "2023-01-01", // Format YYYY-MM-DD
    "camera": "FHAZ" // Opcional: Filtra per tipus de càmera
  }
}

Near Earth Objects

{
  "method": "nasa/neo",
  "params": {
    "start_date": "2023-01-01", // Obligatori: format YYYY-MM-DD
    "end_date": "2023-01-07" // Obligatori: format YYYY-MM-DD (màx 7 dies des del inici)
  }
}

GIBS (Global Imagery Browse Services)

{
  "method": "nasa/gibs",
  "params": {
    "layer": "MODIS_Terra_CorrectedReflectance_TrueColor", // Obligatori: ID de capa
    "date": "2023-01-01", // Obligatori: format YYYY-MM-DD
    "format": "png" // Opcional: "png" o "jpg"
  }
}

POWER (Prediction Of Worldwide Energy Resources)

{
  "method": "nasa/power",
  "params": {
    "parameters": "T2M,PRECTOTCORR,WS10M", // Obligatori: llista separada per comes
    "community": "re", // Obligatori: identificador de comunitat
    "latitude": 40.7128, // Obligatori: latitud
    "longitude": -74.0060, // Obligatori: longitud
    "start": "20220101", // Obligatori: data d’inici (YYYYMMDD)
    "end": "20220107" // Obligatori: data de finalització (YYYYMMDD)
  }
}

Per a la documentació completa de tots els mètodes i paràmetres disponibles, consulteu la referència d’API al directori /docs.

Sistema de registre

El servidor inclou un registre complet:

  • Estat i progrés de l’opera
  • Mètriques de rendiment
  • Seguiment del límit d’ús
  • Condicions d’error
  • Validació de sol·licituds

Exemple de missatges de registre:

[INFO] NASA MCP Server initialized successfully
[INFO] Processing APOD request for date: 2023-01-01
[INFO] Fetching Mars Rover data for Curiosity, sol 1000
[WARNING] Rate limit threshold reached (80%)
[ERROR] Invalid parameter: 'date' must be in YYYY-MM-DD format

Consideracions de seguretat

Aquest servidor MCP implementa les millors pràctiques de seguretat seguint les especificacions del Model Context Protocol:

  • Validació i sanejament d’entrada amb esquemes Zod
  • Cap execució de codi arbitrari
  • Protecció contra injecció de comandes
  • Gestió d’errors adequada per evitar filtracions d’informació
  • Límit d’ús i controls de temps d’espera per a sol·licituds d’API
  • Cap estat persistent que pugui ser explotat entre sessions

Desenvolupament

# Clonar el repositori
git clone https://github.com/ProgramComputer/NASA-MCP-server.git

# Instal·lar dependències
npm install

# Copiar el fitxer d’exemple d’entorn i actualitzar amb les vostres claus d’API
cp .env.example .env

# Compilar el codi TypeScript
npm run build

# Iniciar el servidor de desenvolupament
npm run dev

# Executar proves
npm test

Proves amb MCP Inspector

El servidor NASA MCP inclou un script per ajudar-vos a provar les APIs amb el MCP Inspector:

# Executar el script de prova proporcionat
./scripts/test-with-inspector.sh

Això farà:

  1. Compilar el projecte per assegurar que es incloguin els canvis més recents
  2. Iniciar el MCP Inspector amb el servidor NASA MCP en funcionament
  3. Permetre-vos provar de manera interactiva totes les APIs de NASA

Exemple de sol·licituds de prova

El repositori inclou exemples de sol·licituds de prova per a cada API que podeu copiar i enganxar a l’Inspector MCP:

# Veure els exemples de prova
cat docs/inspector-test-examples.md

Per a exemples detallats, consulteu el document Inspector Test Examples.

Ús del client MCP

Aquest servidor segueix el Model Context Protocol oficial. Aquí teniu un exemple de com utilitzar-lo amb el 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’Astronomy Picture of the Day d’avui
const apodResult = await client.request({
  method: "nasa/apod", 
  params: {}
});

// Exemple: Obtenir fotos del Mars Rover
const marsRoverResult = await client.request({
  method: "nasa/mars-rover",
  params: { rover: "curiosity", sol: 1000 }
});

// Exemple: Cercar Near Earth Objects
const neoResults = await client.request({
  method: "nasa/neo",
  params: {
    start_date: '2023-01-01',
    end_date: '2023-01-07'
  }
});

// Exemple: Obtenir imatges de satèl·lit de GIBS
const satelliteImage = await client.request({
  method: "nasa/gibs",
  params: {
    layer: 'MODIS_Terra_CorrectedReflectance_TrueColor',
    date: '2023-01-01'
  }
});

// Exemple: Utilitzar la nova 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"
  }
});

Contribució

  1. Fork del repositori
  2. Crear la vostra branca de característica
  3. Executar proves: npm test
  4. Enviar una sol·licitud de pull

Llicència

Llicència ISC - vegeu el fitxer LICENSE per a detalls

Instal\u00b7lem i gestionem el teu servidor MCP

El nostre equip configura, desplega i manté servidors MCP adaptats a la teva infraestructura.

  • Instal\u00b7lació i configuració professional
  • Integració amb els teus sistemes existents
  • Suport tècnic i manteniment continu
  • Seguretat i auditoria personalitzada

Resposta en menys de 24h · Sense compromís

Consulta ràpida sobre MCP

Relacionats a Servei en núvol - MCP Servers segurs