get_satellites_by_category
Retrieve satellites filtered by specific categories like military, weather, GPS, or Starlink to track and analyze orbital data.
Instructions
Get satellites by predefined categories (military, weather, GPS, etc.)
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| category | Yes | Satellite category to retrieve | |
| country | No | Filter by country or organization (e.g., 'usa', 'china', 'russia') |
Implementation Reference
- src/server.ts:893-920 (handler)The main handler function for the 'get_satellites_by_category' tool. It validates inputs, retrieves category information from N2YO client, and returns a JSON response with category details and a link to the N2YO website for browsing satellites.private async getSatellitesByCategory( category: string, country?: string ): Promise<CallToolResult> { SatelliteValidator.validateCategory(category); SatelliteValidator.validateCountry(country); const categories = this.n2yoClient.getAvailableCategories(); const categoryInfo = categories.find((cat) => cat.name === category); const result = { category: categoryInfo, country_filter: country, note: "Use the N2YO website to browse satellites by category and country, then use get_satellite_tle with specific NORAD IDs", website_url: `https://www.n2yo.com/satellites/?c=${ categoryInfo?.id || 0 }`, }; return { content: [ { type: "text", text: JSON.stringify(result, null, 2), }, ], }; }
- src/server.ts:104-135 (registration)Tool registration in the getTools() method, defining the tool name, description, and input schema with category enum and optional country filter.{ name: "get_satellites_by_category", description: "Get satellites by predefined categories (military, weather, GPS, etc.)", inputSchema: { type: "object", properties: { category: { type: "string", enum: [ "military", "weather", "gps", "navigation", "amateur", "geostationary", "noaa", "starlink", "space-stations", "earth-resources", ], description: "Satellite category to retrieve", }, country: { type: "string", description: "Filter by country or organization (e.g., 'usa', 'china', 'russia')", }, }, required: ["category"], }, },
- src/server.ts:108-134 (schema)Input schema definition for the tool, specifying object type with required 'category' enum and optional 'country' string.inputSchema: { type: "object", properties: { category: { type: "string", enum: [ "military", "weather", "gps", "navigation", "amateur", "geostationary", "noaa", "starlink", "space-stations", "earth-resources", ], description: "Satellite category to retrieve", }, country: { type: "string", description: "Filter by country or organization (e.g., 'usa', 'china', 'russia')", }, }, required: ["category"], },
- src/server.ts:441-445 (registration)Dispatcher case in callTool() method that routes the tool call to the handler function.case "get_satellites_by_category": return await this.getSatellitesByCategory( args.category, args.country );