Satellite MCP Server

Satellite MCP Server

Enables satellite orbital mechanics calculations including visibility predictions, access window analysis, and TLE generation from natural language descriptions. Supports 200+ world cities and multiple orbit types (LEO, MEO, GEO, SSO, Molniya, Polar).

Category
Visit Server

README

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

šŸš€ Quick Start

Using Docker (Recommended)

# Clone the repository
git clone <repository-url>
cd mcp-orbit

# Build the Docker image
make docker-build

# Run the MCP server
make docker-run

Local Installation

# Install dependencies
make install

# 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

# If running locally without Docker
python -m src.mcp_server

šŸ’¬ Example Usage in LLMs

Example 1: Basic Satellite Pass Prediction

User Prompt:

"When will the ISS be visible from London tomorrow?"

MCP Tool Call:

{
  "tool": "calculate_access_windows_by_city",
  "arguments": {
    "city_name": "London",
    "tle_line1": "1 25544U 98067A   24001.50000000  .00001234  00000-0  12345-4 0  9999",
    "tle_line2": "2 25544  51.6400 123.4567 0001234  12.3456 347.6543 15.49011999123456",
    "start_time": "2024-01-02T00:00:00Z",
    "end_time": "2024-01-03T00:00:00Z"
  }
}

Response: The ISS will be visible from London 4 times tomorrow, with the best pass at 19:45 UTC reaching 78° elevation in the southwest sky during civil twilight.

Example 2: Natural Language Orbital Design

User Prompt:

"Create a sun-synchronous satellite at 700km altitude and show me when it passes over Tokyo."

MCP Tool Calls:

  1. Parse orbital elements:
{
  "tool": "parse_orbital_elements",
  "arguments": {
    "orbital_text": "sun-synchronous satellite at 700km altitude"
  }
}
  1. Calculate access windows:
{
  "tool": "calculate_access_windows_from_orbital_elements_by_city",
  "arguments": {
    "orbital_text": "sun-synchronous satellite at 700km altitude",
    "city_name": "Tokyo",
    "start_time": "2024-01-01T00:00:00Z",
    "end_time": "2024-01-02T00:00:00Z"
  }
}

Response: Generated SSO satellite (98.16° inclination, 98.6 min period) with 14 passes over Tokyo in 24 hours, including 6 daylight passes and 8 during various twilight conditions.

Example 3: Bulk Satellite Analysis

User Prompt:

"I have a CSV file with ground stations and want to analyze coverage for multiple satellites."

MCP Tool Call:

{
  "tool": "calculate_bulk_access_windows",
  "arguments": {
    "locations_csv": "name,latitude,longitude,altitude\nMIT,42.3601,-71.0589,43\nCaltechm,34.1377,-118.1253,237",
    "satellites_csv": "name,tle_line1,tle_line2\nISS,1 25544U...,2 25544...\nHubble,1 20580U...,2 20580...",
    "start_time": "2024-01-01T00:00:00Z",
    "end_time": "2024-01-02T00:00:00Z"
  }
}

šŸ› ļø Available Tools

  1. calculate_access_windows - Basic satellite visibility calculations
  2. calculate_access_windows_by_city - City-based satellite passes
  3. calculate_bulk_access_windows - Multi-satellite/location analysis
  4. parse_orbital_elements - Natural language orbital parameter parsing
  5. calculate_access_windows_from_orbital_elements - Access windows from orbital text
  6. calculate_access_windows_from_orbital_elements_by_city - Combined orbital elements + city lookup
  7. search_cities - Find cities in the world database
  8. validate_tle - Validate Two-Line Element data
  9. 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]

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured