Skip to main content
Glama

André — Analyse électorale française

Server Details

Résultats des élections françaises 1999-2026 par bureau de vote, socio-démo INSEE et cartes.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
joelgombin/andre-mcp
GitHub Stars
0
Server Listing
André — Analyse électorale française

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsB

Average 3.5/5 across 11 of 11 tools scored. Lowest: 2.7/5.

Server CoherenceA
Disambiguation5/5

Each tool has a clearly distinct purpose: creating tables, exporting data, generating maps, querying administrative divisions, etc. Even the similar-sounding query_elections and query_sql are differentiated by intended use (standard vs. advanced). No ambiguity.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., create_data_table, query_admin, simulate_fusions). The naming is predictable and descriptive.

Tool Count5/5

With 11 tools, the server is well-scoped for French election analysis. Each tool covers a distinct aspect without being overwhelming or too sparse.

Completeness5/5

The tool set covers the full lifecycle of election analysis: data querying (elections, sociodemographics, officials), transformation (tables, SQL), visualization (maps, plots), and export. No obvious gaps for the stated domain.

Available Tools

11 tools
create_data_tableTableau de donnéesB
Idempotent
Inspect

Crée un tableau de données formaté à partir de données structurées.

Utile pour présenter des résultats calculés ou combinés. Retourne un tableau texte formaté.

ParametersJSON Schema
NameRequiredDescriptionDefault
rowsYes
titleYes
columnsYes
descriptionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide idempotentHint=true and destructiveHint=false. The description adds that it returns a formatted text table, which is useful. No contradictions, but little extra behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three concise sentences, no fluff, and front-loads the main action. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists, the description still lacks details on parameter format (e.g., how columns and rows should be structured) and output specifics. It is too minimal for a tool with 4 parameters and zero schema descriptions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It only hints at structured data without explaining the structure of 'columns' and 'rows' or the role of each parameter. This is insufficient for correct invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a formatted data table from structured data using the verb 'Crée' and resource 'tableau de données'. It is specific but does not differentiate from sibling tools like 'export_data' or 'visualize'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions it is useful for presenting calculated or combined results, providing implied usage context. However, it lacks explicit when-to-use, when-not-to-use, or alternative guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_dataExport de donnéesA
Idempotent
Inspect

Exporte des données électorales vers un fichier téléchargeable (CSV, JSON, TSV).

    Deux modes : data (contenu inline) ou source_path (chemin vers fichier existant).
    
ParametersJSON Schema
NameRequiredDescriptionDefault
dataNo
filenameYes
file_formatNocsv
source_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate idempotentHint=true and destructiveHint=false, and the description aligns by describing a non-destructive export. It adds context about creating a downloadable file and the two modes, which is valuable beyond the annotations. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three lines with essential information front-loaded. Every sentence adds value, no redundancy, and the structure is clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 4 parameters and an output schema (not shown), the description covers the core functionality and two modes. It lacks details on handling conflicting parameters or error conditions, but is largely sufficient for basic usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description partially compensates by explaining that 'data' is inline content and 'source_path' is a file path. However, it does not explain 'filename' or 'file_format', leaving gaps in parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (export), resource (électorales), and output formats (CSV, JSON, TSV). It also distinguishes two modes (data and source_path), making the tool's purpose distinct from sibling tools like query_* or visualize.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions two modes (data vs source_path) but provides no explicit guidance on when to use this tool over alternatives, nor does it specify prerequisites or exclusions. Usage is implied but not clearly differentiated from siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_mapCarte électoraleA
Idempotent
Inspect

