Servidor MCP de la NASA - MCP Server Seguro por ALMC Security 2025

Servidor MCP de la NASA

Ver en GitHub

NPM Version

Servidor MCP de la NASA

Un servidor del Protocolo de Contexto de Modelos (MCP) para las APIs de la NASA, que proporciona una interfaz estandarizada para que los modelos de IA interactúen con la amplia gama de fuentes de datos de la NASA. Este servidor implementa la especificación oficial del Protocolo de Contexto de Modelo.

Muchas gracias a la comunidad MCP por su apoyo y orientación

Características

  • Acceso a más de 20 fuentes de datos de la NASA a través de una interfaz única y coherente
  • Formatos de datos estandarizados optimizados para el consumo de IA
  • Validación automática de parámetros y gestión de errores
  • Gestión del límite de velocidad para las claves API de la NASA
  • Documentación completa y ejemplos
  • Compatibilidad con varios formatos de imágenes de la NASA
  • Conversión y formateo de datos para compatibilidad con LLM
  • Compatibilidad multiplataforma (Windows, macOS, Linux)

Descargo de responsabilidad

Este proyecto no está afiliado, respaldado ni relacionado con la NASA (National Aeronautics and Space Administration) ni con ninguna de sus subsidiarias o filiales. Se trata de una implementación independiente que accede a las API de acceso público de la NASA. Todos los datos de la NASA utilizados están a disposición del público y sujetos a las políticas de uso de datos de la NASA.

Instalación

Ejecución con npx

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

También puede pasar la clave API como argumento de línea de comandos:

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

Uso de SuperGateway para eventos enviados por el servidor (SSE)

Puede utilizar SuperGateway para eventos enviados por el servidor (SSE).

Los desarrolladores de NASA-MCP-server NO APOYAN el repositorio SuperGateway. Esta información se proporciona para aquellos que deseen implementar la funcionalidad SSE según su propio criterio.

Instalación manual

# Clonar el repositorio git clone https://github.com/ProgramComputer/NASA-MCP-server.git # Instalar dependencias cd NASA-MCP-server npm install # Ejecutar con tu clave API NASA_API_KEY=TU_API_KEY npm start

Ejecutar en Cursor

Configurando Cursor 🖥️ Nota: Requiere Cursor versión 0.45.6+

Para configurar el Servidor MCP de la NASA en Cursor:

Crea o edita un archivo mcp.json en tu directorio de configuración de Cursor con el siguiente contenido:

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

Sustituya "your-api-key" por su clave API de la NASA en https://api.nasa.gov/.

Después de añadir la configuración, reinicie Cursor para ver las nuevas herramientas de la NASA. El Agente Compositor utilizará automáticamente NASA MCP cuando sea apropiado para consultas relacionadas con el espacio.

Variables de entorno

El servidor puede ser configurado con las siguientes variables de entorno:

VariableDescripción
CLAVE_API_NASASu clave API de la NASA (se obtiene en api.nasa.gov)

APIs de la NASA incluidas

Este servidor MCP integra las siguientes API de la NASA:

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

    • APOD (Imagen astronómica del día)
    • EPIC (Cámara de imágenes policromáticas de la Tierra)
    • DONKI (Base de datos de notificaciones, conocimientos e información sobre meteorología espacial)
    • Insight (Servicio Meteorológico de Marte)
    • Fotos del Mars Rover
    • NEO (Servicio Web de Objetos Cercanos a la Tierra)
    • EONET (Rastreador de Eventos Naturales del Observatorio de la Tierra)
    • TLE (Elemento de dos líneas)
    • Biblioteca de imágenes y vídeos de la NASA
    • Archivo de exoplanetas
    • API de sonidos de la NASA (Beta)
    • POWER (Predicción de recursos energéticos mundiales)
  2. API de dinámica del sistema solar del JPL (ssd-api.jpl.nasa.gov):

    • SBDB (Base de datos de cuerpos pequeños)
    • Datos de aproximación de SBDB
    • Datos de bólidos
    • API de exploración
  3. API de datos de la Tierra:

    • GIBS (Global Imagery Browse Services)
    • CMR (Common Metadata Repository) - Mejorada con funciones de búsqueda avanzada
    • EPIC (Cámara de imágenes policromáticas de la Tierra)
    • FIRMS (Sistema de información sobre incendios para la gestión de recursos)

Métodos API

Cada API de la NASA se expone a través de métodos MCP estandarizados:

APOD (Imagen astronómica del día)

