Skip to main content
Glama
saidaitsalah03-stack

BorneFlow MCP Server

BorneFlow MCP Server

Serveur Model Context Protocol simulant un Maximo fictif pour le POC IBM Bob (PFE CGI).

Ce serveur expose les données métier de BorneFlow (bornes de recharge, ordres de maintenance, techniciens) à un agent IA via le protocole MCP. Il permet à Bob (ou Claude Code / Cursor) d'interroger un faux Maximo en langage naturel, et surtout d'analyser les dépendances du codebase avant toute modification.

⚠️ 100 % synthétique. Aucune donnée réelle SNCF / CGI / client. Domaine fictif (bornes de recharge électrique).


Prérequis

  • Python 3.10+ (testé sur 3.12)

  • pip


Related MCP server: MCP Workflow Engine

Installation (Windows 11)

# 1. Se placer dans le dossier du serveur
cd C:\chemin\vers\borneflow-mcp-server

# 2. (Recommandé) Créer un environnement virtuel isolé
python -m venv .venv
.\.venv\Scripts\Activate.ps1

# 3. Installer les dépendances
pip install -e .

# 4. Générer les données synthétiques (30 bornes, 100 ordres, 20 techniciens)
python -m borneflow_mcp.generate_data

Sortie attendue :

  stations.json                    30 enregistrements
  maintenance_orders.json         100 enregistrements
  technicians.json                 20 enregistrements

Vérifier que le serveur démarre

python -m borneflow_mcp.server

Sortie attendue :

INFO [borneflow_mcp] Démarrage du serveur MCP borneflow v0.1.0
INFO [borneflow_mcp] Données chargées : 30 stations, 100 ordres, 20 techniciens

Le serveur attend alors des messages MCP sur stdin (c'est normal qu'il "se bloque" : il attend que Bob lui parle). Ctrl+C pour arrêter.


Connexion à IBM Bob

Crée (ou complète) le fichier .bob/mcp.json à la racine du projet borneflow (pas du serveur) :

{
  "mcpServers": {
    "borneflow": {
      "command": "C:\\chemin\\vers\\borneflow-mcp-server\\.venv\\Scripts\\python.exe",
      "args": ["-m", "borneflow_mcp.server"],
      "cwd": "C:\\chemin\\vers\\borneflow-mcp-server"
    }
  }
}

Points importants :

  • command doit pointer vers le python.exe du venv (sinon les dépendances mcp ne seront pas trouvées)

  • cwd doit être le dossier du serveur (pour qu'il trouve data/)

  • Les \ doivent être doublés (\\) en JSON

Après modification, recharge la fenêtre VS Code (Ctrl+Shift+P → "Reload Window"). Bob devrait alors lister les 8 outils borneflow dans son panneau MCP.


Capacités exposées

8 Tools (outils interrogeables)

Outil

Usage

query_stations

Liste/filtre les bornes (statut, ville, puissance)

get_station

Détail d'une borne par externalId

list_maintenance_orders

Liste/filtre les ordres de maintenance

get_maintenance_order

Détail d'un ordre

find_technician_by_matricule

Recherche technicien (lecture seule)

get_orders_statistics

Statistiques agrégées

stations_needing_maintenance

Bornes sans maintenance depuis N jours

analyze_dependencies

Graphe de dépendances d'un composant (analyse d'impact)

3 Resources (données contextuelles)

URI

Contenu

borneflow://schema/data-model

Schéma des entités métier

borneflow://docs/architecture

Architecture en couches du codebase

borneflow://components/graph

Graphe des composants (JSON)

3 Prompts (templates réutilisables)

Prompt

Usage

analyze_impact_before_change

Analyse d'impact avant modification

security_review_pre_commit

Revue de sécurité pré-commit

diagnose_station

Diagnostic complet d'une borne


Tout est en lecture seule

Cette version n'expose aucun outil d'écriture (pas de création/modification/suppression). C'est un choix de sécurité conforme aux garde-fous du POC : un agent IA ne peut que lire le faux Maximo, jamais le modifier. Une éventuelle branche with-write (avec validation humaine) pourra être ajoutée ultérieurement.


Tester sans Bob (validation rapide)

python -m pytest tests/

Structure

borneflow-mcp-server/
├── pyproject.toml
├── README.md
├── data/                          # Données synthétiques générées
│   ├── stations.json
│   ├── maintenance_orders.json
│   └── technicians.json
├── src/borneflow_mcp/
│   ├── __init__.py
│   ├── server.py                  # Serveur MCP (tools/resources/prompts)
│   ├── data_store.py              # Chargement + requêtes en mémoire
│   ├── dependencies.py            # Graphe de dépendances (analyse d'impact)
│   └── generate_data.py           # Générateur de données fictives
└── tests/
    └── test_data_store.py

POC IBM Bob — Stage CGI — version 0.1.0

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers