Satellite MCP Server
Realiza cálculos de mecânica orbital de satélites usando linguagem natural, com um banco de dados integrado de cidades mundiais para consulta de localização.
Documentação
Satellite MCP Server
Um servidor abrangente de Model Context Protocol (MCP) para cálculos de mecânica orbital de satélites com capacidades de processamento de linguagem natural.
✨ Principais Recursos
- 🛰️ Cálculo de Janelas de Acesso de Satélites - Calcule quando satélites estão visíveis a partir de locais terrestres
- 🌍 Banco de Dados de Cidades Mundiais - Banco de dados integrado com mais de 200 cidades em todo o mundo para fácil consulta de locais
- 🗣️ Processamento de Linguagem Natural - Analise parâmetros orbitais a partir de textos como "satélite a 700km em SSO sobre Londres"
- 📡 Geração de TLE - Gere Elementos de Duas Linhas a partir de descrições orbitais
- 🌅 Análise de Iluminação - Condições de iluminação terrestre e de satélite (crepúsculo civil, náutico e astronômico)
- 📊 Processamento em Lote - Processe múltiplos satélites e locais a partir de dados CSV
- 🚀 6 Tipos de Órbita - Suporte para órbitas LEO, MEO, GEO, SSO, Molniya e Polar
🚀 Início Rápido
# Clone the repository
git clone <repository-url>
cd mcp-orbit
# Build the Docker image
make docker-build
# Run the MCP server
make docker-run
Instalação Local
# Install dependencies
make install
# Run the MCP server
make run
🔌 Conectando ao Servidor MCP
O servidor se comunica via JSON-RPC 2.0 sobre stdio. Aqui estão os métodos de conexão:
Integração com Claude Desktop
Adicione ao seu arquivo de configuração MCP do Claude Desktop:
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"]
}
}
}
Conexão Direta com Docker
# 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
Conexão Local com Python
# If running locally without Docker
python -m src.mcp_server
💬 Exemplos de Uso em LLMs
Exemplo 1: Previsão Básica de Passagem de Satélite
Prompt do Usuário:
"Quando a ISS estará visível de Londres amanhã?"
Chamada de Ferramenta MCP:
{
"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"
}
}
Resposta: A ISS estará visível de Londres 4 vezes amanhã, com a melhor passagem às 19:45 UTC atingindo 78° de elevação no céu sudoeste durante o crepúsculo civil.
Exemplo 2: Design Orbital em Linguagem Natural
Prompt do Usuário:
"Crie um satélite heliossíncrono a 700km de altitude e mostre quando ele passa sobre Tóquio."
Chamadas de Ferramenta MCP:
- Analisar elementos orbitais:
{
"tool": "parse_orbital_elements",
"arguments": {
"orbital_text": "sun-synchronous satellite at 700km altitude"
}
}
- Calcular janelas de acesso:
{
"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"
}
}
Resposta: Satélite SSO gerado (98,16° de inclinação, período de 98,6 min) com 14 passagens sobre Tóquio em 24 horas, incluindo 6 passagens diurnas e 8 durante várias condições de crepúsculo.
Exemplo 3: Análise de Satélites em Lote
Prompt do Usuário:
"Tenho um arquivo CSV com estações terrestres e quero analisar a cobertura para múltiplos satélites."
Chamada de Ferramenta MCP:
{
"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"
}
}
🛠️ Ferramentas Disponíveis
calculate_access_windows- Cálculos básicos de visibilidade de satélitescalculate_access_windows_by_city- Passagens de satélites baseadas em cidadescalculate_bulk_access_windows- Análise multi-satélite/localparse_orbital_elements- Análise de parâmetros orbitais em linguagem naturalcalculate_access_windows_from_orbital_elements- Janelas de acesso a partir de texto orbitalcalculate_access_windows_from_orbital_elements_by_city- Elementos orbitais combinados + consulta de cidadessearch_cities- Encontre cidades no banco de dados mundialvalidate_tle- Valide dados de Elementos de Duas Linhasget_orbit_types- Definições de tipos de órbita disponíveis
🗂️ Estrutura do Projeto
/
├── 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
📚 Dependências
- Skyfield - Cálculos de posição de satélites
- NumPy - Computações numéricas
- MCP - Implementação do Model Context Protocol
- Python 3.8+ - Ambiente de execução
🤝 Contribuição
Este é um servidor MCP especializado em mecânica orbital de satélites. Para problemas ou melhorias, consulte a documentação no diretório docs/.
📄 Licença
[Adicione suas informações de licença aqui]