Skip to main content
Glama

Satellite Tracking MCP Server

README.md5.74 kB
# Satellite Tracking MCP Server A Model Context Protocol (MCP) server that provides access to satellite tracking data using the N2YO API. ## Features This MCP server provides the following capabilities: ### Tools - **get_satellite_position**: Get real-time position of a satellite by NORAD ID - **get_satellite_tle**: Get TLE (Two-Line Element) data for a satellite by NORAD ID - **predict_visual_passes**: Predict visible passes of a satellite over a location - **predict_radio_passes**: Predict radio frequency passes of a satellite over a location - **get_satellites_above**: Get satellites currently above a specified location - **search_satellites**: Search for satellites by name or category ### Resources - **satellite://{norad_id}**: Information about a satellite by NORAD ID - **satellites://category/{category_id}**: List of satellites in a specific category - **satellites://above/{lat}/{lon}/{radius}**: List of satellites above a specified location ## Installation ### Prerequisites - Node.js 18 or higher - A N2YO API key (available from [N2YO API Services](https://www.n2yo.com/api/)) ### Setup 1. Clone this repository or download the source code 2. Install dependencies: ```bash cd satellite-tracking-server npm install ``` 3. Build the server: ```bash npm run build ``` ## Configuration The server requires a N2YO API key to function. You can provide this through the environment variable `N2YO_API_KEY`. ### MCP Settings Configuration To use this server with Claude, add it to your MCP settings configuration file: #### For Claude Desktop App (macOS) Edit `~/Library/Application Support/Claude/claude_desktop_config.json`: ```json { "mcpServers": { "satellite-tracking": { "command": "node", "args": ["/path/to/satellite-tracking-server/build/index.js"], "env": { "N2YO_API_KEY": "your-api-key-here" }, "disabled": false, "autoApprove": [] } } } ``` #### For Claude VSCode Extension Edit `~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json`: ```json { "mcpServers": { "satellite-tracking": { "command": "node", "args": ["/path/to/satellite-tracking-server/build/index.js"], "env": { "N2YO_API_KEY": "your-api-key-here" }, "disabled": false, "autoApprove": [] } } } ``` ## Usage Examples Once the server is configured and running, you can use it with Claude to access satellite tracking data: ### Get Satellite Position ``` <use_mcp_tool> <server_name>satellite-tracking</server_name> <tool_name>get_satellite_position</tool_name> <arguments> { "norad_id": 25544, "observer_lat": 40.7128, "observer_lng": -74.0060 } </arguments> </use_mcp_tool> ``` ### Get Satellite TLE Data ``` <use_mcp_tool> <server_name>satellite-tracking</server_name> <tool_name>get_satellite_tle</tool_name> <arguments> { "norad_id": 25544 } </arguments> </use_mcp_tool> ``` ### Predict Visual Passes ``` <use_mcp_tool> <server_name>satellite-tracking</server_name> <tool_name>predict_visual_passes</tool_name> <arguments> { "norad_id": 25544, "observer_lat": 40.7128, "observer_lng": -74.0060, "days": 7 } </arguments> </use_mcp_tool> ``` ### Search for Satellites ``` <use_mcp_tool> <server_name>satellite-tracking</server_name> <tool_name>search_satellites</tool_name> <arguments> { "query": "ISS" } </arguments> </use_mcp_tool> ``` ### Get Satellites Above Location ``` <use_mcp_tool> <server_name>satellite-tracking</server_name> <tool_name>get_satellites_above</tool_name> <arguments> { "observer_lat": 40.7128, "observer_lng": -74.0060, "search_radius": 45 } </arguments> </use_mcp_tool> ``` ### Access Satellite Resource ``` <access_mcp_resource> <server_name>satellite-tracking</server_name> <uri>satellite://25544</uri> </access_mcp_resource> ``` ## Satellite Categories The server supports the following satellite categories: | Category ID | Description | | ----------- | ------------ | | 0 | All | | 1 | Amateur | | 2 | CubeSat | | 3 | Education | | 4 | Engineering | | 5 | Galileo | | 6 | GLO-OPS | | 7 | GPS-OPS | | 8 | Military | | 9 | Radar | | 10 | Resource | | 11 | SARSAT | | 12 | Science | | 13 | TDRSS | | 14 | Weather | | 15 | XM/Sirius | | 16 | Iridium-NEXT | | 17 | Globalstar | | 18 | Intelsat | | 19 | SES | | 20 | Telesat | | 21 | Orbcomm | | 22 | Gorizont | | 23 | Raduga | | 24 | Molniya | | 25 | DMC | | 26 | Argos | | 27 | Planet | | 28 | Spire | | 29 | Starlink | | 30 | OneWeb | ## API Key Limitations The N2YO API has usage limits based on your subscription plan. The free tier allows: - 1,000 requests per hour - Basic functionality across all endpoints Be aware of these limits when using the server to avoid exceeding your quota. ## Troubleshooting - **API Key Errors**: Ensure your N2YO API key is valid and correctly set in the environment variables. - **Rate Limiting**: If you encounter rate limiting errors, the server will automatically retry with exponential backoff, but you may need to wait before making additional requests. - **No Data Found**: Some satellites may not have real-time tracking data available, especially older or inactive satellites. ## License This project is licensed under the ISC License.

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/Cyreslab-AI/satellitetracking-mcp-server'

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