Poligraph MCP Server
Exposes French political data from Poligraph as MCP tools, allowing journalists and citizens to query politicians, votes, fact-checks, elections, and more via natural language.
README
Poligraph MCP Server
Serveur MCP (Model Context Protocol) qui expose les données de Poligraph comme tools pour Claude, ChatGPT et tout client MCP compatible.
Permet aux journalistes, chercheurs et citoyens de requêter les données politiques françaises en langage naturel.
Utilisation rapide
Serveur distant (aucune installation)
Le serveur est déployé sur Vercel et accessible directement :
https://poligraph-mcp.vercel.app/mcp
Claude Desktop
Ajoutez dans votre fichier claude_desktop_config.json :
{
"mcpServers": {
"poligraph": {
"type": "streamable-http",
"url": "https://poligraph-mcp.vercel.app/mcp"
}
}
}
Claude Code
claude mcp add poligraph --transport http https://poligraph-mcp.vercel.app/mcp
ChatGPT Apps
Le serveur est compatible avec ChatGPT Apps via le protocole MCP.
Créer un connector ChatGPT :
- Allez sur platform.openai.com > Actions > Create new action
- Sélectionnez MCP Server comme type de connector
- Entrez l'URL du serveur :
https://poligraph-mcp.vercel.app/mcp - Les 18 tools seront automatiquement détectés
- Publiez l'action dans votre GPT ou App
Fonctionnalités ChatGPT :
annotations: tous les tools sont marquésreadOnlyHint: true(lecture seule)_metaOpenAI : messages de statut pendant l'invocation (ex: "Recherche de politiciens...")structuredContent: données JSON structurées en plus du texte markdown
Installation locale (stdio)
git clone https://github.com/ironlam/poligraph-mcp.git
cd poligraph-mcp
npm install
npm run build
Ajoutez dans la configuration de votre client MCP :
{
"mcpServers": {
"poligraph": {
"command": "node",
"args": ["/chemin/absolu/vers/poligraph-mcp/build/index.js"]
}
}
}
Emplacement du fichier de config Claude Desktop :
- macOS :
~/Library/Application Support/Claude/claude_desktop_config.json - Windows :
%APPDATA%\Claude\claude_desktop_config.json - Linux :
~/.config/Claude/claude_desktop_config.json
Tools disponibles (18)
Politiciens
| Tool | Description |
|---|---|
search_politicians |
Rechercher des politiciens par nom, parti ou type de mandat |
get_politician |
Fiche complète : mandats, déclarations de patrimoine, affaires |
get_politician_relations |
Relations : même parti, gouvernement, législature, département |
Affaires judiciaires
| Tool | Description |
|---|---|
list_affairs |
Liste des affaires judiciaires avec filtres (statut, catégorie) |
get_politician_affairs |
Affaires judiciaires d'un politicien avec sources et détails |
Votes parlementaires
| Tool | Description |
|---|---|
list_votes |
Scrutins parlementaires (Assemblée nationale et Sénat) |
get_politician_votes |
Votes d'un parlementaire avec statistiques de participation |
get_vote_stats |
Statistiques de vote par parti : cohésion, scrutins divisifs |
Mandats
| Tool | Description |
|---|---|
list_mandates |
Liste des mandats politiques (type, institution, statut actif/terminé) |
Partis politiques
| Tool | Description |
|---|---|
list_parties |
Liste des partis avec filtres (position, statut actif/dissous) |
get_party |
Fiche complète : membres, filiation, position politique |
Fact-checks
| Tool | Description |
|---|---|
list_factchecks |
Fact-checks (AFP Factuel, Les Décodeurs, etc.) |
get_politician_factchecks |
Fact-checks mentionnant un politicien spécifique |
Elections
| Tool | Description |
|---|---|
list_elections |
Elections françaises avec filtres (type, statut, année) |
get_election |
Détail : candidatures, résultats, participation |
Géographie
| Tool | Description |
|---|---|
get_department_stats |
Statistiques par département : élus, parti dominant, répartition |
get_deputies_by_department |
Députés en exercice dans un département donné |
Recherche
| Tool | Description |
|---|---|
search_advanced |
Recherche avancée avec filtres combinés (département, statut, etc.) |
Architecture
src/
├── index.ts # Point d'entrée CLI (transport stdio)
├── server.ts # Factory MCP server & enregistrement des tools
├── http.ts # Serveur Express (transport HTTP Streamable)
├── api.ts # Client API (https://poligraph.fr)
├── tools/
│ ├── politicians.ts
│ ├── affairs.ts
│ ├── votes.ts
│ ├── legislation.ts
│ ├── factchecks.ts
│ ├── parties.ts
│ ├── elections.ts
│ ├── mandates.ts
│ └── departments.ts
└── tests/
└── api-contract.test.ts
api/
└── mcp.ts # Handler Vercel (serverless)
Transports supportés :
- stdio — Claude Desktop / Claude Code en local
- HTTP Streamable — serveur Express ou Vercel, compatible ChatGPT Actions
Développement
npm run dev # Compilation en mode watch
npm run build # Build production
npm run start:http # Serveur HTTP local (port 3001)
npm run inspect # Tester interactivement avec MCP Inspector
npm run test:build # Build + tests de contrat API
Source des données
Toutes les données proviennent de sources officielles :
Voir poligraph.fr/sources pour la liste complète.
Périmètre des affaires judiciaires
Les outils list_affairs, get_politician_affairs et les compteurs affairsCount
n'exposent que les affaires publiées après validation éditoriale humaine sur
poligraph.fr. Les brouillons, affaires archivées, exclues ou rejetées ne sont
jamais retournés, ni directement ni via les agrégats. Le serveur MCP consomme
exclusivement l'API publique : il hérite de ses filtres et n'y ajoute aucune
donnée.
Le compteur affairsCount recense toutes les implications publiées (mis en cause, mentionné, victime, plaignant) ; la liste get_politician_affairs filtre par défaut sur les mises en cause directes (involvement=DIRECT).
Outre affairsCount (legacy, tous rôles confondus), la fiche politicien expose
des compteurs par rôle : adverseAffairsCount (mis en cause, procédures
validées par un juge), affairsMentionedCount (simple mention),
affairsVictimOrPlaintiffCount (victime ou plaignant) et favorableOutcomeCount
(issues closes sans condamnation : relaxe, acquittement, non-lieu, classement,
prescription).
Licence
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.