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.
  • Perturbations en temps réel : Accédez aux alertes et incidents sur le réseau via SIRI Situation Exchange.
  • 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).

get_traffic_alerts

Obtenez les alertes et perturbations en temps réel sur le réseau Naolib (SIRI Situation Exchange).

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)
SIRI Lite /siri/2.0/{service}.json 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>. Les endpoints SIRI Lite (GET/JSON) sont documentés dans le manuel ITR Okina v16 (Chap. 15).

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.3.tar.gz (71.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.3-py3-none-any.whl (10.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: naolib_mcp-1.0.3.tar.gz
  • Upload date:
  • Size: 71.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.3.tar.gz
Algorithm Hash digest
SHA256 ea2683f76950a5f27736cc87997875bf5cfa577457ed0147c79e84d946b5edfe
MD5 77157e014a85cf2aea516834889194e4
BLAKE2b-256 6ed69a863dff2c34035c8e30dc333f18cb06adc0b7f24b7161411d20e27e21f9

See more details on using hashes here.

Provenance

The following attestation bundles were made for naolib_mcp-1.0.3.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.3-py3-none-any.whl.

File metadata

  • Download URL: naolib_mcp-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 10.9 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 d0243655da9181261db73b394ff7f69772c3e97861dfa9a0d9cfcc0f082757f1
MD5 c5dbafa1c9216c83d1308d9a3c950904
BLAKE2b-256 0a1b228260babac4de0c26134032a2a313939dda0221c3c7bddfff82d419d513

See more details on using hashes here.

Provenance

The following attestation bundles were made for naolib_mcp-1.0.3-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