dijkstra-mcp-server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@dijkstra-mcp-serverFind shortest path from A to F: A B 2 B F 3 A C 4 C F 1"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Serveur MCP Dijkstra
Serveur MCP minimal (un fichier) exposant l'algorithme de Dijkstra à un agent LLM. Support de cours : le point intéressant n'est pas l'algo mais comment l'agent transmet le graphe.
Format du graphe
Une arête par ligne, trois champs séparés par des espaces :
<noeud_a> <noeud_b> <cout>graphe non orienté :
Paris Dijon 315créeParis->DijonetDijon->Pariscoûts positifs ou nuls (contrainte de Dijkstra)
lignes vides et lignes commençant par
#ignorées
Pourquoi ce format plutôt que du JSON : un LLM l'écrit sans erreur de syntaxe (rien à équilibrer), il se lit tel quel au tableau, et il se parse en quelques lignes. Le graphe voyage dans l'appel d'outil — le serveur ne stocke rien.
Related MCP server: neo4j-gds
Outils
Outil | Arguments | Retour |
|
| chemin optimal, coût total, détail des tronçons |
|
| coût minimal et chemin vers tous les nœuds, trié |
all_distances montre que Dijkstra construit l'arbre complet des plus courts chemins,
pas seulement une paire départ/arrivée. Il renvoie aussi les chemins : sans ça, un agent
à qui on demande un tableau récapitulatif rappelle shortest_path une fois par
destination. Leçon de design MCP : un outil qui ne rend qu'une partie de la réponse
attendue se fait contourner.
Exemple
Graphe (coûts de trajet) :
Paris Lyon 550
Paris Dijon 315
Dijon Lyon 195
Lyon Marseille 315
Dijon Geneve 200
Geneve Marseille 420shortest_path(graph, "Paris", "Marseille") :
Chemin le moins coûteux : Paris -> Dijon -> Lyon -> Marseille
Coût total : 825
Détail des tronçons :
Paris -> Dijon : 315
Dijon -> Lyon : 195
Lyon -> Marseille : 315Le détour par Dijon (825) bat la route directe Paris–Lyon–Marseille (550+315 = 865) et la route par Genève (315+200+420 = 935) : l'arête directe évidente n'est pas la bonne.
Prompts de démonstration
À coller tels quels dans une session Claude Code une fois le serveur enregistré.
Prompt 1 — une paire départ/arrivée (déclenche shortest_path, un seul appel) :
Avec le serveur MCP dijkstra, trouve-moi le trajet le moins cher de Paris à Marseille.
Paris Lyon 550
Paris Dijon 315
Dijon Lyon 195
Lyon Marseille 315
Dijon Geneve 200
Geneve Marseille 420Attendu : Paris -> Dijon -> Lyon -> Marseille, coût 825.
Prompt 2 — toutes les destinations (déclenche all_distances, un seul appel) :
Avec dijkstra, donne-moi le coût minimal depuis Paris vers toutes les autres villes.
Paris Lyon 550
Paris Dijon 315
Dijon Lyon 195
Lyon Marseille 315
Dijon Geneve 200
Geneve Marseille 420Attendu : un tableau des 5 villes avec coût et chemin.
Observé en cours : tant que
all_distancesne renvoyait que les coûts, l'agent l'ignorait et appelaitshortest_path4 fois pour reconstituer les chemins. C'est exactement le piège décrit plus haut — un outil qui ne rend qu'une partie de la réponse attendue se fait contourner. Bon moment pour faire la démo des deux versions côte à côte.
Prompt 3 — sans graphe fourni (l'agent doit produire lui-même le bon format) :
Utilise le serveur dijkstra pour trouver le chemin le moins coûteux
de A à F dans un petit graphe de 6 nœuds de ton choix.Carte
carte.py produit deux figures dans images/ à partir du même graphe que le serveur
(constante GRAPHE_EXEMPLE dans server.py) :
Fichier | Usage |
| l'énoncé : 5 villes, 6 arêtes, les coûts |
| la correction : |
Le chemin surligné est calculé par l'algorithme, jamais codé en dur : changer un coût
dans GRAPHE_EXEMPLE et relancer suffit à mettre la carte à jour.
Les contours de la France et de la Suisse sont téléchargés une fois puis mis en cache dans
data/ (2 ko au total) — le script tourne offline ensuite.
.venv/bin/python carte.pyInstallation / enregistrement
Deux environnements, deux besoins :
le serveur tourne avec le venv MCP partagé
/home/bnj/mcp_servers/.venv(dépendance unique :fastmcp>=3.4.2, déjà présent) ;la carte tourne avec le
.venvlocal du projet, qui ajoute matplotlib sans polluer le venv partagé :
uv venv .venv
uv pip install --python .venv/bin/python -r requirements-carte.txtEnregistrement du serveur dans Claude Code :
claude mcp add dijkstra -- /home/bnj/mcp_servers/.venv/bin/python /home/bnj/Documents/djikstra_mcp_server/server.pyTests
/home/bnj/mcp_servers/.venv/bin/python test_server.pyCouvre : parsing, optimalité du chemin, les deux outils, les erreurs (nœud inconnu, coût négatif, ligne malformée, graphe déconnecté) et un appel bout-en-bout via un client MCP en mémoire.
This server cannot be deployed
Maintenance
Related MCP Connectors
Agentic-AI route optimization for delivery fleets, capacity- and time-window-safe.
The internet's infrastructure graph for AI agents - 46B nodes and edges, free trial via 2 HTTP calls
Precision math engine for AI agents. 203 exact methods. Zero hallucination.
500+ deterministic tools for AI agents: math, conversion, validation, hashing, encoding, date/time.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to interact with Gremlin-compatible graph databases through natural language, supporting schema discovery, complex graph queries, relationship analysis, and data import/export operations.9 npm9MIT

neo4j-gdsofficial
AlicenseNot gradedqualityAmaintenanceEnables LLMs to run complex graph algorithms on Neo4j databases, answering graph-related questions by selecting and executing appropriate parameterised graph algorithms.96MIT- AlicenseNot gradedqualityAmaintenanceEnables fast, targeted queries against an Obsidian vault knowledge graph using tools like search, neighbor traversal, and pathfinding, without needing to load the full graph into LLM context.2MIT
- FlicenseAqualityCmaintenanceOSM-backed multimodal navigation MCP server enabling geocoding, route planning, POI discovery, and urban layout analysis. It provides a structured city graph to LLM apps without proprietary map APIs.8-