Skip to main content

Serveur MCP pour les informations de trafic en temps réel de Naolib (Nantes)

Project description

PyPI version Build Status GitHub release (latest by date)

Naolib MCP

Un serveur MCP pour obtenir les informations de trafic en temps réel de Naolib (Nantes Métropole) via le protocole SIRI.

Fonctionnalités

  • Recherche d'arrêts : Trouvez l'identifiant technique d'un arrêt à partir de son nom (avec recherche floue).
  • Suivi en temps réel : Obtenez les horaires de passage (arrivées/départs) pour un arrêt spécifique.
  • Vérification du service : Testez la disponibilité de l'API SIRI (raw XML et SOAP).
  • Synchronisation Dynamique : Mise à jour automatique du catalogue des arrêts via les données NeTEx de Nantes Métropole.
  • Cache Intelligent : Optimisation des appels API avec un cache interne pour réduire la latence.
  • Rate Limiter : Respecte automatiquement la limite de 1 requête / 30 secondes sur l'accès libre.

Prérequis

  • Python 3.10+
  • Une clé API Naolib pour le suivi en temps réel (optionnel mais recommandé). Requestez-la sur le portail Naolib/Okina.

Installation via PyPI

pip install naolib-mcp

Configuration

Variables d'environnement :

  • NAOLIB_API_KEY — Clé API pour l'accès authentifié (requis pour get_stop_monitoring). Sans clé, seuls check_api_status et check_api_status_soap sont disponibles.
  • NAOLIB_BASE_URL — URL de base de l'API (par défaut : https://api.okina.fr/gateway/sem/realtime). Pour tester contre staging : https://api.staging.okina.fr/gateway/sem/realtime.
  • NAOLIB_DATASET_ID — Identifiant du dataset Naolib (par défaut : NAOLIBORG).

Intégration (claude_desktop_config.json)

Si vous avez installé le package via PyPI, utilisez la commande naolib-mcp :

{
  "mcpServers": {
    "naolib-mcp": {
      "command": "uvx",
      "args": ["naolib-mcp"],
      "env": {
        "NAOLIB_API_KEY": "votre_cle_api_ici",
        "NAOLIB_BASE_URL": "https://api.okina.fr/gateway/sem/realtime"
      }
    }
  }
}

Pour staging :

{
  "mcpServers": {
    "naolib-mcp": {
      "command": "uvx",
      "args": ["naolib-mcp"],
      "env": {
        "NAOLIB_API_KEY": "votre_cle_api_staging_ici",
        "NAOLIB_BASE_URL": "https://api.staging.okina.fr/gateway/sem/realtime"
      }
    }
  }
}

Utilisation

Démarrer le serveur manuellement :

naolib-mcp

Outils MCP disponibles

search_stop

Recherche un arrêt par nom et retourne son identifiant StopPoint.

search_stop("Babiniere")
→ 1. **Babinière** → `StopPoint:BAB`

get_stop_monitoring

Obtenez les prochains passages en temps réel pour un arrêt (authentifié).

get_stop_monitoring("StopPoint:BAB", maximum_visits=5)
→ - **Ligne 1** → Hôtel de Ville | Expected: 14:32 | Platform: A | Status: arrived

check_api_status

Vérifie la disponibilité du service SIRI via XML brut (accès libre, rate limit 30s).

check_api_status_soap

Vérifie la disponibilité du service SIRI via SOAP (accès libre, rate limit 30s).

Protocole SIRI — notes techniques

L'implémentation suit la spécification SIRI 2.0 avec les points d'accès Okina :

Format Endpoint Auth Rate limit
Raw XML /anshar/services Libre / api-key 1 req / 30s (libre)
SOAP /anshar/ws/siri Libre / api-key 1 req / 30s (libre)

Les requêtes utilisent le header HTTP datasetId: NAOLIBORG. Les structures XML respectent le format <Siri><ServiceRequest>...</ServiceRequest></Siri>.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

naolib_mcp-1.0.2.tar.gz (70.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

naolib_mcp-1.0.2-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

Details for the file naolib_mcp-1.0.2.tar.gz.

File metadata

  • Download URL: naolib_mcp-1.0.2.tar.gz
  • Upload date:
  • Size: 70.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for naolib_mcp-1.0.2.tar.gz
Algorithm Hash digest
SHA256 f68267f21159ef5721b342d883bff8983da602a6116dec35c7a80c78ba2139b2
MD5 c423d43c7786ddb5f0b97cd2781e2e44
BLAKE2b-256 bbe9e1ad12a24376bb60a7d2173a3d99b8035dfb5c17bfd62fbbe2d7eeb581a4

See more details on using hashes here.

Provenance

The following attestation bundles were made for naolib_mcp-1.0.2.tar.gz:

Publisher: publish.yml on alexandrerodenas/naolib-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file naolib_mcp-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: naolib_mcp-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 9.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for naolib_mcp-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 aa65f7cf7a92037e03a0a753033d55a88c1ef7a27aa5912f473a5cb5dc79d5be
MD5 bef5867fd5a1d179d98b37799e0b9f5b
BLAKE2b-256 925b476f64f5a48f0544979c1e3c5bd5002fa8712347d41beed9467325965b4e

See more details on using hashes here.

Provenance

The following attestation bundles were made for naolib_mcp-1.0.2-py3-none-any.whl:

Publisher: publish.yml on alexandrerodenas/naolib-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page