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
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return | |
| date_min | No | Start date (YYYY-MM-DD) | |
| date_max | No | End date (YYYY-MM-DD) |
Implementation Reference
- src/handlers/jpl/fireball.ts:32-67 (handler)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'}` }] }; } }
- src/handlers/jpl/fireball.ts:6-24 (schema)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)" } } } },
- src/handlers/jpl/fireball.ts:3-23 (helper)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)