André — Analyse électorale française
Résultats des élections françaises 1999-2026 par bureau de vote, socio-démo INSEE et cartes.
Open source Repository Open in the app JSON README (API)
About
Résultats des élections françaises 1999-2026 par bureau de vote, socio-démo INSEE et cartes.
Details
- Kind
- MCP servers
- Topic
- No topic detected
- Publisher
- vote.andre
- Origin
- official
- Category
- ferramentas
- Transport
- http
- Version
- 1.28.1
- Last push
- 2026-09-03T11:23:33Z
- Repository state
- ativo
- Language
- Python
- License
- MIT
- Added
- 2026-08-29 04:01:56
- Updated
- 2026-08-29 04:01:56
- Origin id
vote.andre/elections
README
# André MCP — Analyse électorale française
[](https://glama.ai/mcp/servers/joelgombin/andre-mcp)
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
```bash
claude mcp add --transport http andre https://mcp.andre.vote/mcp
```
### Claude Desktop, Cursor, VS Code…
```json
{
"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 :
```json
{
"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](https://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 territoire
- `query_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 électoraux
- `cross_election_panel` — évolution d'une famille ou d'une nuance par commune sur N scrutins
- `bureau_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 électorales
- `andre://references/political_colors` — couleurs des familles politiques
- `andre://references/election_dates` — dates des 55 élections
- `andre://references/victory_rules` — règles de victoire par type d'élection
- `andre://references/nuances` — codes de nuance politique
- `andre://references/insee_variables` — variables socio-démographiques INSEE
- `andre://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](https://data.gouv.fr) | Licence Ouverte 2.0 | Résultats électoraux, candidatures |
| [IGN / Etalab](https://github.com/etalab) | Licence Ouverte 2.0 | Contours administratifs |
| [INSEE](https://www.insee.fr) | Licence Ouverte 2.0 | Données socio-démographiques |
| [BRÉF (Zenodo)](https://zenodo.org) | CC BY 4.0 | Élus de la République |
| [FERD](https://ferd.fr) | 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, `LIMIT` de sécurité injecté sur les `SELECT`/`WITH` sans 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 :
```bash
pip install .
python -c "from andre_mcp.server import run; run()"
```
ou via Docker :
```bash
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](#connexion).
## Registre
Publié au registre officiel MCP sous le nom **`vote.andre/elections`**
(namespace vérifié par DNS sur `andre.vote`). Voir [`server.json`](server.json).
## Licence
MIT — voir [LICENSE](LICENSE).
Les données restent soumises aux licences de leurs producteurs respectifs
(Licence Ouverte 2.0, CC BY 4.0).