search_satellites_by_name
Find satellites by entering their name or international designator to access tracking data and orbital information.
Instructions
Search for satellites by name or international designator
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search term (satellite name or international designator) |
Implementation Reference
- src/server.ts:1027-1055 (handler)The primary handler function for the 'search_satellites_by_name' tool. It validates the query input, delegates to the N2YOClient for search results, and returns a formatted CallToolResult.private async searchSatellitesByName(query: string): Promise<CallToolResult> { if (!query || query.trim().length === 0) { return { content: [ { type: "text", text: "Search query cannot be empty", }, ], isError: true, }; } const results = this.n2yoClient.searchSatellitesByName(query.trim()); return { content: [ { type: "text", text: JSON.stringify({ query: query.trim(), satellites: results, count: results.length, note: "Use the NORAD ID (satid) to get more detailed information about specific satellites" }, null, 2), }, ], }; }
- src/server.ts:262-275 (registration)Registration of the tool in the getTools() method, including name, description, and input schema definition.{ name: "search_satellites_by_name", description: "Search for satellites by name or international designator", inputSchema: { type: "object", properties: { query: { type: "string", description: "Search term (satellite name or international designator)", }, }, required: ["query"], }, },
- src/server.ts:265-275 (schema)Input schema defining the expected arguments for the tool (query string).inputSchema: { type: "object", properties: { query: { type: "string", description: "Search term (satellite name or international designator)", }, }, required: ["query"], }, },
- src/n2yo-client.ts:495-512 (helper)Helper method in N2YOClient class that implements the satellite search logic using a mock database filtered by name or designator.searchSatellitesByName(query: string): SatelliteSearchResult[] { // Mock search - in real implementation this would query N2YO or use a satellite database const mockSatellites = [ { satid: 25544, satname: "ISS (ZARYA)", intDesignator: "1998-067A", launchDate: "1998-11-20" }, { satid: 20580, satname: "HST", intDesignator: "1990-037B", launchDate: "1990-04-24" }, { satid: 43013, satname: "STARLINK-1007", intDesignator: "2017-073A", launchDate: "2017-12-23" }, { satid: 43014, satname: "STARLINK-1002", intDesignator: "2017-073B", launchDate: "2017-12-23" }, { satid: 28654, satname: "NOAA 18", intDesignator: "2005-018A", launchDate: "2005-05-20" }, { satid: 32786, satname: "AQUA", intDesignator: "2002-022A", launchDate: "2002-05-04" }, { satid: 41866, satname: "GEOSAT FOLLOW-ON 2", intDesignator: "2016-064A", launchDate: "2016-08-19" }, ]; const searchTerm = query.toLowerCase(); return mockSatellites.filter(sat => sat.satname.toLowerCase().includes(searchTerm) || sat.intDesignator.toLowerCase().includes(searchTerm) ); }