Skip to main content
Glama
MaxwellCalkin

N2YO Satellite Tracker MCP Server

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
NameRequiredDescriptionDefault
categoryYesSatellite category to retrieve
countryNoFilter by country or organization (e.g., 'usa', 'china', 'russia')

Implementation Reference

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

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