Skip to main content
Glama

Версия НПМ

MCP-сервер НАСА

Сервер Model Context Protocol (MCP) для API NASA, предоставляющий стандартизированный интерфейс для взаимодействия моделей ИИ с обширным массивом источников данных NASA. Этот сервер реализует официальную спецификацию Model Context Protocol.

Большое спасибо сообществу MCP за поддержку и руководство!

Функции

  • Доступ к более чем 20 источникам данных NASA через единый, согласованный интерфейс

  • Стандартизированные форматы данных, оптимизированные для использования ИИ

  • Автоматическая проверка параметров и обработка ошибок

  • Управление ограничением скорости для ключей API NASA

  • Подробная документация и примеры

  • Поддержка различных форматов изображений NASA

  • Преобразование и форматирование данных для совместимости с LLM

  • Кроссплатформенная поддержка (Windows, macOS, Linux)

Related MCP server: MCP Server For Local

Отказ от ответственности

Этот проект не связан, не одобрен и не связан с NASA (Национальное управление по аэронавтике и исследованию космического пространства) или любой из его дочерних компаний или филиалов. Это независимая реализация, которая получает доступ к общедоступным API NASA. Все используемые данные NASA являются общедоступными и подчиняются политике использования данных NASA.

Установка

Работает с npx

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

Вы также можете передать ключ API в качестве аргумента командной строки:

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

Использование SuperGateway для событий, отправленных сервером (SSE)

Вы можете использовать SuperGateway для событий, отправленных сервером (SSE).

Разработчики NASA-MCP-server НЕ ОДОБРЯЮТ репозиторий SuperGateway. Данная информация предоставляется для тех, кто хочет реализовать функционал SSE по своему усмотрению.

Ручная установка

# Clone the repository
git clone https://github.com/ProgramComputer/NASA-MCP-server.git

# Install dependencies
cd NASA-MCP-server
npm install

# Run with your API key
NASA_API_KEY=YOUR_API_KEY npm start

Работает на курсоре

Настройка курсора 🖥️ Примечание: требуется версия курсора 0.45.6+

Чтобы настроить сервер NASA MCP в Cursor:

Создайте или отредактируйте файл mcp.json в каталоге конфигурации курсора со следующим содержимым:

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

Замените your-api-key на ваш ключ API NASA с https://api.nasa.gov/ .

После добавления конфигурации перезапустите Cursor, чтобы увидеть новые инструменты NASA. Composer Agent будет автоматически использовать NASA MCP, когда это уместно для запросов, связанных с космосом.

Переменные среды

Сервер можно настроить с помощью следующих переменных среды:

Переменная

Описание

NASA_API_KEY

Ваш ключ API NASA (получить на api.nasa.gov)

Включены API NASA

Этот сервер MCP интегрирует следующие API NASA:

  1. Открытый API НАСА (api.nasa.gov):

    • APOD (Астрономическая картинка дня)

    • EPIC (камера полихроматической съемки Земли)

    • DONKI (База данных космической погоды с уведомлениями, знаниями и информацией)

    • Insight (Марсианская метеорологическая служба)

    • Фотографии марсохода

    • NEO (веб-сервис околоземных объектов)

    • EONET (система отслеживания природных событий Обсерватории Земли)

    • TLE (двухстрочный элемент)

    • Библиотека изображений и видео NASA

    • Архив экзопланет

    • API звуков NASA (бета)

    • POWER (Прогноз мировых энергетических ресурсов)

  2. API динамики солнечной системы JPL (ssd-api.jpl.nasa.gov):

    • SBDB (База данных малых тел)

    • Данные SBDB о близком сближении

    • Данные огненного шара

    • API-интерфейс разведчика

  3. API данных о Земле :

    • GIBS (Глобальные службы просмотра изображений)

    • CMR (Общий репозиторий метаданных) — улучшенные возможности расширенного поиска

    • EPIC (камера полихроматической съемки Земли)

    • FIRMS (Информация о пожаре для системы управления ресурсами)

Методы API

Каждый API NASA предоставляется посредством стандартизированных методов MCP:

APOD (Астрономическая картинка дня)

{
  "method": "nasa/apod",
  "params": {
    "date": "2023-01-01", // Optional: YYYY-MM-DD format
    "count": 5, // Optional: Return a specified number of random images
    "thumbs": true // Optional: Return URL of video thumbnail
  }
}