Génère une carte électorale (PNG) pour une élection.

    Paramètres :
    - election_id : identifiant élection (ex: '2024_legi_t1', '2020_muni_t2')
    - metric : 'family' (famille politique en tête) ou 'nuance' (score d'une nuance)
    - geography : 'bv' (bureau de vote, défaut) ou 'commune' (carte nationale)
    - department : code département (ex: '13'). Requis pour geography='bv' sauf si commune fourni.
    - commune : code commune (ex: '13055' pour Marseille). Centre la carte sur cette commune.
    - nuance : code nuance quand metric='nuance' (ex: 'RN', 'LFI', 'ENS')
    - region : code région pour geography='commune' (ex: '93' pour PACA)

    Exemples :
    - Carte par famille, Bouches-du-Rhône : election_id='2024_legi_t1', department='13'
    - Carte score RN, Marseille : election_id='2024_legi_t1', commune='13055', metric='nuance', nuance='RN'
    - Carte nationale : election_id='2024_euro_t1', geography='commune'
    
ParametersJSON Schema
NameRequiredDescriptionDefault
cantonNo
metricNofamily
nuanceNo
regionNo
communeNo
geographyNobv
departmentNo
election_idYes
circonscriptionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate idempotentHint=true, which aligns with generating a deterministic map image. The description adds that output is a PNG, enhancing transparency about the result. No contradictions with annotations exist. It could mention rate limits or data freshness, but overall good.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-organized: a one-line summary, then a bullet list of parameters with clear explanations, followed by illustrative examples. Every sentence serves a purpose, and the structure is easily scannable for an AI agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 9 parameters and an output schema present, the description covers all parameters and their relationships. It lacks explicit mention of error conditions or data freshness, but the examples and constraints provide a solid understanding. It is nearly complete for a map generation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description compensates fully by explaining every parameter with examples and constraints. It clarifies interdependencies (e.g., department vs commune) and provides realistic usage scenarios, adding immense value beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description begins with a clear, specific statement: 'Génère une carte électorale (PNG) pour une élection.' This precisely identifies the verb (generate), resource (electoral map), and output format (PNG). It is distinct from sibling tools like query_elections or create_data_table, leaving no ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides detailed parameter constraints and examples, implicitly guiding when to use each parameter combination (e.g., 'geography='bv' requires department unless commune provided'). It does not explicitly compare to alternatives, but the sibling list lacks another map tool, so context is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

query_adminDivisions administrativesC
Read-onlyIdempotent
Inspect

Requête les divisions administratives françaises.

    Actions : search_commune, get_commune, search_postal,
    list_epci, get_epci, list_cantons, list_departements, list_regions.
    
ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
epci_codeNo
postal_codeNo
search_termNo
commune_codeNo
departement_codeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is clear. The description adds a list of supported actions, which provides some behavioral context, but does not elaborate on side effects or required permissions beyond what annotations imply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short, but the list of actions could be better structured (e.g., bullet points). It achieves minimal conciseness but lacks readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 6 parameters, 0% schema coverage, and no explanation of actions or parameter relationships, the description is severely incomplete. An output schema exists but is not leveraged, leaving agents without essential invocation context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, yet the description provides no explanation for any of the 6 parameters. It only lists action names without clarifying which parameters are relevant for each action or their formats. This is a critical gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it queries French administrative divisions and lists specific sub-actions, making the purpose clear. However, it does not distinguish itself from sibling tools like query_dlp or query_elections, which also perform queries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus its siblings or how to choose among the listed actions. The description lacks any conditional information or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

query_dlpProfil social des candidats municipauxB
Read-onlyIdempotent
Inspect

Requête les données DLP (composition sociale des candidats municipaux 2020).

    ~546 000 candidats dans ~10 000 communes (≥1 000 hab.).
    Classes : CDOM (dominant), CMOY (moyen), CSUB (subalterne), RET (retraité), AUTRES.
    Actions : summary, composition, parite, listes, candidats, professions, sortants.
    
ParametersJSON Schema
NameRequiredDescriptionDefault
sexeNo
actionYes
classeNo
searchNo
tetes_onlyNo
commune_codeNo
sortants_onlyNo
departement_codeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint. The description adds valuable context about the data scale (~546k candidates, ~10k communes) and the classification scheme, beyond what annotations provide. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is relatively short but uses a bullet-like list for actions and classes. It front-loads the main query purpose but could be more structured and include parameter explanations without getting too long.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 8 parameters, 0% schema coverage, and no parameter descriptions, the tool definition is incomplete. The output schema exists but is not shown. The description provides a high-level overview but lacks details needed to use the tool correctly without guessing parameter values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%. The description only mentions 'actions' and 'classe' briefly, ignoring 6 other parameters (e.g., sexe, search, tetes_only). It fails to compensate for the lack of schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as querying DLP data (social composition of 2020 municipal candidates), listing specific classes and actions. This distinctively separates it from sibling tools like query_elections or query_sociodem.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It lists possible actions (summary, composition, etc.) and classes, implying usage contexts, but does not provide explicit guidance on when to use this tool versus alternatives or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

query_electionsRésultats électorauxC
Read-onlyIdempotent
Inspect

Requête les données électorales françaises (1999-2026).

    Niveaux territoriaux : NATIONAL (aucun filtre), RÉGIONAL (region_code),
    DÉPARTEMENTAL (departement_code), COMMUNAL (commune_code).

    Actions de base : list_elections, query_results, list_bureaux, query_bureau,
    query_by_bureau, rank_bureaux, list_circonscriptions, query_circonscription,
    list_cantons, query_canton, search_candidate, query_candidatures, etc.

    Actions « panel » (1 appel = analyse complète, évite les boucles) :
    - compare_elections : compare deux scrutins pour un territoire
      (election_id + compare_to_election + commune_code|departement_code,
      candidate_name optionnel).
    - query_all_circonscriptions : vainqueur de CHAQUE circonscription d'un
      territoire en un appel (election_id + commune_code|departement_code,
      législatives uniquement).
    - vote_reserve : score d'une famille + abstention par bureau de vote sur
      les scrutins récents comparables (commune_code + famille).
    - select_communes : sélectionne/classe des communes par critères géo +
      population + électoraux (region_code/departement_code/epci/commune_codes,
      population_min/max, commune_metric, condition, sort_by, limit, order ;
      commune_metric/condition nécessitent election_id).
    - cross_election_panel : évolution d'un sujet (famille ou nuance_code) par
      commune sur N scrutins (elections=ids séparés par des virgules + scope
      commune_code/departement_code/region_code/commune_codes).
    - bureau_breakdown : pivot par bureau (top_n nuances/blocs + participation,
      with_sociodem optionnel) pour commune_code + election_id.
    
ParametersJSON Schema
NameRequiredDescriptionDefault
epciNo
tourNo
limitNo
orderNo
top_nNo
actionYes
offsetNo
familleNo
sort_byNo
bureau_idNo
by_familyNo
conditionNo
electionsNo
bureau_codeNo
canton_codeNo
election_idNo
family_nameNo
list_searchNo
nuance_codeNo
rank_metricNo
region_codeNo
commune_codeNo
nuance_levelNo
scrutin_typeNo
commune_codesNo
with_sociodemNo
candidate_nameNo
commune_metricNo
population_maxNo
population_minNo
candidate_queryNo
use_ferd_codingNo
candidate_searchNo
departement_codeNo
compare_to_electionNo
circonscription_codeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint, idempotentHint, and destructiveHint. The description adds context like the date range (1999-2026) and territorial levels. It does not contradict annotations and offers some behavioral context beyond the structured fields, albeit not extensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is lengthy and lists many actions without clear structure. It uses line breaks and bullet-like formatting, but includes 'etc.' suggesting incompleteness. The most critical information (purpose and territorial levels) is front-loaded, but the verbosity and lack of organization reduce clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 36 parameters, 0% schema coverage, and no parameter documentation in the description, the agent cannot reliably understand how to invoke the tool. The output schema exists but does not compensate for the missing parameter semantics. The description is far from complete for such a complex tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain individual parameters. Although some parameters are mentioned in action descriptions (e.g., election_id, commune_code), the meaning of many parameters (e.g., epci, tour, limit, offset) is left entirely to the agent to infer. This is insufficient for a tool with 36 parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it queries French election data from 1999-2026 and lists territorial levels (national, regional, departmental, communal). The verb 'Requête' (query) and resource 'données électorales françaises' are specific. Sibling tools like query_sociodem and query_admin are distinct, so no sibling confusion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description enumerates many actions (list_elections, query_results, etc.) but does not explain when to use this tool versus siblings such as query_sociodem or query_admin. Also, it lacks guidance on which action to choose for a given task. The 'panel' actions are described briefly, but overall the advice is minimal.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

query_elusÉlus de la RépubliqueC
Read-onlyIdempotent
Inspect

Requête les élus de la République française (base BRÉF).

    Actions : search_elu, list_mandate_types, list_elus.
    
ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
search_termNo
mandate_typeNo
departement_codeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the description does not need to repeat safety info. The description adds that the tool performs queries, consistent with annotations, but no extra behavioral details (e.g., pagination, error states).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short, which is concise, but it omits critical details. Listing actions is helpful, but the lack of parameter explanation makes it incomplete.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 4 parameters, an output schema, and specific actions, the description is insufficient. It does not explain how to form queries or interpret results, leaving significant gaps for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not mention any parameters or their relationship to actions. The agent cannot infer how 'action', 'search_term', 'mandate_type', or 'departement_code' should be used.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool queries French elected officials (élus) from the BRÉF database, and lists specific actions (search_elu, list_mandate_types, list_elus). This differentiates it from sibling tools like query_elections or query_admin. However, it could be more explicit about the scope of 'élus'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use which action or how to choose between this tool and siblings. It lists actions but does not explain their contexts or exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

query_sociodemDonnées socio-démographiquesA
Read-onlyIdempotent
Inspect

Requête les données socio-démographiques au niveau bureau de vote.

    Données INSEE RP 2022 + Filosofi 2021, interpolées IRIS→BDV.
    Actions : list_variables, profile, indices, rank, compare.
    
ParametersJSON Schema
NameRequiredDescriptionDefault
orderNo
actionYes
variableNo
commune_codeNo
commune_codesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, indicating safe read operations. The description adds value by specifying data sources (INSEE, Filosofi), interpolation method (IRIS→BDV), and available actions, which enriches behavioral understanding beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief and uses a bullet list for actions, making it scannable. Every sentence adds information without redundancy. A slightly more structured format could improve readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core purpose, data sources, and actions, which is adequate for a read-only query tool with an output schema. However, the lack of parameter documentation and usage guidance reduces completeness for the tool's complexity (5 params, multiple actions).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description only mentions the 'action' parameter explicitly. The other four parameters (order, variable, commune_code, commune_codes) are not explained, leaving their purpose and format unclear. This is a significant gap given the number of parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool queries socio-demographic data at polling station level, specifies data sources (INSEE RP 2022, Filosofi 2021), and lists available actions. It distinguishes from sibling tools by domain (socio-demographic vs. admin, elections, etc.).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

While the description mentions the tool's purpose and actions, it provides no explicit guidance on when to use this tool versus alternatives like query_admin or query_elections. Usage context is implied by the domain but not clarified.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

query_sqlRequête SQL (lecture seule)A
Read-onlyIdempotent
Inspect

Exécute une requête SQL directe sur la base DuckDB (read-only).

    Tables principales :
    - general_results : résultats généraux par bureau de vote
    - candidats_results : résultats par candidat par bureau de vote
    - elections_disponibles : liste des élections (id_election, nb_bureaux, total_inscrits)
    - candidats_avec_nuances : candidats avec famille politique (si nuances enrichies)
    - resultats_par_famille : résultats agrégés par famille politique
    - communes, epci, departements, regions : divisions administratives
    - bv_sociodemographique : données socio-démo par bureau de vote

    ATTENTION — colonnes de general_results (noms avec espaces, à quoter) :
    id_election, id_brut_miom, "Code du département", "Code de la commune" (SANS préfixe dept, ex: '055' pour Marseille),
    "Libellé de la commune", Inscrits, Abstentions, Votants, Blancs, Nuls, Exprimés.

    PRÉFÉRER query_elections pour les analyses standard — query_sql est pour les requêtes ad hoc avancées.

    Exemple :
    SELECT id_election, ROUND(100.0 * SUM(Abstentions) / NULLIF(SUM(Inscrits), 0), 1) as abstention_pct
    FROM general_results WHERE "Code du département" = '13' AND "Code de la commune" = '055'
    GROUP BY id_election ORDER BY id_election DESC LIMIT 5
    
ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds the context that it runs on DuckDB, mentions column naming quirks, and gives an example, but does not disclose additional behavioral traits like rate limits or error handling. This is adequate given annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with sections (tables, attention, prefer, example). The description is somewhat long but every section adds value. Front-loaded with purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (SQL querying with multiple tables and column quirks), the description covers table names, column details, usage guidance, and an example. Output schema exists and annotations are comprehensive, so no missing context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter 'query' has 0% schema description coverage, but the description compensates by listing table names, column details with quoting requirements, and a concrete example. This provides significant meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it executes a direct SQL query on DuckDB (read-only), lists main tables, and distinguishes from sibling tool query_elections by specifying that query_sql is for advanced ad hoc queries. The verb 'execute' and resource 'DuckDB SQL' are specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to prefer query_elections for standard analyses and that query_sql is for advanced ad hoc queries, providing clear when-to-use and when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

simulate_fusionsSimulation de fusions de listesA
Read-onlyIdempotent
Inspect

Simule les scénarios de fusion de listes municipales entre T1 et T2.

    Actions : 'status' (classer les listes après T1), 'simulate' (projections T2).
    Uniquement pour les élections municipales.
    
ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
election_idYes
report_rateNo
commune_codeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds domain-specific context (municipal elections, action types) but does not disclose additional behavioral traits beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with the main purpose. The listing of actions is efficient, though the formatting with a colon and newline is slightly informal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of fusion simulation and 4 parameters, the description is adequate but not complete. It explains actions and domain restriction but omits details on parameters like 'report_rate'. An output schema exists, so return values are not required, but parameter guidance is insufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description partially compensates by explaining the 'action' parameter and its two values ('status', 'simulate'). However, it fails to describe 'election_id' and 'report_rate', leaving gaps for the agent.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool simulates fusion scenarios of municipal lists between T1 and T2, listing specific actions ('status' and 'simulate'). It explicitly limits usage to municipal elections, making the purpose distinct from sibling tools like query_elections or generate_map.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions it is only for municipal elections, providing a clear context for when to use. However, it does not exclude alternative tools or explicitly state when not to use, leaving the agent to infer from sibling names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

visualizeVisualisation graphiqueA
Idempotent
Inspect

Crée une visualisation Plotly (retourne le spec JSON).

    Deux modes :
    - Spec libre : fournir 'spec' (dict Plotly complet {data, layout})
    - Assisté : fournir chart_type + data + x + y

    Types supportés : bar, line, scatter, histogram, box, violin, heatmap, treemap.
    
ParametersJSON Schema
NameRequiredDescriptionDefault
xNo
yNo
dataNo
specNo
colorNo
titleNo
data_fileNo
chart_typeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate idempotentHint=true and destructiveHint=false, and the description confirms it creates a visualization without side effects. However, the description does not elaborate on the return format or any potential performance implications, which is acceptable given the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured with bullet points. It front-loads the main purpose and lists modes clearly. Minor improvement could be more structured parameter descriptions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 8 parameters and an output schema, the description covers the main functionality but lacks detailed parameter semantics and example usage. It is adequate but not fully complete for complex scenarios.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must explain parameters. It explains the two modes and mentions chart_type, data, x, y, spec, color, title, but does not describe data_file or the exact structure of spec. Partial explanation, but not comprehensive for all 8 parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a Plotly visualization and returns a JSON spec. It lists supported chart types and distinguishes two modes (free spec and assisted), which is specific and differentiates it from sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear guidance on when to use each mode (free spec vs. assisted) and lists supported chart types. However, it does not explicitly state when not to use the tool or mention any prerequisites or limitations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.