Skip to main content
Glama
MaxwellCalkin

N2YO Satellite Tracker MCP Server

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
NameRequiredDescriptionDefault
queryYesSearch term (satellite name or international designator)

Implementation Reference

  • 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"], }, },
  • 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"], }, },
  • 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) ); }

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/MaxwellCalkin/N2YO-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server