Фотографии марсохода

{
  "method": "nasa/mars-rover",
  "params": {
    "rover": "curiosity", // Required: "curiosity", "opportunity", or "spirit"
    "sol": 1000, // Either sol or earth_date is required
    "earth_date": "2023-01-01", // YYYY-MM-DD format
    "camera": "FHAZ" // Optional: Filter by camera type
  }
}

Объекты, сближающиеся с Землей

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

GIBS (Глобальные службы просмотра изображений)

{
  "method": "nasa/gibs",
  "params": {
    "layer": "MODIS_Terra_CorrectedReflectance_TrueColor", // Required: Layer ID
    "date": "2023-01-01", // Required: YYYY-MM-DD format
    "format": "png" // Optional: "png" or "jpg"
  }
}

POWER (Прогноз мировых энергетических ресурсов)

{
  "method": "nasa/power",
  "params": {
    "parameters": "T2M,PRECTOTCORR,WS10M", // Required: Comma-separated list
    "community": "re", // Required: Community identifier
    "latitude": 40.7128, // Required: Latitude
    "longitude": -74.0060, // Required: Longitude
    "start": "20220101", // Required: Start date (YYYYMMDD)
    "end": "20220107" // Required: End date (YYYYMMDD)
  }
}

Полную документацию по всем доступным методам и параметрам см. в справочнике API в каталоге /docs .

Система регистрации

Сервер включает в себя комплексное ведение журнала:

  • Статус и ход операции

  • Показатели производительности

  • Отслеживание лимита скорости

  • Ошибочные состояния

  • Запросить проверку

Примеры сообщений журнала:

[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

Соображения безопасности

Этот сервер MCP реализует лучшие практики безопасности в соответствии со спецификациями Model Context Protocol:

  • Проверка и очистка входных данных с использованием схем Zod

  • Не допускается выполнение произвольного кода.

  • Защита от инъекции команд

  • Правильная обработка ошибок для предотвращения утечки информации

  • Ограничение скорости и контроль тайм-аута для запросов API

  • Нет постоянного состояния, которое можно было бы использовать между сеансами

Разработка

# Clone the repository
git clone https://github.com/ProgramComputer/NASA-MCP-server.git

# Install dependencies
npm install

# Copy the example environment file and update with your API keys
cp .env.example .env

# Build the TypeScript code
npm run build

# Start the development server
npm run dev

# Run tests
npm test

Тестирование с помощью MCP Inspector

В состав сервера NASA MCP входит скрипт, который поможет вам протестировать API с помощью MCP Inspector:

# Run the provided test script
./scripts/test-with-inspector.sh

Это позволит:

  1. Создайте проект, чтобы убедиться, что в него включены последние изменения.

  2. Запустите MCP Inspector с запущенным сервером NASA MCP

  3. Позволяет интерактивно тестировать все API NASA.

Примеры тестовых запросов

Репозиторий содержит примеры тестовых запросов для каждого API, которые можно скопировать и вставить в MCP Inspector:

# View the example test requests
cat docs/inspector-test-examples.md

Подробные примеры см. в документе «Примеры тестов инспектора» .

Использование клиента MCP

Этот сервер следует официальному протоколу Model Context Protocol. Вот пример того, как использовать его с MCP SDK:

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);

// Example: Get today's Astronomy Picture of the Day
const apodResult = await client.request({
  method: "nasa/apod", 
  params: {}
});

// Example: Get Mars Rover photos
const marsRoverResult = await client.request({
  method: "nasa/mars-rover",
  params: { rover: "curiosity", sol: 1000 }
});

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

// Example: Get satellite imagery from GIBS
const satelliteImage = await client.request({
  method: "nasa/gibs",
  params: {
    layer: 'MODIS_Terra_CorrectedReflectance_TrueColor',
    date: '2023-01-01'
  }
});

// Example: Use the new POWER API
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"
  }
});

Внося вклад

  1. Форк репозитория

  2. Создайте свою ветку функций

  3. Запуск тестов: npm test

  4. Отправить запрос на извлечение

Лицензия

Лицензия ISC — подробности см. в файле ЛИЦЕНЗИЯ

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ProgramComputer/NASA-MCP-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server