Skip to main content
Glama

jpl_fireball

Retrieve NASA JPL fireball data to track atmospheric impact events by date range, enabling analysis of meteoroid entries and energy releases.

Instructions

Fireball data - atmospheric impact events

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return
date_minNoStart date (YYYY-MM-DD)
date_maxNoEnd date (YYYY-MM-DD)

Implementation Reference

  • Core handler function that executes the jpl_fireball tool logic: transforms params, calls JPL Fireball API, formats response.
    export async function jplFireballHandler(params: FireballParams) {
      try {
        // Construct the Fireball API URL
        const url = 'https://ssd-api.jpl.nasa.gov/fireball.api';
        
        // Transform parameter names from underscore to hyphenated format
        const transformedParams = transformParamsToHyphenated(params);
        
        // Make the request to the Fireball API
        const response = await axios.get(url, { params: transformedParams });
        
        return {
          content: [
            {
              type: "text",
              text: `Retrieved ${response.data.count || 0} fireball events.`
            },
            {
              type: "text",
              text: JSON.stringify(response.data, null, 2)
            }
          ],
          isError: false
        };
      } catch (error: any) {
        console.error('Error in JPL Fireball handler:', error);
        
        return {
          isError: true,
          content: [{
            type: "text",
            text: `Error: ${error.message || 'An unexpected error occurred'}`
          }]
        };
      }
    } 
  • Zod schema for validating input parameters to the jpl_fireball tool.
    export const fireballParamsSchema = z.object({
      date_min: z.string().optional(),
      date_max: z.string().optional(),
      energy_min: z.number().optional(),
      energy_max: z.number().optional(),
      impact_e_min: z.number().optional(),
      impact_e_max: z.number().optional(),
      vel_min: z.number().optional(),
      vel_max: z.number().optional(),
      alt_min: z.number().optional(),
      alt_max: z.number().optional(),
      req_loc: z.boolean().optional().default(false),
      req_alt: z.boolean().optional().default(false),
      req_vel: z.boolean().optional().default(false),
      req_vel_comp: z.boolean().optional().default(false),
      req_impact_e: z.boolean().optional().default(false),
      req_energy: z.boolean().optional().default(false),
      limit: z.number().optional().default(50)
    });
  • src/index.ts:508-511 (registration)
    Tool registration in tools/manifest response, declaring the jpl_fireball tool.
      name: "jpl_fireball",
      id: "jpl/fireball",
      description: "Fireball atmospheric impact data reported by US Government sensors"
    },
  • src/index.ts:1050-1069 (registration)
    Detailed tool registration including input schema in tools/list response.
      name: "jpl_fireball",
      description: "Fireball data - atmospheric impact events",
      inputSchema: {
        type: "object",
        properties: {
          limit: {
            type: "number",
            description: "Maximum number of results to return"
          },
          "date_min": {
            type: "string", 
            description: "Start date (YYYY-MM-DD)"
          },
          "date_max": {
            type: "string",
            description: "End date (YYYY-MM-DD)"
          }
        }
      }
    },
  • Import of helper utility used to transform underscore params to hyphenated for API compatibility.
    import { transformParamsToHyphenated } from '../../utils/param-transformer';
    
    // Schema for validating JPL Fireball request parameters
    export const fireballParamsSchema = z.object({
      date_min: z.string().optional(),
      date_max: z.string().optional(),
      energy_min: z.number().optional(),
      energy_max: z.number().optional(),
      impact_e_min: z.number().optional(),
      impact_e_max: z.number().optional(),
      vel_min: z.number().optional(),
      vel_max: z.number().optional(),
      alt_min: z.number().optional(),
      alt_max: z.number().optional(),
      req_loc: z.boolean().optional().default(false),
      req_alt: z.boolean().optional().default(false),
      req_vel: z.boolean().optional().default(false),
      req_vel_comp: z.boolean().optional().default(false),
      req_impact_e: z.boolean().optional().default(false),
      req_energy: z.boolean().optional().default(false),
      limit: z.number().optional().default(50)

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