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.0.tar.gz (69.8 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.0-py3-none-any.whl (9.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: naolib_mcp-1.0.0.tar.gz
  • Upload date:
  • Size: 69.8 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.0.tar.gz
Algorithm Hash digest
SHA256 e34bafdea0f24c431d2bae22d2adf144a5c86e4213970fd713fc819fd5d8aeed
MD5 ca00d20d4ca7bd7d827d6f1a33ab883b
BLAKE2b-256 7ccf647aa04a5bcdebcb560b7cde25ba93813a25e5a0e68c217157116ab0f473

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: naolib_mcp-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 9.1 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5032cecf8ec3b71d09cccb6f2fcca596aad22ba931b1bbb094739a47d03fa3db
MD5 76d2b85ce57af8a082140438af772b3c
BLAKE2b-256 6f4bb0ade90efe746f673f30ad69ae3eaa539b0d8afaa602c61bb939c4930229

See more details on using hashes here.

Provenance

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