{"id":"4592b485-4e16-4e5f-9e63-6e48d0fd75cb","slug":"skyfly-mcp","kind":"mcp","name":"skyfly-mcp","summary":"✈️ MCP Server combining real-time flight data (OpenSky) with FAA aircraft database for AI-powered aviation queries","owner":"vog01r","repoUrl":"https://github.com/vog01r/skyfly-mcp","license":"MIT","licenseTier":"permissive","trust":"community","stars":1,"match":null,"fewStars":true,"format":"mcp","createdAt":"2025-12-31T03:40:59.000Z","addedAt":"2026-10-21T16:34:56.260Z","logoUrl":"https://avatars.githubusercontent.com/u/56864036?u=400462073c22b47c0e855a7a6da4f79af1ca2738&v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["databases","cloud-infra","data-analytics"],"tags":[],"runtime":"binary","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-23T07:04:10.573Z","sample":false,"url":"https://conduits.dev/tools/skyfly-mcp","language":"Python","transports":["stdio"],"install":{},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"# ✈️ Skyfly MCP Server\n\n[![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)\n[![MCP Protocol](https://img.shields.io/badge/MCP-Protocol-green.svg)](https://modelcontextprotocol.io/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![OpenSky Network](https://img.shields.io/badge/Data-OpenSky%20Network-orange.svg)](https://opensky-network.org/)\n\n> **Un serveur MCP (Model Context Protocol) qui combine données de vol en temps réel et référentiel FAA pour créer des expériences IA riches en contexte aéronautique.**\n\n🌐 **Demo live:** [skyfly.mcp.hamon.link](https://skyfly.mcp.hamon.link)\n\n---\n\n## 🎯 Qu'est-ce que c'est ?\n\n**Skyfly MCP** est un serveur qui permet à des LLMs comme **Claude** ou **ChatGPT** d'accéder à :\n\n1. **📡 Données live** (via OpenSky Network)\n   - Positions des avions en temps réel\n   - Trajectoires et historiques de vol\n   - Arrivées/départs par aéroport\n\n2. **🗄️ Référentiel FAA** (base SQL locale)\n   - 93,000+ modèles d'aéronefs\n   - 306,000+ avions immatriculés US\n   - 4,700+ moteurs référencés\n\n**Résultat :** Des requêtes intelligentes qui combinent position live + specs techniques !\n\n---\n\n## 🚀 Fonctionnalités\n\n### 19 Outils MCP disponibles\n\n| Catégorie | Outils | Description |\n|-----------|--------|-------------|\n| **Live** | `get_aircraft_states` | Positions actuelles des aéronefs |\n| **Live** | `get_aircraft_in_region` | Aéronefs par zone (France, Europe...) |\n| **Live** | `get_arrivals_by_airport` | Arrivées à un aéroport |\n| **Live** | `get_departures_by_airport` | Départs d'un aéroport |\n| **Live** | `get_track_by_aircraft` | Trajectoire d'un aéronef |\n| **SQL** | `db_lookup_by_mode_s` | Enrichit un icao24 avec specs |\n| **SQL** | `db_search_aircraft` | Recherche dans le registre FAA |\n| **SQL** | `db_search_models` | Recherche modèles (Boeing, Cessna...) |\n| **SQL** | `db_enrich_live_aircraft` | Enrichit une liste d'icao24 |\n| **SQL** | `db_sql_query` | Requête SQL personnalisée |\n\n---\n\n## 📦 Installation\n\n### Prérequis\n\n- Python 3.10+\n- Certificat SSL (Let's Encrypt recommandé)\n\n### Installation rapide\n\n```bash\n# Cloner le repo\ngit clone https://github.com/vog01r/skyfly-mcp.git\ncd skyfly-mcp\n\n# Créer l'environnement virtuel\npython3 -m venv venv\nsource venv/bin/activate\n\n# Installer les dépendances\npip install -r requirements.txt\n\n# Télécharger les données FAA (optionnel mais recommandé)\n# Depuis: https://www.faa.gov/licenses_certificates/aircraft_certification/aircraft_registry/releasable_aircraft_download\nmkdir ReleasableAircraft\n# Placer ACFTREF.txt, ENGINE.txt, MASTER.txt dans ce dossier\n\n# Lancer l'ingestion\npython -c \"\nfrom aircraftdb.database import get_database\nfrom aircraftdb.ingest import ingest_directory\nfrom pathlib import Path\ndb = get_database()\ningest_directory(Path('ReleasableAircraft'), db)\n\"\n\n# Démarrer le serveur\n./start.sh\n```\n\n---\n\n## 🔗 Configuration MCP\n\n### Pour Claude Desktop\n\nAjoutez dans votre configuration MCP :\n\n```json\n{\n  \"mcpServers\": {\n    \"skyfly\": {\n      \"url\": \"https://skyfly.mcp.hamon.link/sse\"\n    }\n  }\n}\n```\n\n### Auto-hébergé\n\n```json\n{\n  \"mcpServers\": {\n    \"skyfly\": {\n      \"url\": \"https://your-domain.com/sse\"\n    }\n  }\n}\n```\n\n---\n\n## 💡 Exemples de requêtes\n\n### Requête simple\n> *\"Montre-moi les avions au-dessus de la France\"*\n\n### Requête enrichie\n> *\"Pour les 5 avions au-dessus de Paris, donne-moi le propriétaire, le type d'appareil et le nombre de moteurs\"*\n\n### Requête analytique\n> *\"Combien de Boeing 737 sont dans le registre FAA ? Quels sont les 5 états avec le plus d'immatriculations ?\"*\n\n### Requête combinée\n> *\"Parmi les hélicoptères actuellement en vol aux USA, quel est le modèle le plus fréquent ?\"*\n\n---\n\n## 🏗️ Architecture\n\n```\nskyfly-mcp/\n├── http_server.py          # Serveur MCP unifié (SSE + REST)\n├── opensky_client.py       # Client async OpenSky API\n├── server.py               # Serveur MCP stdio (usage local)\n├── aircraftdb/\n│   ├── database.py         # SQLite avec schéma + CRUD\n│   ├── ingest.py           # Ingestion fichiers FAA\n│   └── tools.py            # Outils MCP AircraftDB\n├── requirements.txt\n├── setup_ssl.sh            # Configuration Let's Encrypt\n├── start.sh                # Script de démarrage\n└── opensky-mcp.service     # Service systemd\n```\n\n---\n\n## 📊 Données FAA\n\nLe référentiel FAA contient :\n\n| Table | Contenu | Source |\n|-------|---------|--------|\n| `aircraft_models` | 93K+ modèles | ACFTREF.txt |\n| `aircraft_registry` | 306K+ aéronefs US | MASTER.txt |\n| `engines` | 4.7K+ moteurs | ENGINE.txt |\n\n**Téléchargement :** [FAA Releasable Aircraft Database](https://www.faa.gov/licenses_certificates/aircraft_certification/aircraft_registry/releasable_aircraft_download)\n\n---\n\n## 🔧 Déploiement Production\n\n### Avec Apache (reverse proxy)\n\n```apache\n<VirtualHost *:443>\n    ServerName skyfly.yourdomain.com\n    \n    SSLEngine on\n    SSLCertificateFile /etc/letsencrypt/live/skyfly.yourdomain.com/fullchain.pem\n    SSLCertificateKeyFile /etc/letsencrypt/live/skyfly.yourdomain.com/privkey.pem\n    \n    ProxyPreserveHost On\n    ProxyPass / http://127.0.0.1:8443/\n    ProxyPassReverse / http://127.0.0.1:8443/\n</VirtualHost>\n```\n\n### Service systemd\n\n```bash\nsudo cp opensky-mcp.service /etc/systemd/system/\nsudo systemctl enable opensky-mcp\nsudo systemctl start opensky-mcp\n```\n\n---\n\n## 🤝 Contribution\n\nLes contributions sont les bienvenues ! \n\n1. Fork le projet\n2. Créez une branche (`git checkout -b feature/amazing-feature`)\n3. Committez (`git commit -m 'Add amazing feature'`)\n4. Push (`git push origin feature/amazing-feature`)\n5. Ouvrez une Pull Request\n\n---\n\n## 📜 Licence\n\nMIT License - voir [LICENSE](LICENSE)\n\n---\n\n## 🙏 Crédits\n\n- **[OpenSky Network](https://opensky-network.org/)** - Données de vol en temps réel\n- **[FAA](https://www.faa.gov/)** - Registre des aéronefs US\n- **[Anthropic MCP](https://modelcontextprotocol.io/)** - Model Context Protocol\n\n---\n\n<p align=\"center\">\n  <b>Fait avec ❤️ pour la communauté IA & Aviation</b>\n</p>\n"}