Argent public français avec sources : budget de l'État, communes, marchés publics, élus.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Deputies and senators of a commune given by name or INSEE code. An ambiguous name returns candidate communes. A commune split between several constituencies has several deputies: pass the address longitude and latitude (WGS84) to get the single deputy of that address, as the site's address finder does; none is given within 200 m of a boundary. Without coordinates, the result gives the public geocoder to use for the user's address.
Commune name or INSEE code
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http mcp https://chaqueeuro.fr/mcp
Deputies and senators of a commune given by name or INSEE code. An ambiguous name returns candidate communes. A commune split between several constituencies has several deputies: pass the address longitude and latitude (WGS84) to get the single deputy of that address, as the site's address finder does; none is given within 200 m of a boundary. Without coordinates, the result gives the public geocoder to use for the user's address.
| Argument | Type | Description |
|---|---|---|
| commune* | string | Commune name or INSEE code |
| latitude | number | |
| longitude | number |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"commune"
],
"properties": {
"commune": {
"type": "string",
"maxLength": 100,
"minLength": 2,
"description": "Commune name or INSEE code"
},
"latitude": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"longitude": {
"type": "number",
"maximum": 180,
"minimum": -180
}
}
}One administration by id (a UUID, from list_administrations or search): parent bodies, then child bodies and communes covered, 50 per page each.
| Argument | Type | Description |
|---|---|---|
| id* | string | |
| page | integer | Page number, from 1 |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, from 1"
}
}
}Thematic analyses. Without `slug`, lists them. With a slug, returns that analysis's data series and sources: public deficit and debt by presidency, France and the EU budget, Paris spending, rail funding, student support.
| Argument | Type | Description |
|---|---|---|
| slug | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"slug": {
"enum": [
"deficit-par-president",
"europe",
"paris",
"rail",
"etudiants"
],
"type": "string"
}
}
}One candidate's campaign account (CNCCFP) with every line. `id` is the candidate_id from list_campaign_accounts. Amounts are in cents.
| Argument | Type | Description |
|---|---|---|
| id* | string | |
| election* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"election",
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"election": {
"enum": [
"legislatives-2024",
"europeennes-2024"
],
"type": "string"
}
}
}One commune by INSEE code (Paris, Lyon and Marseille arrondissements map to their commune). By default, its accounts per inhabitant for one year against the median of communes of the same size. Sections: history (yearly accounts since 2018), functions (spending by service), local (local tax rates, income tax, electoral turnout, DGF), buyer (public contracts as buyer), representatives (deputies and senators). `year` selects the accounts year; the latest by default.
| Argument | Type | Description |
|---|---|---|
| year | integer | |
| insee* | string | INSEE commune code, 5 characters, e.g. 69123 or 2A004 |
| section | string | Part to return. Without it, the headline figures and the list of sections. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"insee"
],
"properties": {
"year": {
"type": "integer",
"maximum": 2100,
"minimum": 2000
},
"insee": {
"type": "string",
"pattern": "^[0-9][0-9AB][0-9]{3}$",
"description": "INSEE commune code, 5 characters, e.g. 69123 or 2A004"
},
"section": {
"enum": [
"history",
"functions",
"local",
"buyer",
"representatives"
],
"type": "string",
"description": "Part to return. Without it, the headline figures and the list of sections."
}
}
}One département by code (01 to 95, 2A, 2B, 971 to 976): spending per inhabitant of its communes against the median of communes of the same size (most populous first, 50 per page), accounts of the département council and its region over time, and electoral turnout.
| Argument | Type | Description |
|---|---|---|
| code* | string | Département code |
| page | integer | Page number, from 1 |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"pattern": "^(\\d{2}|2[AB]|97[1-6])$",
"description": "Département code"
},
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, from 1"
}
}
}One deputy, senator or member of the government by id (e.g. PA841605, from search or list_elected): mandates, voting participation, latest votes and summary of HATVP declarations of interests.
| Argument | Type | Description |
|---|---|---|
| id* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 100,
"minLength": 1
}
}
}Definitions of the terms the site uses (marché public, strate, médiane, épargne brute...), grouped by theme.
No arguments.
{
"type": "object",
"properties": {}
}One legislative file by id (e.g. an-DLR5L17N53329, from list_legislative_files): steps (50 per page), documents and the same law's files at other publishers.
| Argument | Type | Description |
|---|---|---|
| id* | string | |
| page | integer | Page number, from 1 |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, from 1"
}
}
}Lobbying registers (HATVP for France, EU Transparency Register). By default: totals, organisations with the most declared activities, targeted institutions and ministries, declared budgets and links with public contracts and State payments. Sections: defaults (HATVP declaration defaults, 50 per page), european (EU register). `organisation` filters lists by name.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page of the defaults section, 50 per page |
| section | string | Part to return. Without it, the headline figures and the list of sections. |
| organisation | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page of the defaults section, 50 per page"
},
"section": {
"enum": [
"defaults",
"european"
],
"type": "string",
"description": "Part to return. Without it, the headline figures and the list of sections."
},
"organisation": {
"type": "string",
"maxLength": 100
}
}
}One mayor from the national register of elected officials, by id (from list_local_executives).
| Argument | Type | Description |
|---|---|---|
| id* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 100,
"minLength": 1
}
}
}Every source the site uses with its id, name, publisher, data date and freshness, plus the social protection total quoted on the methodology page. `source` filters by source name, publisher or id and gives each match in full: licence, coverage, rows, SHA-256, known limits, the first URL fetched and how many (every URL is in `allUrls`).
| Argument | Type | Description |
|---|---|---|
| source | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"source": {
"type": "string",
"maxLength": 100
}
}
}Latest editions of the Journal officiel: published texts, 40 per page, filterable by date, nature, ministry and appointment class, with counts by nature, ministry and day and the number of appointments.
| Argument | Type | Description |
|---|---|---|
| date | string | Publication date, YYYY-MM-DD |
| page | integer | Page number, from 1 |
| nature | string | e.g. DECRET, ARRETE |
| ministry | string | Ministry label as published |
| appointmentClass | string | e.g. nomination, cessation |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"date": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
"description": "Publication date, YYYY-MM-DD"
},
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, from 1"
},
"nature": {
"type": "string",
"maxLength": 100,
"description": "e.g. DECRET, ARRETE"
},
"ministry": {
"type": "string",
"maxLength": 300,
"description": "Ministry label as published"
},
"appointmentClass": {
"type": "string",
"maxLength": 100,
"description": "e.g. nomination, cessation"
}
}
}One organisation by SIREN: identity, public contracts won and awarded since 2019 (yearly totals, main counterparts, largest and latest contracts), State payments, documented corporate group, lobbying declarations (HATVP and EU register), competition on its tenders and its upcoming tenders.
| Argument | Type | Description |
|---|---|---|
| siren* | string | SIREN, 9 digits |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"siren"
],
"properties": {
"siren": {
"type": "string",
"pattern": "^\\d{9}$",
"description": "SIREN, 9 digits"
}
}
}Home page headline figures: national key facts with their period, public contracts per year and median commune spending per inhabitant by population band. The State budget and the largest recipients are in get_state_budget and list_organisations.
No arguments.
{
"type": "object",
"properties": {}
}Political party accounts (CNCCFP): 2024 resources, donations and public aid of every party (50 per page, largest first), total public aid per year since 2021, the selected party's history and parties deprived of public aid. `party` is a CNCCFP party code from the accounts list; it selects the party detailed on the page.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, from 1 |
| party | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, from 1"
},
"party": {
"type": "string",
"maxLength": 100
}
}
}Public procurement overview. By default: latest contracts, largest buyers and winners, contracts by buyer département. Sections: breakdown (contracts by month, procedure and type), quality (publication quality), sanctions (Competition Authority sanctions), opportunities (upcoming tenders), competition (single-bid rates).
| Argument | Type | Description |
|---|---|---|
| section | string | Part to return. Without it, the headline figures and the list of sections. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"section": {
"enum": [
"breakdown",
"quality",
"sanctions",
"opportunities",
"competition"
],
"type": "string",
"description": "Part to return. Without it, the headline figures and the list of sections."
}
}
}Means of public office: reference allowances of parliamentarians, members of the government and local officials, ministerial cabinet staff, CADA opinions on access to documents, and the Pouvoirs publics budget.
No arguments.
{
"type": "object",
"properties": {}
}All French public money in Insee national accounts (State, State operators, local authorities, social security) by sector and by function, compulsory levies, European comparisons and quarterly debt. Pass `family` for one family's detailed accounts. Family etat covers all State administrations in national accounts, not the State's general budget: use get_state_budget for that. For securite-sociale, section socialAccounts gives the social security branches, ONDAM, health payers, pensions, family benefits and unemployment insurance.
| Argument | Type | Description |
|---|---|---|
| family | string | |
| section | string | Part to return. Without it, the headline figures and the list of sections. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"family": {
"enum": [
"etat",
"operateurs",
"collectivites",
"securite-sociale"
],
"type": "string"
},
"section": {
"enum": [
"socialAccounts"
],
"type": "string",
"description": "Part to return. Without it, the headline figures and the list of sections."
}
}
}The State's general budget (budget général). By default: total executed spending, by mission and programme, revenue by tax and budget voted for next year. Use it for the State budget; get_public_money family etat is a different perimeter (Insee national accounts of all State administrations). Sections: publicFinances (public finances by sub-sector since 1949), execution (monthly execution, spending by type and ministry, State balance sheet, green budget), legislation (the related finance laws).
| Argument | Type | Description |
|---|---|---|
| section | string | Part to return. Without it, the headline figures and the list of sections. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"section": {
"enum": [
"publicFinances",
"execution",
"legislation"
],
"type": "string",
"description": "Part to return. Without it, the headline figures and the list of sections."
}
}
}One public vote by id (e.g. VTANR5L17V9469 or SEN2026-46, from list_votes): result, counts by group and position, and vote corrections. Pass `group` (a group_label from groups) for each of its members' positions.
| Argument | Type | Description |
|---|---|---|
| id* | string | |
| group | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"group": {
"type": "string",
"maxLength": 100
}
}
}Directory of State administrations (ROAE and DILA directory), 40 per page, filterable by name, by category, or to bodies headed by a member of the government.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, from 1 |
| query | string | |
| category | string | e.g. Ministère, Direction |
| government | boolean |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, from 1"
},
"query": {
"type": "string",
"maxLength": 100
},
"category": {
"type": "string",
"maxLength": 100,
"description": "e.g. Ministère, Direction"
},
"government": {
"type": "boolean"
}
}
}Campaign account alerts from CNCCFP decisions: rejected accounts, accounts not filed and accounts filed late, newest first, 50 per page. They are official decisions, not proof of an offence.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, from 1 |
| rule | string | |
| election | string | |
| departement | string | Département code as published, e.g. 01, 2A, 971 |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, from 1"
},
"rule": {
"enum": [
"rejected-account",
"not-filed",
"late-filed"
],
"type": "string"
},
"election": {
"enum": [
"legislatives-2024",
"europeennes-2024"
],
"type": "string"
},
"departement": {
"type": "string",
"maxLength": 100,
"description": "Département code as published, e.g. 01, 2A, 971"
}
}
}Candidates' campaign accounts for the 2024 legislative or European elections (CNCCFP), 50 per page, with totals and counts by decision code. Filter by candidate or constituency name, département code or decision code. With `query`, also the matching entries of the index of 2026 municipal decisions (same page). Amounts are in cents.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, from 1 |
| query | string | |
| decision | string | CNCCFP decision code, e.g. A, AR, R |
| election | string | Defaults to legislatives-2024 |
| departement | string | Département code as published, e.g. 01, 2A, 971 |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, from 1"
},
"query": {
"type": "string",
"maxLength": 100
},
"decision": {
"type": "string",
"maxLength": 100,
"description": "CNCCFP decision code, e.g. A, AR, R"
},
"election": {
"enum": [
"legislatives-2024",
"europeennes-2024"
],
"type": "string",
"description": "Defaults to legislatives-2024"
},
"departement": {
"type": "string",
"maxLength": 100,
"description": "Département code as published, e.g. 01, 2A, 971"
}
}
}Communes overview: number of communes, largest communes with spending per inhabitant, median spending per inhabitant by population band, spending per inhabitant of each département's communes, and the national DGF grant history in commune accounts.
No arguments.
{
"type": "object",
"properties": {}
}Derived data tables published under Licence Ouverte 2.0, with formats and sizes. Each file is at https://chaqueeuro.fr/telechargements/fichiers/<file>. `table` gives one table with the SHA-256 of its files.
| Argument | Type | Description |
|---|---|---|
| table | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"table": {
"type": "string",
"maxLength": 100
}
}
}Current deputies, senators and members of the government, 50 per page, filterable by name, chamber, parliamentary group and département code, with counts per chamber and the latest public votes.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, from 1 |
| group | string | Parliamentary group label as published |
| query | string | |
| chamber | string | |
| departement | string | Département code as published, e.g. 01, 2A, 971 |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, from 1"
},
"group": {
"type": "string",
"maxLength": 100,
"description": "Parliamentary group label as published"
},
"query": {
"type": "string",
"maxLength": 100
},
"chamber": {
"enum": [
"AN",
"SENAT",
"minister"
],
"type": "string"
},
"departement": {
"type": "string",
"maxLength": 100,
"description": "Département code as published, e.g. 01, 2A, 971"
}
}
}Legislative files from DILA (DOLE), the Assemblée nationale and the Sénat, 40 per page, filterable by title words, source, status, legislature and finance laws.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, from 1 |
| query | string | |
| source | string | |
| status | string | e.g. Promulgué, En discussion |
| financeLaws | boolean | |
| legislature | string | e.g. 17 |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, from 1"
},
"query": {
"type": "string",
"maxLength": 100
},
"source": {
"enum": [
"dole",
"an-dossiers",
"senat-dosleg"
],
"type": "string"
},
"status": {
"type": "string",
"maxLength": 100,
"description": "e.g. Promulgué, En discussion"
},
"financeLaws": {
"type": "boolean"
},
"legislature": {
"type": "string",
"maxLength": 100,
"description": "e.g. 17"
}
}
}Accounts of regions (level region) or intercommunalités (level epci) for one year: spending, revenue and debt, also per inhabitant, 50 per page, filterable by name or SIREN, with the 8 highest spenders per inhabitant among matches.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, from 1 |
| year | integer | Defaults to 2025 |
| level* | string | |
| query | string | Name or SIREN |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"level"
],
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, from 1"
},
"year": {
"type": "integer",
"maximum": 2025,
"minimum": 2018,
"description": "Defaults to 2025"
},
"level": {
"enum": [
"region",
"epci"
],
"type": "string"
},
"query": {
"type": "string",
"maxLength": 100,
"description": "Name or SIREN"
}
}
}National register of elected officials (RNE): counts of mandate rows by kind, sex, age band and département, optionally for one département, and mayors searchable by name or commune, 50 per page.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, from 1 |
| query | string | |
| departement | string | Département code as published, e.g. 01, 2A, 971 |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, from 1"
},
"query": {
"type": "string",
"maxLength": 100
},
"departement": {
"type": "string",
"maxLength": 100,
"description": "Département code as published, e.g. 01, 2A, 971"
}
}
}Largest public contract winners (companies), largest recipients of State payments (associations) and largest public buyers, with national totals.
No arguments.
{
"type": "object",
"properties": {}
}Public votes of the Assemblée nationale and the Sénat, newest first, 50 per page, filterable by chamber and by title words or vote number.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, from 1 |
| query | string | |
| chamber | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, from 1"
},
"query": {
"type": "string",
"maxLength": 100
},
"chamber": {
"enum": [
"AN",
"SENAT"
],
"type": "string"
}
}
}Search by name across organisations (companies, associations, public bodies), communes, elected officials, public officials heading an administration and site topics. Each result has a site path whose last segment is the id for the detail tools (/organisation/<SIREN>, /commune/<INSEE>, /elus/<id>, /administrations/<id>). An acronym may only match subsidiaries or namesakes: then search the legal name (Electricité de France for EDF). Find an administration by its own name with list_administrations.
| Argument | Type | Description |
|---|---|---|
| query* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"maxLength": 200,
"minLength": 2
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 12, 2026.