{ "método": "nasa/apod", "params": { "date": "2023-01-01", // Opcional: formato AAAA-MM-DD "count": 5, // Opcional: Devuelve un número especificado de imágenes aleatorias "thumbs": true // Opcional: Devuelve la URL de la miniatura del vídeo } }

Fotos de Mars Rover

{ "method": "nasa/mars-rover", "params": { "rover": "curiosidad", // Requerido: "curiosity", "opportunity", o "spirit" "sol": 1000, // Se requiere "sol" o "earth_date" "earth_date": "2023-01-01", // Formato AAAA-MM-DD "camera": "FHAZ" // Opcional: Filtro por tipo de cámara } }

Objetos cercanos a la Tierra

{ "method": "nasa/neo", "params": { "fecha_inicio": "2023-01-01", // Obligatorio: Formato AAAA-MM-DD "end_date": "2023-01-07" // Obligatorio: YYYY-MM-DD format (max 7 days from start) } }

GIBS (Global Imagery Browse Services) (Servicios de búsqueda de imágenes globales)

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

POWER (Predicción de los recursos energéticos mundiales)

{ "método": "nasa/power", "params": { "parameters": "T2M,PRECTOTCORR,WS10M", // Obligatorio: Lista separada por comas "community": "re", // Obligatorio: Identificador de la comunidad "latitude": 40.7128, // Obligatorio: Latitud "longitud": -74.0060, // Obligatorio: Longitud "start": "20220101", // Obligatorio: Fecha de inicio (AAAAMMDD) "end": "20220107" // Obligatorio: End date (YYYYMMDD) } }

Para obtener la documentación completa de todos los métodos y parámetros disponibles, consulte la referencia de la API en el directorio /docs.

Sistema de registro

El servidor incluye un completo sistema de registro:

  • Estado y progreso de la operación
  • Métricas de rendimiento
  • Seguimiento del límite de velocidad
  • Condiciones de error
  • Validación de solicitudes

Ejemplo de mensajes de registro:

[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] Parámetro no válido: 'date' debe estar en formato YYYY-MM-DD

Consideraciones de seguridad

Este servidor MCP implementa las mejores prácticas de seguridad siguiendo las especificaciones del Protocolo de Contexto de Modelo:

  • Validación y sanitización de entrada mediante esquemas Zod
  • No ejecución de código arbitrario
  • Protección contra la inyección de comandos
  • Tratamiento adecuado de errores para evitar fugas de información
  • Limitación de velocidad y controles de tiempo de espera para las solicitudes de la API
  • Ningún estado persistente que pueda ser explotado entre sesiones

Desarrollo

# Clonar el repositorio git clone https://github.com/ProgramComputer/NASA-MCP-server.git # Instalar dependencias npm install # Copiar el archivo de entorno de ejemplo y actualizarlo con sus claves API cp .env.example .env # Construir el código TypeScript npm run build # Iniciar el servidor de desarrollo npm run dev # Ejecutar pruebas npm test

Pruebas con MCP Inspector

El Servidor MCP de la NASA incluye un script para ayudarte a probar las APIs usando el Inspector MCP:

# Ejecutar el script de prueba proporcionado ./scripts/test-with-inspector.sh

Esto hará lo siguiente

  1. Construir el proyecto para asegurar que se incluyen los últimos cambios
  2. Iniciará el Inspector MCP con el servidor MCP de la NASA en ejecución
  3. Le permitirá probar interactivamente todas las APIs de la NASA

Ejemplos de peticiones de prueba

El repositorio incluye ejemplos de peticiones de prueba para cada API que puedes copiar y pegar en el Inspector MCP:

# Ver las peticiones de prueba de ejemplo cat docs/inspector-test-examples.md

Para ver ejemplos detallados, consulte el documento Ejemplos de pruebas del inspector.

Uso del cliente MCP

Este servidor sigue el protocolo oficial Model Context Protocol. A continuación se muestra un ejemplo de cómo utilizarlo con 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); // Ejemplo: Obtener la foto astronómica del día const apodResult = await client.request({ method: "nasa/apod", params: {} }); // Ejemplo: Obtener fotos de Mars Rover const marsRoverResult = await client.request({ method: "nasa/mars-rover", params: { rover: "curiosity", sol: 1000 } }); // Ejemplo: Búsqueda de objetos cercanos a la Tierra const neoResults = await client.request({ method: "nasa/neo", params: { start_date: '2023-01-01', end_date: '2023-01-07' } }); // Ejemplo: Obtener imágenes de satélite de GIBS const satelliteImage = await client.request({ method: "nasa/gibs", params: { layer: 'MODIS_Terra_CorrectedReflectance_TrueColor', date: '2023-01-01' } }); // Example: Utilizar la nueva API POWER const powerData = await client.request({ method: "nasa/power", params: { parameters: "T2M,PRECTOORR,WS10M", comunidad: "re", latitud 40.7128, longitud: -74.0060, start: "20220101", end: "20220107" } })

Contribuir a

  1. Fork el repositorio
  2. Crea tu rama de características
  3. Ejecutar pruebas: npm test
  4. Enviar un pull request

Licencia

Licencia ISC - ver archivo LICENSE para más detalles

Relacionados en Servicio en la nube - MCP Servers Seguros

ServidorResumenAcciones
Memoria compartida MCPEste ejemplo le permite implementar un servidor MCP remoto que no requiere autenticación en Cloudfla...Ver
TagoIOEl Servidor MCP de TagoIO permite a los modelos de IA interactuar directamente con tu cuenta de Tago...Ver
Servidor MCP de WazuhUn servidor basado en Rust diseñado para tender un puente entre un sistema Wazuh de Información de S...Ver
Servidor MCP remoto (Authless)Este ejemplo le permite implementar un servidor MCP remoto que no requiere autenticación en Cloudfla...Ver
UyuniModelo de servidor de protocolo de contexto para Uyuni Server API.Ver
Nube TerraformVer