Satellite MCP Server

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

{{ message }}

BuildASpacePro / Orbit-MCP Public

  • Notifications
  • Fork0
  • Star 0

0 stars0 forksBranches Tags Activity

Star

Notifications

dev1

BranchesTags

Go to file

Code

NameNameLast commit messageLast commit date
6 Commits
docsdocs
srcsrc
=0.9.0=0.9.0
DockerfileDockerfile
MakefileMakefile
README.mdREADME.md
de421.bspde421.bsp
docker-compose.ymldocker-compose.yml
requirements.txtrequirements.txt
View all files

Repository files navigation

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 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."

{ "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]

About

No description, website, or topics provided.

Readme

Activity

0 stars

0 watching

0 forks

Report repository

Releases

No releases published

Packages

No packages published

Languages

  • Python 97.5%
  • Makefile 1.3%
  • Dockerfile 1.2%

Related Servers