get_satellites_above
Find satellites currently visible from your location by entering latitude and longitude coordinates. Filter results by satellite category to identify specific types overhead.
Instructions
Get all satellites currently above an observer location
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| observerLat | Yes | Observer latitude in degrees | |
| observerLng | Yes | Observer longitude in degrees | |
| observerAlt | No | Observer altitude in meters above sea level | |
| searchRadius | No | Search radius in degrees (max 90) | |
| categoryFilter | No | Filter results by satellite category | all |
Implementation Reference
- src/server.ts:354-392 (registration)Tool registration in getTools() method, defining the name, description, and input schema for 'get_satellites_above'{ name: "get_satellites_above", description: "Get all satellites currently above an observer location", inputSchema: { type: "object", properties: { observerLat: { type: "number", description: "Observer latitude in degrees", minimum: -90, maximum: 90, }, observerLng: { type: "number", description: "Observer longitude in degrees", minimum: -180, maximum: 180, }, observerAlt: { type: "number", description: "Observer altitude in meters above sea level", default: 0, }, searchRadius: { type: "number", description: "Search radius in degrees (max 90)", default: 70, maximum: 90, }, categoryFilter: { type: "string", enum: ["all", "military", "weather", "gps", "amateur"], default: "all", description: "Filter results by satellite category", }, }, required: ["observerLat", "observerLng"], }, },
- src/server.ts:965-993 (handler)Primary handler function for executing the 'get_satellites_above' tool: validates arguments, maps category filter, calls N2YO client, and returns formatted JSON response.private async getSatellitesAbove(args: any): Promise<CallToolResult> { SatelliteValidator.validateAboveRequest(args); const categoryId = args.categoryFilter && args.categoryFilter !== "all" ? this.n2yoClient.getCategoryId(args.categoryFilter) : 0; const satellites = await this.n2yoClient.getSatellitesAbove( args.observerLat, args.observerLng, args.observerAlt || 0, args.searchRadius || 70, categoryId ); return { content: [ { type: "text", text: JSON.stringify( { satellites, count: satellites.length }, null, 2 ), }, ], }; }
- src/n2yo-client.ts:380-396 (helper)Core helper method in N2YOClient that performs the actual API request to retrieve satellites above the specified location and returns raw data.async getSatellitesAbove( observerLat: number, observerLng: number, observerAlt: number = 0, searchRadius: number = 70, categoryFilter: number = 0 ): Promise<SatelliteAbove[]> { const response = await this.makeRequest(`/above/${observerLat}/${observerLng}/${observerAlt}/${searchRadius}/${categoryFilter}`, { observer_lat: observerLat, observer_lng: observerLng, observer_alt: observerAlt, search_radius: searchRadius, category_filter: categoryFilter, }); return response.above || []; }
- src/n2yo-client.ts:36-44 (schema)TypeScript interface defining the structure of satellite data returned by getSatellitesAbove.export interface SatelliteAbove { satid: number; satname: string; intDesignator: string; launchDate: string; satlat: number; satlng: number; satalt: number; }