Labsco
BuildASpacePro logo

Satellite MCP Server

from BuildASpacePro

Performs satellite orbital mechanics calculations using natural language, with a built-in world cities database for location lookup.

πŸ”₯πŸ”₯πŸ”₯βœ“ VerifiedFreeAdvanced setup

Satellite MCP Server

A comprehensive Model Context Protocol (MCP) server for satellite orbital mechanics calculations with natural language processing capabilities.

✨ Key Features

  • πŸ›°οΈ Satellite Access Window Calculations - Calculate when satellites are visible from ground locations

  • 🌍 World Cities Database - Built-in database of 200+ cities worldwide for easy location lookup

  • πŸ—£οΈ Natural Language Processing - Parse orbital parameters from text like "satellite at 700km in SSO over London"

  • πŸ“‘ TLE Generation - Generate Two-Line Elements from orbital descriptions

  • πŸŒ… Lighting Analysis - Ground and satellite lighting conditions (civil, nautical, astronomical twilight)

  • πŸ“Š Bulk Processing - Process multiple satellites and locations from CSV data

  • πŸš€ 6 Orbit Types - Support for LEO, MEO, GEO, SSO, Molniya, and Polar orbits

Clone the repository

git clone cd mcp-orbit

Build the Docker image

make docker-build

Run the MCP server

make docker-run

Local Installation

Run the MCP server

make run

πŸ”Œ Connecting to the MCP Server

The server communicates via JSON-RPC 2.0 over stdio. Here are the connection methods:

Claude Desktop Integration

Add to your Claude Desktop MCP configuration file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%/Claude/claude_desktop_config.json

{ "mcpServers": { "satellite-mcp-server": { "command": "docker", "args": ["run", "--rm", "-i", "satellite-mcp-server:latest"] } } }

Direct Docker Connection

Interactive mode

docker run -it --rm satellite-mcp-server:latest

Pipe commands

echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | docker run --rm -i satellite-mcp-server:latest

Local Python Connection

πŸ› οΈ Available Tools

  • calculate_access_windows - Basic satellite visibility calculations

  • calculate_access_windows_by_city - City-based satellite passes

  • calculate_bulk_access_windows - Multi-satellite/location analysis

  • parse_orbital_elements - Natural language orbital parameter parsing

  • calculate_access_windows_from_orbital_elements - Access windows from orbital text

  • calculate_access_windows_from_orbital_elements_by_city - Combined orbital elements + city lookup

  • search_cities - Find cities in the world database

  • validate_tle - Validate Two-Line Element data

  • get_orbit_types - Available orbit type definitions

πŸ—‚οΈ Project Structure

/
β”œβ”€β”€ src/
β”‚ β”œβ”€β”€ mcp_server.py # MCP server implementation
β”‚ β”œβ”€β”€ satellite_calc.py # Core orbital mechanics calculations
β”‚ └── world_cities.py # World cities database
β”œβ”€β”€ docs/ # Documentation
β”œβ”€β”€ Dockerfile # Container definition
β”œβ”€β”€ docker-compose.yml # Multi-container setup
└── Makefile # Build automation

πŸ“š Dependencies

  • Skyfield - Satellite position calculations

  • NumPy - Numerical computations

  • MCP - Model Context Protocol implementation

  • Python 3.8+ - Runtime environment

🀝 Contributing

This is a specialized MCP server for satellite orbital mechanics. For issues or enhancements, please check the documentation in the docs/ directory.

πŸ“„ License

[Add your license information here]