{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_may6axcepsxz","handle":"andr-analyse-lectorale-fran-aise","url":"https://wellknown.network/agents/andr-analyse-lectorale-fran-aise","links":{"self":"https://wellknown.network/agents/andr-analyse-lectorale-fran-aise/record.json","html":"https://wellknown.network/agents/andr-analyse-lectorale-fran-aise","markdown":"https://wellknown.network/agents/andr-analyse-lectorale-fran-aise/record.md","api":"https://wellknown.network/api/v1/agents/andr-analyse-lectorale-fran-aise","status":"https://wellknown.network/api/v1/agents/andr-analyse-lectorale-fran-aise/status","claim":"https://wellknown.network/agents/andr-analyse-lectorale-fran-aise/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/andr-analyse-lectorale-fran-aise/claim.json","badge":"https://wellknown.network/agents/andr-analyse-lectorale-fran-aise/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/andr-analyse-lectorale-fran-aise/history","tools":"https://wellknown.network/api/v1/agents/andr-analyse-lectorale-fran-aise/tools"},"ard":{"identifier":"urn:air:mcp.andre.vote:server:andr-analyse-lectorale-fran-aise","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"André — Analyse électorale française","summary":"Résultats des élections françaises 1999-2026 par bureau de vote, socio-démo INSEE et cartes.","description":"Résultats des élections françaises 1999-2026 par bureau de vote, socio-démo INSEE et cartes.","publisher":{"name":"vote.andre","url":null},"homepage":"https://andre.vote","repository":"https://github.com/joelgombin/andre-mcp","version":"1.28.1","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://mcp.andre.vote/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-07-25T14:45:06.459314Z","publishedAt":"2026-07-25T14:45:06.459314Z","registryName":"vote.andre/elections"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"data.database","name":"Databases","confidence":0.933,"provenance":"derived"},{"slug":"analytics.reporting","name":"Reporting & Dashboards","confidence":0.51,"provenance":"derived"}],"categories":["analytics","data"],"language":"fr"},"observed":{"status":"live","statusReason":"Responded 4h ago.","lastOkAt":"2026-10-12T07:21:34.082Z","lastProbedAt":"2026-10-12T07:21:34.082Z","statusComputedAt":"2026-10-12T07:23:44.315Z","reliability30d":{"probes":111,"successRate":1,"p50Ms":94,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":109,"ok":109,"authBoundaryOk":0,"serviceOk":109,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-12T07:21:34.082Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":79,"error":null,"detail":{"tools":[{"name":"query_elections","description":"Requête les données électorales françaises (1999-2026).\n\n        Niveaux territoriaux : NATIONAL (aucun filtre), RÉGIONAL (region_code),\n        DÉPARTEMENTAL ("},{"name":"query_admin","description":"Requête les divisions administratives françaises.\n\n        Actions : search_commune, get_commune, search_postal,\n        list_epci, get_epci, list_cantons, list"},{"name":"query_elus","description":"Requête les élus de la République française (base BRÉF).\n\n        Actions : search_elu, list_mandate_types, list_elus.\n        "},{"name":"query_sociodem","description":"Requête les données socio-démographiques au niveau bureau de vote.\n\n        Données INSEE RP 2022 + Filosofi 2021, interpolées IRIS→BDV.\n        Actions : list_"},{"name":"query_dlp","description":"Requête les données DLP (composition sociale des candidats municipaux 2020).\n\n        ~546 000 candidats dans ~10 000 communes (≥1 000 hab.).\n        Classes : "},{"name":"generate_map","description":"Génère une carte électorale (PNG) pour une élection.\n\n        Paramètres :\n        - election_id : identifiant élection (ex: '2024_legi_t1', '2020_muni_t2')\n   "},{"name":"simulate_fusions","description":"Simule les scénarios de fusion de listes municipales entre T1 et T2.\n\n        Actions : 'status' (classer les listes après T1), 'simulate' (projections T2).\n   "},{"name":"export_data","description":"Exporte des données électorales vers un fichier téléchargeable (CSV, JSON, TSV).\n\n        Deux modes : data (contenu inline) ou source_path (chemin vers fichier"},{"name":"visualize","description":"Crée une visualisation Plotly (retourne le spec JSON).\n\n        Deux modes :\n        - Spec libre : fournir 'spec' (dict Plotly complet {data, layout})\n        "},{"name":"create_data_table","description":"Crée un tableau de données formaté à partir de données structurées.\n\n        Utile pour présenter des résultats calculés ou combinés.\n        Retourne un tablea"},{"name":"query_sql","description":"Exécute une requête SQL directe sur la base DuckDB (read-only).\n\n        Tables principales :\n        - general_results : résultats généraux par bureau de vote\n"}],"toolCount":11,"toolsHash":"98458ede7665ba1cc1652d48c2a843ddda52c421b591d67eee92100e10e002af","serverName":"andré","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"1.26.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-12T00:28:01.770Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":70,"error":null,"detail":{"tools":[{"name":"query_elections","description":"Requête les données électorales françaises (1999-2026).\n\n        Niveaux territoriaux : NATIONAL (aucun filtre), RÉGIONAL (region_code),\n        DÉPARTEMENTAL ("},{"name":"query_admin","description":"Requête les divisions administratives françaises.\n\n        Actions : search_commune, get_commune, search_postal,\n        list_epci, get_epci, list_cantons, list"},{"name":"query_elus","description":"Requête les élus de la République française (base BRÉF).\n\n        Actions : search_elu, list_mandate_types, list_elus.\n        "},{"name":"query_sociodem","description":"Requête les données socio-démographiques au niveau bureau de vote.\n\n        Données INSEE RP 2022 + Filosofi 2021, interpolées IRIS→BDV.\n        Actions : list_"},{"name":"query_dlp","description":"Requête les données DLP (composition sociale des candidats municipaux 2020).\n\n        ~546 000 candidats dans ~10 000 communes (≥1 000 hab.).\n        Classes : "},{"name":"generate_map","description":"Génère une carte électorale (PNG) pour une élection.\n\n        Paramètres :\n        - election_id : identifiant élection (ex: '2024_legi_t1', '2020_muni_t2')\n   "},{"name":"simulate_fusions","description":"Simule les scénarios de fusion de listes municipales entre T1 et T2.\n\n        Actions : 'status' (classer les listes après T1), 'simulate' (projections T2).\n   "},{"name":"export_data","description":"Exporte des données électorales vers un fichier téléchargeable (CSV, JSON, TSV).\n\n        Deux modes : data (contenu inline) ou source_path (chemin vers fichier"},{"name":"visualize","description":"Crée une visualisation Plotly (retourne le spec JSON).\n\n        Deux modes :\n        - Spec libre : fournir 'spec' (dict Plotly complet {data, layout})\n        "},{"name":"create_data_table","description":"Crée un tableau de données formaté à partir de données structurées.\n\n        Utile pour présenter des résultats calculés ou combinés.\n        Retourne un tablea"},{"name":"query_sql","description":"Exécute une requête SQL directe sur la base DuckDB (read-only).\n\n        Tables principales :\n        - general_results : résultats généraux par bureau de vote\n"}],"toolCount":11,"toolsHash":"98458ede7665ba1cc1652d48c2a843ddda52c421b591d67eee92100e10e002af","serverName":"andré","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"1.26.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-11T17:23:26.735Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":91,"error":null,"detail":{"tools":[{"name":"query_elections","description":"Requête les données électorales françaises (1999-2026).\n\n        Niveaux territoriaux : NATIONAL (aucun filtre), RÉGIONAL (region_code),\n        DÉPARTEMENTAL ("},{"name":"query_admin","description":"Requête les divisions administratives françaises.\n\n        Actions : search_commune, get_commune, search_postal,\n        list_epci, get_epci, list_cantons, list"},{"name":"query_elus","description":"Requête les élus de la République française (base BRÉF).\n\n        Actions : search_elu, list_mandate_types, list_elus.\n        "},{"name":"query_sociodem","description":"Requête les données socio-démographiques au niveau bureau de vote.\n\n        Données INSEE RP 2022 + Filosofi 2021, interpolées IRIS→BDV.\n        Actions : list_"},{"name":"query_dlp","description":"Requête les données DLP (composition sociale des candidats municipaux 2020).\n\n        ~546 000 candidats dans ~10 000 communes (≥1 000 hab.).\n        Classes : "},{"name":"generate_map","description":"Génère une carte électorale (PNG) pour une élection.\n\n        Paramètres :\n        - election_id : identifiant élection (ex: '2024_legi_t1', '2020_muni_t2')\n   "},{"name":"simulate_fusions","description":"Simule les scénarios de fusion de listes municipales entre T1 et T2.\n\n        Actions : 'status' (classer les listes après T1), 'simulate' (projections T2).\n   "},{"name":"export_data","description":"Exporte des données électorales vers un fichier téléchargeable (CSV, JSON, TSV).\n\n        Deux modes : data (contenu inline) ou source_path (chemin vers fichier"},{"name":"visualize","description":"Crée une visualisation Plotly (retourne le spec JSON).\n\n        Deux modes :\n        - Spec libre : fournir 'spec' (dict Plotly complet {data, layout})\n        "},{"name":"create_data_table","description":"Crée un tableau de données formaté à partir de données structurées.\n\n        Utile pour présenter des résultats calculés ou combinés.\n        Retourne un tablea"},{"name":"query_sql","description":"Exécute une requête SQL directe sur la base DuckDB (read-only).\n\n        Tables principales :\n        - general_results : résultats généraux par bureau de vote\n"}],"toolCount":11,"toolsHash":"98458ede7665ba1cc1652d48c2a843ddda52c421b591d67eee92100e10e002af","serverName":"andré","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"1.26.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-11T11:24:14.178Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":100,"error":null,"detail":{"tools":[{"name":"query_elections","description":"Requête les données électorales françaises (1999-2026).\n\n        Niveaux territoriaux : NATIONAL (aucun filtre), RÉGIONAL (region_code),\n        DÉPARTEMENTAL ("},{"name":"query_admin","description":"Requête les divisions administratives françaises.\n\n        Actions : search_commune, get_commune, search_postal,\n        list_epci, get_epci, list_cantons, list"},{"name":"query_elus","description":"Requête les élus de la République française (base BRÉF).\n\n        Actions : search_elu, list_mandate_types, list_elus.\n        "},{"name":"query_sociodem","description":"Requête les données socio-démographiques au niveau bureau de vote.\n\n        Données INSEE RP 2022 + Filosofi 2021, interpolées IRIS→BDV.\n        Actions : list_"},{"name":"query_dlp","description":"Requête les données DLP (composition sociale des candidats municipaux 2020).\n\n        ~546 000 candidats dans ~10 000 communes (≥1 000 hab.).\n        Classes : "},{"name":"generate_map","description":"Génère une carte électorale (PNG) pour une élection.\n\n        Paramètres :\n        - election_id : identifiant élection (ex: '2024_legi_t1', '2020_muni_t2')\n   "},{"name":"simulate_fusions","description":"Simule les scénarios de fusion de listes municipales entre T1 et T2.\n\n        Actions : 'status' (classer les listes après T1), 'simulate' (projections T2).\n   "},{"name":"export_data","description":"Exporte des données électorales vers un fichier téléchargeable (CSV, JSON, TSV).\n\n        Deux modes : data (contenu inline) ou source_path (chemin vers fichier"},{"name":"visualize","description":"Crée une visualisation Plotly (retourne le spec JSON).\n\n        Deux modes :\n        - Spec libre : fournir 'spec' (dict Plotly complet {data, layout})\n        "},{"name":"create_data_table","description":"Crée un tableau de données formaté à partir de données structurées.\n\n        Utile pour présenter des résultats calculés ou combinés.\n        Retourne un tablea"},{"name":"query_sql","description":"Exécute une requête SQL directe sur la base DuckDB (read-only).\n\n        Tables principales :\n        - general_results : résultats généraux par bureau de vote\n"}],"toolCount":11,"toolsHash":"98458ede7665ba1cc1652d48c2a843ddda52c421b591d67eee92100e10e002af","serverName":"andré","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"1.26.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-11T05:25:28.811Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":82,"error":null,"detail":{"tools":[{"name":"query_elections","description":"Requête les données électorales françaises (1999-2026).\n\n        Niveaux territoriaux : NATIONAL (aucun filtre), RÉGIONAL (region_code),\n        DÉPARTEMENTAL ("},{"name":"query_admin","description":"Requête les divisions administratives françaises.\n\n        Actions : search_commune, get_commune, search_postal,\n        list_epci, get_epci, list_cantons, list"},{"name":"query_elus","description":"Requête les élus de la République française (base BRÉF).\n\n        Actions : search_elu, list_mandate_types, list_elus.\n        "},{"name":"query_sociodem","description":"Requête les données socio-démographiques au niveau bureau de vote.\n\n        Données INSEE RP 2022 + Filosofi 2021, interpolées IRIS→BDV.\n        Actions : list_"},{"name":"query_dlp","description":"Requête les données DLP (composition sociale des candidats municipaux 2020).\n\n        ~546 000 candidats dans ~10 000 communes (≥1 000 hab.).\n        Classes : "},{"name":"generate_map","description":"Génère une carte électorale (PNG) pour une élection.\n\n        Paramètres :\n        - election_id : identifiant élection (ex: '2024_legi_t1', '2020_muni_t2')\n   "},{"name":"simulate_fusions","description":"Simule les scénarios de fusion de listes municipales entre T1 et T2.\n\n        Actions : 'status' (classer les listes après T1), 'simulate' (projections T2).\n   "},{"name":"export_data","description":"Exporte des données électorales vers un fichier téléchargeable (CSV, JSON, TSV).\n\n        Deux modes : data (contenu inline) ou source_path (chemin vers fichier"},{"name":"visualize","description":"Crée une visualisation Plotly (retourne le spec JSON).\n\n        Deux modes :\n        - Spec libre : fournir 'spec' (dict Plotly complet {data, layout})\n        "},{"name":"create_data_table","description":"Crée un tableau de données formaté à partir de données structurées.\n\n        Utile pour présenter des résultats calculés ou combinés.\n        Retourne un tablea"},{"name":"query_sql","description":"Exécute une requête SQL directe sur la base DuckDB (read-only).\n\n        Tables principales :\n        - general_results : résultats généraux par bureau de vote\n"}],"toolCount":11,"toolsHash":"98458ede7665ba1cc1652d48c2a843ddda52c421b591d67eee92100e10e002af","serverName":"andré","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"1.26.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T22:20:27.002Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":81,"error":null,"detail":{"tools":[{"name":"query_elections","description":"Requête les données électorales françaises (1999-2026).\n\n        Niveaux territoriaux : NATIONAL (aucun filtre), RÉGIONAL (region_code),\n        DÉPARTEMENTAL ("},{"name":"query_admin","description":"Requête les divisions administratives françaises.\n\n        Actions : search_commune, get_commune, search_postal,\n        list_epci, get_epci, list_cantons, list"},{"name":"query_elus","description":"Requête les élus de la République française (base BRÉF).\n\n        Actions : search_elu, list_mandate_types, list_elus.\n        "},{"name":"query_sociodem","description":"Requête les données socio-démographiques au niveau bureau de vote.\n\n        Données INSEE RP 2022 + Filosofi 2021, interpolées IRIS→BDV.\n        Actions : list_"},{"name":"query_dlp","description":"Requête les données DLP (composition sociale des candidats municipaux 2020).\n\n        ~546 000 candidats dans ~10 000 communes (≥1 000 hab.).\n        Classes : "},{"name":"generate_map","description":"Génère une carte électorale (PNG) pour une élection.\n\n        Paramètres :\n        - election_id : identifiant élection (ex: '2024_legi_t1', '2020_muni_t2')\n   "},{"name":"simulate_fusions","description":"Simule les scénarios de fusion de listes municipales entre T1 et T2.\n\n        Actions : 'status' (classer les listes après T1), 'simulate' (projections T2).\n   "},{"name":"export_data","description":"Exporte des données électorales vers un fichier téléchargeable (CSV, JSON, TSV).\n\n        Deux modes : data (contenu inline) ou source_path (chemin vers fichier"},{"name":"visualize","description":"Crée une visualisation Plotly (retourne le spec JSON).\n\n        Deux modes :\n        - Spec libre : fournir 'spec' (dict Plotly complet {data, layout})\n        "},{"name":"create_data_table","description":"Crée un tableau de données formaté à partir de données structurées.\n\n        Utile pour présenter des résultats calculés ou combinés.\n        Retourne un tablea"},{"name":"query_sql","description":"Exécute une requête SQL directe sur la base DuckDB (read-only).\n\n        Tables principales :\n        - general_results : résultats généraux par bureau de vote\n"}],"toolCount":11,"toolsHash":"98458ede7665ba1cc1652d48c2a843ddda52c421b591d67eee92100e10e002af","serverName":"andré","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"1.26.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T15:32:02.720Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":105,"error":null,"detail":{"tools":[{"name":"query_elections","description":"Requête les données électorales françaises (1999-2026).\n\n        Niveaux territoriaux : NATIONAL (aucun filtre), RÉGIONAL (region_code),\n        DÉPARTEMENTAL ("},{"name":"query_admin","description":"Requête les divisions administratives françaises.\n\n        Actions : search_commune, get_commune, search_postal,\n        list_epci, get_epci, list_cantons, list"},{"name":"query_elus","description":"Requête les élus de la République française (base BRÉF).\n\n        Actions : search_elu, list_mandate_types, list_elus.\n        "},{"name":"query_sociodem","description":"Requête les données socio-démographiques au niveau bureau de vote.\n\n        Données INSEE RP 2022 + Filosofi 2021, interpolées IRIS→BDV.\n        Actions : list_"},{"name":"query_dlp","description":"Requête les données DLP (composition sociale des candidats municipaux 2020).\n\n        ~546 000 candidats dans ~10 000 communes (≥1 000 hab.).\n        Classes : "},{"name":"generate_map","description":"Génère une carte électorale (PNG) pour une élection.\n\n        Paramètres :\n        - election_id : identifiant élection (ex: '2024_legi_t1', '2020_muni_t2')\n   "},{"name":"simulate_fusions","description":"Simule les scénarios de fusion de listes municipales entre T1 et T2.\n\n        Actions : 'status' (classer les listes après T1), 'simulate' (projections T2).\n   "},{"name":"export_data","description":"Exporte des données électorales vers un fichier téléchargeable (CSV, JSON, TSV).\n\n        Deux modes : data (contenu inline) ou source_path (chemin vers fichier"},{"name":"visualize","description":"Crée une visualisation Plotly (retourne le spec JSON).\n\n        Deux modes :\n        - Spec libre : fournir 'spec' (dict Plotly complet {data, layout})\n        "},{"name":"create_data_table","description":"Crée un tableau de données formaté à partir de données structurées.\n\n        Utile pour présenter des résultats calculés ou combinés.\n        Retourne un tablea"},{"name":"query_sql","description":"Exécute une requête SQL directe sur la base DuckDB (read-only).\n\n        Tables principales :\n        - general_results : résultats généraux par bureau de vote\n"}],"toolCount":11,"toolsHash":"98458ede7665ba1cc1652d48c2a843ddda52c421b591d67eee92100e10e002af","serverName":"andré","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"1.26.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T09:25:35.539Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":82,"error":null,"detail":{"tools":[{"name":"query_elections","description":"Requête les données électorales françaises (1999-2026).\n\n        Niveaux territoriaux : NATIONAL (aucun filtre), RÉGIONAL (region_code),\n        DÉPARTEMENTAL ("},{"name":"query_admin","description":"Requête les divisions administratives françaises.\n\n        Actions : search_commune, get_commune, search_postal,\n        list_epci, get_epci, list_cantons, list"},{"name":"query_elus","description":"Requête les élus de la République française (base BRÉF).\n\n        Actions : search_elu, list_mandate_types, list_elus.\n        "},{"name":"query_sociodem","description":"Requête les données socio-démographiques au niveau bureau de vote.\n\n        Données INSEE RP 2022 + Filosofi 2021, interpolées IRIS→BDV.\n        Actions : list_"},{"name":"query_dlp","description":"Requête les données DLP (composition sociale des candidats municipaux 2020).\n\n        ~546 000 candidats dans ~10 000 communes (≥1 000 hab.).\n        Classes : "},{"name":"generate_map","description":"Génère une carte électorale (PNG) pour une élection.\n\n        Paramètres :\n        - election_id : identifiant élection (ex: '2024_legi_t1', '2020_muni_t2')\n   "},{"name":"simulate_fusions","description":"Simule les scénarios de fusion de listes municipales entre T1 et T2.\n\n        Actions : 'status' (classer les listes après T1), 'simulate' (projections T2).\n   "},{"name":"export_data","description":"Exporte des données électorales vers un fichier téléchargeable (CSV, JSON, TSV).\n\n        Deux modes : data (contenu inline) ou source_path (chemin vers fichier"},{"name":"visualize","description":"Crée une visualisation Plotly (retourne le spec JSON).\n\n        Deux modes :\n        - Spec libre : fournir 'spec' (dict Plotly complet {data, layout})\n        "},{"name":"create_data_table","description":"Crée un tableau de données formaté à partir de données structurées.\n\n        Utile pour présenter des résultats calculés ou combinés.\n        Retourne un tablea"},{"name":"query_sql","description":"Exécute une requête SQL directe sur la base DuckDB (read-only).\n\n        Tables principales :\n        - general_results : résultats généraux par bureau de vote\n"}],"toolCount":11,"toolsHash":"98458ede7665ba1cc1652d48c2a843ddda52c421b591d67eee92100e10e002af","serverName":"andré","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"1.26.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T03:26:02.420Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":76,"error":null,"detail":{"tools":[{"name":"query_elections","description":"Requête les données électorales françaises (1999-2026).\n\n        Niveaux territoriaux : NATIONAL (aucun filtre), RÉGIONAL (region_code),\n        DÉPARTEMENTAL ("},{"name":"query_admin","description":"Requête les divisions administratives françaises.\n\n        Actions : search_commune, get_commune, search_postal,\n        list_epci, get_epci, list_cantons, list"},{"name":"query_elus","description":"Requête les élus de la République française (base BRÉF).\n\n        Actions : search_elu, list_mandate_types, list_elus.\n        "},{"name":"query_sociodem","description":"Requête les données socio-démographiques au niveau bureau de vote.\n\n        Données INSEE RP 2022 + Filosofi 2021, interpolées IRIS→BDV.\n        Actions : list_"},{"name":"query_dlp","description":"Requête les données DLP (composition sociale des candidats municipaux 2020).\n\n        ~546 000 candidats dans ~10 000 communes (≥1 000 hab.).\n        Classes : "},{"name":"generate_map","description":"Génère une carte électorale (PNG) pour une élection.\n\n        Paramètres :\n        - election_id : identifiant élection (ex: '2024_legi_t1', '2020_muni_t2')\n   "},{"name":"simulate_fusions","description":"Simule les scénarios de fusion de listes municipales entre T1 et T2.\n\n        Actions : 'status' (classer les listes après T1), 'simulate' (projections T2).\n   "},{"name":"export_data","description":"Exporte des données électorales vers un fichier téléchargeable (CSV, JSON, TSV).\n\n        Deux modes : data (contenu inline) ou source_path (chemin vers fichier"},{"name":"visualize","description":"Crée une visualisation Plotly (retourne le spec JSON).\n\n        Deux modes :\n        - Spec libre : fournir 'spec' (dict Plotly complet {data, layout})\n        "},{"name":"create_data_table","description":"Crée un tableau de données formaté à partir de données structurées.\n\n        Utile pour présenter des résultats calculés ou combinés.\n        Retourne un tablea"},{"name":"query_sql","description":"Exécute une requête SQL directe sur la base DuckDB (read-only).\n\n        Tables principales :\n        - general_results : résultats généraux par bureau de vote\n"}],"toolCount":11,"toolsHash":"98458ede7665ba1cc1652d48c2a843ddda52c421b591d67eee92100e10e002af","serverName":"andré","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"1.26.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T21:27:17.170Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":79,"error":null,"detail":{"tools":[{"name":"query_elections","description":"Requête les données électorales françaises (1999-2026).\n\n        Niveaux territoriaux : NATIONAL (aucun filtre), RÉGIONAL (region_code),\n        DÉPARTEMENTAL ("},{"name":"query_admin","description":"Requête les divisions administratives françaises.\n\n        Actions : search_commune, get_commune, search_postal,\n        list_epci, get_epci, list_cantons, list"},{"name":"query_elus","description":"Requête les élus de la République française (base BRÉF).\n\n        Actions : search_elu, list_mandate_types, list_elus.\n        "},{"name":"query_sociodem","description":"Requête les données socio-démographiques au niveau bureau de vote.\n\n        Données INSEE RP 2022 + Filosofi 2021, interpolées IRIS→BDV.\n        Actions : list_"},{"name":"query_dlp","description":"Requête les données DLP (composition sociale des candidats municipaux 2020).\n\n        ~546 000 candidats dans ~10 000 communes (≥1 000 hab.).\n        Classes : "},{"name":"generate_map","description":"Génère une carte électorale (PNG) pour une élection.\n\n        Paramètres :\n        - election_id : identifiant élection (ex: '2024_legi_t1', '2020_muni_t2')\n   "},{"name":"simulate_fusions","description":"Simule les scénarios de fusion de listes municipales entre T1 et T2.\n\n        Actions : 'status' (classer les listes après T1), 'simulate' (projections T2).\n   "},{"name":"export_data","description":"Exporte des données électorales vers un fichier téléchargeable (CSV, JSON, TSV).\n\n        Deux modes : data (contenu inline) ou source_path (chemin vers fichier"},{"name":"visualize","description":"Crée une visualisation Plotly (retourne le spec JSON).\n\n        Deux modes :\n        - Spec libre : fournir 'spec' (dict Plotly complet {data, layout})\n        "},{"name":"create_data_table","description":"Crée un tableau de données formaté à partir de données structurées.\n\n        Utile pour présenter des résultats calculés ou combinés.\n        Retourne un tablea"},{"name":"query_sql","description":"Exécute une requête SQL directe sur la base DuckDB (read-only).\n\n        Tables principales :\n        - general_results : résultats généraux par bureau de vote\n"}],"toolCount":11,"toolsHash":"98458ede7665ba1cc1652d48c2a843ddda52c421b591d67eee92100e10e002af","serverName":"andré","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"1.26.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"query_elections","description":"Requête les données électorales françaises (1999-2026).\n\n        Niveaux territoriaux : NATIONAL (aucun filtre), RÉGIONAL (region_code),\n        DÉPARTEMENTAL ("},{"name":"query_admin","description":"Requête les divisions administratives françaises.\n\n        Actions : search_commune, get_commune, search_postal,\n        list_epci, get_epci, list_cantons, list"},{"name":"query_elus","description":"Requête les élus de la République française (base BRÉF).\n\n        Actions : search_elu, list_mandate_types, list_elus.\n        "},{"name":"query_sociodem","description":"Requête les données socio-démographiques au niveau bureau de vote.\n\n        Données INSEE RP 2022 + Filosofi 2021, interpolées IRIS→BDV.\n        Actions : list_"},{"name":"query_dlp","description":"Requête les données DLP (composition sociale des candidats municipaux 2020).\n\n        ~546 000 candidats dans ~10 000 communes (≥1 000 hab.).\n        Classes : "},{"name":"generate_map","description":"Génère une carte électorale (PNG) pour une élection.\n\n        Paramètres :\n        - election_id : identifiant élection (ex: '2024_legi_t1', '2020_muni_t2')\n   "},{"name":"simulate_fusions","description":"Simule les scénarios de fusion de listes municipales entre T1 et T2.\n\n        Actions : 'status' (classer les listes après T1), 'simulate' (projections T2).\n   "},{"name":"export_data","description":"Exporte des données électorales vers un fichier téléchargeable (CSV, JSON, TSV).\n\n        Deux modes : data (contenu inline) ou source_path (chemin vers fichier"},{"name":"visualize","description":"Crée une visualisation Plotly (retourne le spec JSON).\n\n        Deux modes :\n        - Spec libre : fournir 'spec' (dict Plotly complet {data, layout})\n        "},{"name":"create_data_table","description":"Crée un tableau de données formaté à partir de données structurées.\n\n        Utile pour présenter des résultats calculés ou combinés.\n        Retourne un tablea"},{"name":"query_sql","description":"Exécute une requête SQL directe sur la base DuckDB (read-only).\n\n        Tables principales :\n        - general_results : résultats généraux par bureau de vote\n"}],"package":null,"toolSurface":{"id":"ts_kwd35htqrwb3","endpointId":"ep_at3b7mw8n3tv","hash":"98458ede7665ba1cc1652d48c2a843ddda52c421b591d67eee92100e10e002af","toolCount":11,"serverName":"andré","serverVersion":"1.26.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-09-12T15:25:56.356Z","lastSeenAt":"2026-10-12T07:21:34.071Z","observations":109,"toolNames":["query_elections","query_admin","query_elus","query_sociodem","query_dlp","generate_map","simulate_fusions","export_data","visualize","create_data_table","query_sql"],"distinctSurfaces":1},"endpointFacts":[{"id":"ep_at3b7mw8n3tv","url":"https://mcp.andre.vote/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-12T07:21:34.076Z","auth":{"observedAt":"2026-10-12T07:21:34.172Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-12T07:21:34.188Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"andre.vote","issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validFrom":"2026-08-30T06:04:31.000Z","validTo":"2026-11-28T07:02:59.000Z","daysToExpiry":46,"sanCount":2,"fingerprint256":"0F:F7:CC:0C:27:BE:F7:8B:A6:CB:DC:47:B4:E4:78:9C:F9:D6:4D:DD:8A:22:FB:6C:23:91:9E:68:2F:2C:CD:38"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"vote.andre/elections","url":"https://registry.modelcontextprotocol.io/v0/servers/vote.andre%2Felections","firstSeenAt":"2026-09-07T09:23:19.809Z","fetchedAt":"2026-10-11T17:19:07.544Z","normalizedAt":"2026-10-11T17:19:07.544Z"}]},"firstSeenAt":"2026-09-07T09:23:19.809Z","updatedAt":"2026-10-12T07:24:28.438Z"}