André MCP — Analyse électorale française
Serveur MCP (Model Context Protocol) donnant accès aux résultats de 55 élections françaises (1999-2026) au niveau du bureau de vote, croisés avec les données socio-démographiques de l'INSEE, la base des élus de la République et les découpages administratifs officiels.
Serveur hébergé, prêt à l'emploi : https://mcp.andre.vote/mcp
Aucune installation, aucun téléchargement de données, aucune authentification.
Ce dépôt contient le code du serveur MCP, publié sous licence MIT. Il est un miroir automatique de
andre-mcp/dans le monorepo André, qui reste la source de vérité : les contributions passent par des issues ici, pas par des commits directs (ils seraient écrasés au prochain miroitage).
Connexion
Claude Code
claude mcp add --transport http andre https://mcp.andre.vote/mcp
Claude Desktop, Cursor, VS Code…
{
"mcpServers": {
"andre": {
"type": "http",
"url": "https://mcp.andre.vote/mcp"
}
}
}
Emplacement du fichier pour Claude Desktop :
- macOS :
~/Library/Application Support/Claude/claude_desktop_config.json - Windows :
%APPDATA%\Claude\claude_desktop_config.json
Pour les clients qui ne gèrent pas encore le transport HTTP :
{
"mcpServers": {
"andre": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.andre.vote/mcp"]
}
}
}
Limite d'appels d'outils sur Claude.ai / Claude Desktop
Claude impose une limite d'environ 15-20 appels d'outils par tour de conversation. Les analyses approfondies (résultats T1+T2, bureaux de vote, croisement socio-démographique…) peuvent l'atteindre. Cliquez Continuer pour reprendre. Pour des analyses complètes sans interruption, andre.vote n'a pas cette contrainte.
Outils
| Outil | Description |
|---|---|
query_elections | Résultats électoraux (55 élections, 1999-2026) |
query_admin | Divisions administratives (communes, EPCI, cantons, départements) |
query_elus | Élus de la République (base BRÉF, Zenodo) |
query_sociodem | Données socio-démographiques INSEE au niveau bureau de vote |
query_sql | Requêtes SQL directes sur la base DuckDB (lecture seule) |
query_dlp | Composition sociale des candidats municipaux 2020 |
generate_map | Cartes électorales multi-couches |
visualize | Visualisations Plotly (bar, line, scatter…) |
simulate_fusions | Simulation de fusions de listes municipales |
export_data | Export CSV/JSON/TSV |
create_data_table | Tableaux de données formatés |
Tous les outils portent un title et une annotation readOnlyHint /
destructiveHint. Aucun outil n'est destructif : le serveur est en lecture
seule sur des données publiques.
query_elections propose des actions « panel » qui répondent en un seul
appel, ce qui limite le risque d'atteindre le plafond d'appels d'outils :
compare_elections— compare deux scrutins pour un territoirequery_all_circonscriptions— vainqueur de chaque circonscription (législatives)vote_reserve— score d'une famille + abstention par bureau (réserves de voix)select_communes— sélectionne/classe des communes par critères géographiques, démographiques et électorauxcross_election_panel— évolution d'une famille ou d'une nuance par commune sur N scrutinsbureau_breakdown— pivot par bureau (top nuances + participation, socio-démo en option)
Resources documentaires
Références consultables automatiquement par le client :
andre://references/methodologies— méthodologies d'analyse (réserves, typologies, ACP)andre://references/data_schema— schéma des données électoralesandre://references/political_colors— couleurs des familles politiquesandre://references/election_dates— dates des 55 électionsandre://references/victory_rules— règles de victoire par type d'électionandre://references/nuances— codes de nuance politiqueandre://references/insee_variables— variables socio-démographiques INSEEandre://skills/electoral-analysis— skill principal (workflows, débogage)
Prompts pré-construits
- analyser_commune — analyse électorale complète d'une commune
- reserves_de_voix — identification des réserves pour une force politique
- carte_electorale — carte thématique d'un département
- comparer_elections — comparaison temporelle entre deux scrutins
- resultats_rapides — résultats synthétiques d'une élection
Exemples
Analyse les résultats des législatives 2024 à Marseille
→ query_admin (code 13055) puis query_elections puis query_sociodem
Quelles sont les communes les plus abstentionnistes des Bouches-du-Rhône
aux européennes 2024 ?
→ query_sql avec une requête agrégée
Données
Exclusivement des sources publiques officielles :
| Source | Licence | Contenu |
|---|---|---|
| data.gouv.fr | Licence Ouverte 2.0 | Résultats électoraux, candidatures |
| IGN / Etalab | Licence Ouverte 2.0 | Contours administratifs |
| INSEE | Licence Ouverte 2.0 | Données socio-démographiques |
| BRÉF (Zenodo) | CC BY 4.0 | Élus de la République |
| FERD | CC BY 4.0 | Codage politique à trois niveaux |
Les données socio-démographiques sont interpolées de l'IRIS vers le bureau de vote via les pondérations de l'Observatoire national des bureaux de vote.
Limites & robustesse
Le serveur expose des données publiques en lecture seule, sans authentification. Garde-fous en place :
query_sql— connexion DuckDB en lecture seule, requêtes d'écriture bloquées,LIMITde sécurité injecté sur lesSELECT/WITHsans limite explicite.- Garde de concurrence — nombre d'exécutions lourdes simultanées borné, avec une réponse gracieuse « serveur occupé » au-delà.
- Métriques — séries Prometheus sur
/metrics(outil, latence, taux d'erreur, concurrence). Ni les arguments, ni les résultats, ni les identifiants de session ne sont exposés.
Exécution locale
Le serveur démarre et répond à l'introspection (tools/list,
resources/list, prompts/list) sans aucune donnée :
pip install .
python -c "from andre_mcp.server import run; run()"
ou via Docker :
docker build -t andre-mcp .
docker run -i --rm andre-mcp
En revanche, les appels d'outils ne fonctionnent pas encore hors du
monorepo : le serveur délègue ses requêtes à des scripts (query_elections.py,
query_admin.py, generate_map.py…) qui n'ont pas encore été versés dans le
paquet, et le jeu de données complet (~1,5 Go) doit être provisionné. Un paquet
PyPI autonome est en préparation.
Pour un usage réel, connectez-vous au serveur distant.
Registre
Publié au registre officiel MCP sous le nom vote.andre/elections
(namespace vérifié par DNS sur andre.vote). Voir server.json.
Licence
MIT — voir LICENSE.
Les données restent soumises aux licences de leurs producteurs respectifs (Licence Ouverte 2.0, CC BY 4.0).