Skip to main content
Glama
MCP Assemblée nationale

MCP Assemblée nationale

by Toumi-Elyes

Exporter Votes

exporter_votes
Read-onlyIdempotent

Export individual roll-call votes for a given scrutin to CSV or JSON, providing one deputy per row with group and position for deputy-level analysis.

Instructions

Exporte les votes individuels d'un scrutin en CSV ou JSON.

À utiliser pour obtenir la liste brute des votes d'un scrutin (un député par ligne) : scrutin_uid, depute_uid, prenom, nom, groupe, position (pour, contre, abstention, non_votant), par_delegation. groupe est le groupe actuel du député, ce qui permet de regrouper les votes par groupe. Les députés absents ne figurent pas dans la liste.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "scrutin_uid": "<scrutin_uid>"
    },
    "name": "exporter_votes"
  }
}

Input Schema

NameRequiredDescriptionDefault
formatNoFormat de sortie : `csv` (avec en-tête) ou `json`.csv
max_lignesNoNombre maximal de lignes exportées.
scrutin_uidYesIdentifiant du scrutin, par exemple « VTANR5L17V7324 » (obtenu avec rechercher_scrutins ou rechercher).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description adds genuine substance beyond them: the exact columns returned, the important caveat that `groupe` is the deputy's CURRENT group rather than the group at vote time, and that absent deputies are omitted. It does not mention the max_lignes truncation default of 600, which is a real behavioral limit for an export tool.

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?

Purpose is front-loaded in one sentence, followed by the usage case and the column list. The column enumeration is long but earns its place by telling the agent what the export contains. Slight bloat from parenthesized value list for `position`.

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 no output schema, the description carries the return-value burden well by enumerating columns and noting excluded rows. The one gap is silence on the row cap (default 600, max 1000), which materially affects an export of a large scrutin.

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 100%, so format, max_lignes and scrutin_uid are already fully documented with enum values, bounds and an example UID. The description discusses output columns rather than parameters, adding nothing beyond the schema. Baseline 3 applies.

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 states a specific verb (export) and resource (individual votes of a scrutin) with the output formats named. The 'liste brute, un député par ligne' phrasing makes the shape of the result concrete. It does not explicitly contrast with the sibling votes_scrutin, which likely offers a similar payload, so it misses the 5 bar.

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?

'À utiliser pour obtenir la liste brute des votes d'un scrutin' gives a clear use condition, and 'les députés absents ne figurent pas' pre-empts a common false expectation. No alternative tool is named (e.g. votes_scrutin) and no when-not-to-use is stated, so it stops short of 5.

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