dijkstra-mcp-server
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
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: genpark-graph-dijkstra-astar-pathfinder-skill
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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Routing, geocoding, places, matrix and map tools for location-aware AI workflows.
Agentic-AI route optimization for delivery fleets, capacity- and time-window-safe.
LLM API prices and AI agent cost estimates, verified daily. Read-only cost lookup tools.
Geocoding, routing, isochrones, traffic, weather, and place search for AI agents. 19 MCP tools.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables agents to compute shortest paths with Dijkstra and A*, resolve DAG dependencies, solve maximum flow, build minimum spanning trees, and rank graph centrality using JSON-RPC MCP tools.7MIT
- AlicenseNot gradedqualityNot gradedmaintenanceEnables graph pathfinding and network analysis through MCP, including Dijkstra/A* shortest paths, topological dependency resolution, maximum flow, minimum spanning trees, and PageRank centrality for agent planning.MIT
- AlicenseNot gradedqualityNot gradedmaintenanceEnables agents to resolve dependencies and analyze directed graphs through topological sorting, strongly connected components, shortest paths, maximum flow, minimum spanning trees, and centrality ranking via MCP.MIT
- AlicenseNot gradedqualityBmaintenanceEnables agents to compute shortest paths, topological dependency order, maximum flow and minimum-cut bottlenecks, minimum spanning trees, and PageRank centrality over weighted graphs for routing and execution planning. It exposes these graph-analysis capabilities as MCP tools through a zero-dependency Python server.7MIT