FactCheck MCP Toolkit
MCP server for automatic fact-checking of political claims by querying official statistical APIs (INSEE, Eurostat, World Bank, OECD) and providing tools for data retrieval, comparison, and cherry-picking detection.
README
FactCheck MCP Toolkit
Serveur MCP pour la verification automatisee de declarations politiques chiffrees, connecte aux APIs statistiques institutionnelles.
Le LLM compatible MCP (ex: Claude Desktop) utilise les outils exposes par ce serveur pour verifier des affirmations factuelles contre les donnees officielles de l'INSEE, Eurostat, la Banque mondiale et l'OCDE.
Fonctionnalites
- Resolution d'indicateurs — Traduit les termes courants du debat politique ("chomage", "dette publique", "inflation") vers les codes d'indicateurs officiels via une ontologie de 30 entrees avec regles de desambiguisation
- Donnees INSEE — Recherche, metadonnees et series temporelles depuis le BDM (Banque de donnees macroeconomiques) via pynsee
- Comparaisons internationales — Donnees Eurostat (UE27), Banque mondiale (217 pays) et OCDE, avec classements par pays
- Fact-checks existants — Recherche dans les bases Google Fact Check Tools et scoring de check-worthiness via ClaimBuster
- Detection de cherry-picking — Analyse de robustesse temporelle par perturbation des bornes de dates, avec score de robustesse 0-1
- Comparaison de valeurs — Ecart absolu/relatif entre valeur declaree et valeur reelle, avec qualification indicative (negligeable/significatif/majeur)
- Cache persistant — diskcache avec TTL par source (24h INSEE, 12h Eurostat, 7j Banque mondiale, 1h Google FC)
Outils MCP exposes (18)
| Module | Outils | Description |
|---|---|---|
resolver |
resolve_indicator |
Resolution de termes vers codes indicateurs |
insee |
insee_search_indicators, insee_get_indicator_metadata, insee_get_data, insee_search_geography |
Donnees macroeconomiques francaises |
eurostat |
eurostat_search_datasets, eurostat_get_data, eurostat_get_ranking, eurostat_get_dataset_structure |
Donnees europeennes comparatives |
worldbank |
worldbank_search_indicators, worldbank_get_data, worldbank_get_country_ranking |
Donnees mondiales |
oecd |
oecd_search_datasets, oecd_get_data |
Donnees OCDE via SDMX |
factcheck |
lookup_existing_factchecks, score_check_worthiness |
Fact-checks existants + scoring |
cherry_picking |
analyze_cherry_picking |
Detection de cherry-picking temporel |
compare |
compare_values |
Comparaison valeur declaree vs reelle |
Prerequis
- Python 3.12+
- uv (gestionnaire de paquets)
- Cles API (optionnelles) : Google Fact Check (Google Cloud Console), ClaimBuster (idir.uta.edu)
Aucune cle API necessaire pour : INSEE BDM, Eurostat, Banque mondiale, OCDE (gratuits et ouverts).
Installation
git clone <repo-url>
cd factcheck-mcp
uv sync
Configuration
Creer un fichier .env a la racine du projet :
GOOGLE_FACTCHECK_API_KEY=votre_cle_google
CLAIMBUSTER_API_KEY=votre_cle_claimbuster
FACTCHECK_CACHE_DIR=~/.cache/factcheck-mcp
Les outils fonctionnent sans cles API (les fonctions Google FC et ClaimBuster retournent des listes vides au lieu de planter).
Integration Claude Desktop
Ajouter dans ~/.config/claude/claude_desktop_config.json :
{
"mcpServers": {
"factcheck": {
"command": "uv",
"args": ["run", "--directory", "/chemin/vers/factcheck-mcp", "factcheck-mcp"],
"env": {
"GOOGLE_FACTCHECK_API_KEY": "votre_cle",
"CLAIMBUSTER_API_KEY": "votre_cle"
}
}
}
}
Verification
Depuis Claude Desktop, demander :
"Le chomage en France a baisse de 2 points depuis 2020, verifie cette affirmation."
Le LLM invoquera les outils MCP pour :
- Chercher des fact-checks existants
- Resoudre "chomage" vers le taux de chomage BIT de l'INSEE
- Recuperer les donnees reelles
- Comparer et produire un rapport avec sources
Developpement
# Lancer les tests unitaires (152 tests)
uv run pytest
# Lancer les tests en mode verbose
uv run pytest -v
# Lancer les tests d'integration (APIs reelles, necessite reseau)
uv run pytest -m integration
# Lancer le serveur en mode standalone (debug)
uv run factcheck-mcp
# Lint et formatage
uv run ruff check src/ tests/
uv run ruff format src/ tests/
Architecture
src/factcheck_mcp/
├── server.py # Serveur FastMCP, enregistrement des 18 outils
├── tools/ # Implementations MCP (un module par source)
│ ├── resolver.py # Resolution d'indicateurs via ontologie YAML
│ ├── insee.py # 4 outils INSEE (pynsee)
│ ├── eurostat.py # 4 outils Eurostat
│ ├── worldbank.py # 3 outils Banque mondiale (wbgapi)
│ ├── oecd.py # 2 outils OCDE (sdmx1)
│ ├── factcheck.py # Google Fact Check + ClaimBuster (httpx)
│ ├── cherry_picking.py # Analyse de robustesse temporelle
│ └── compare.py # Comparaison de valeurs avec qualification
├── core/ # Infrastructure partagee
│ ├── models.py # 12 modeles Pydantic
│ ├── cache.py # Cache diskcache avec TTL par source
│ ├── config.py # Configuration pydantic-settings
│ ├── errors.py # 6 exceptions metier
│ └── retry.py # Backoff exponentiel pour rate-limiting
└── ontology/ # Donnees statiques
├── indicators.yaml # 30 indicateurs politiques -> codes sources
└── geographies.yaml # Noms geographiques -> codes INSEE/ISO
Principes de conception
- Serveur unique — Un seul processus MCP expose tous les outils
- Verdict LLM-assiste — Le serveur fournit donnees brutes + metriques, le LLM formule le verdict
- Fonctions synchrones — fastmcp les execute automatiquement dans un threadpool
- Degradation gracieuse — Cles API manquantes ou APIs indisponibles ne font pas planter le serveur
- Zero cout — Toutes les APIs utilisees sont gratuites
Licence
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。