irpp-mcp
🧮 irpp-mcp — Offizieller DGFiP IRPP-Simulator
Ein Python-MCP-Server, der die französische Einkommensteuer auf Basis des offiziellen DGFiP-Quellcodes berechnet, kompiliert über Mlang (OCamlPro/DGFiP). 100 % lokale Berechnung, null Netzwerkaufrufe.
Abgedeckte Einkünfte: 2023 (Steuererklärung 2024). Siehe Einschränkungen.
Architektur
Sources DGFiP (langage M) → Mlang (OCamlPro/DGFiP) → C (~55 Mo) → irpp_calc
↓
irpp_mcp.py (MCP)
↓
Claude CodeRelated MCP server: itr-mcp
Erwartete Verzeichnisstruktur
Erstellen Sie vor Beginn ein Arbeitsverzeichnis. Am Ende der Installation sieht die Struktur wie folgt aus:
~/impots/
├── calculette-ir-master/ ← sources DGFiP téléchargées (étape 1)
│ └── sources2023m_8_0/
├── mlang-src/ ← compilateur Mlang cloné (étape 2)
│ ├── _build/default/src/main.exe
│ ├── m_ext/2023/
│ └── examples/dgfip_c/ml_primitif/c_driver/
│ └── irdata.c
├── output/ ← C générés (étape 3) + binaire (étape 4)
│ ├── irpp_driver.c ← fourni dans ce repo
│ ├── Makefile ← fourni dans ce repo
│ └── irpp_calc ← binaire compilé
└── irpp-mcp/ ← ce repo (cloné en premier)
└── irpp_mcp.pyBeginnen Sie mit dem Klonen dieses Repos:
mkdir ~/impots && cd ~/impots
git clone https://github.com/erwanpaccard/irpp-mcp.gitSchnellinstallation (vorkompiliertes Binärprogramm)
Wenn Sie Linux x86-64 oder WSL (Ubuntu 22.04+) verwenden, können Sie die Schritte 1 bis 4 überspringen und das vorkompilierte Binärprogramm direkt herunterladen:
mkdir -p ~/impots/output
wget https://github.com/erwanpaccard/irpp-mcp/releases/download/v1.0.0/irpp_calc \
-O ~/impots/output/irpp_calc
chmod +x ~/impots/output/irpp_calc
# Tester
printf "V_0AC=1\nTSHALLOV=50000.00\n" | ~/impots/output/irpp_calc
# → {"IINET": 6786.00, "NBPT": 1.00, "RNI": 45000.00, ...}Fahren Sie dann direkt mit Schritt 5 fort.
Vollständige Installation (Kompilierung aus den Quellen)
Voraussetzungen
WSL (Ubuntu 22.04 empfohlen) — erforderlich, um das Linux-Binärprogramm zu kompilieren und auszuführen
Python 3.11+ mit
pipgcc,make,git,opam,unzip
Schritt 1 — DGFiP-Quellen (M-Sprache)
Der offizielle Steuer-Code wird von der DGFiP auf Adullact unter der CeCILL 2.1-Lizenz veröffentlicht. Kein Konto erforderlich.
cd ~/impots
curl -L "https://gitlab.adullact.net/dgfip/impots-nationaux-revenu-patrimoine-particuliers/calculette-ir/-/archive/master/calculette-ir-master.zip" \
-o calculette-ir-master.zip
unzip calculette-ir-master.zipNützlicher Ordner: calculette-ir-master/sources2023m_8_0/
Schritt 2 — Mlang kompilieren (~15 Min.)
cd ~/impots
sudo apt install libgmp-dev libmpfr-dev git opam bubblewrap unzip bzip2 patch
git clone https://gitlab.adullact.net/dgfip/impots-nationaux-revenu-patrimoine-particuliers/Mlang.git mlang-src
cd mlang-src
# Correctif obligatoire (version non substituée dans les fichiers opam)
sed -i 's/%%VERSION%%/0.0.1/g' mlang.opam irj_checker.opam
OPAMYES=1 make init
make buildErzeugtes Binärprogramm: mlang-src/_build/default/src/main.exe
Schritt 3 — C-Dateien aus den M-Quellen generieren
cd ~/impots/mlang-src
eval $(opam env --switch=$(pwd) --set-switch)
./_build/default/src/main.exe \
-A iliad \
--display_time \
--precision double \
--mpp_function=enchainement_primitif \
--income-year=2023 \
--dgfip_options=-g,-O,-k4,-m2023,-X \
--backend dgfip_c \
--output ../output/irpp_2023.c \
$(find ../calculette-ir-master/sources2023m_8_0 -name 'tgvI.m') \
$(find ../calculette-ir-master/sources2023m_8_0 -name 'errI.m') \
$(find ../calculette-ir-master/sources2023m_8_0 -name '*.m' \
! -name 'err*.m' ! -name 'tgv*.m' ! -name 'cibles.m' | sort) \
m_ext/2023/cibles.m m_ext/2023/codes_1731.m m_ext/2023/commence_par_5.m \
m_ext/2023/commence_par_7.m m_ext/2023/commence_par_H.m \
m_ext/2023/correctif.m m_ext/2023/main.m
tgvI.mmuss zuerst übergeben werden — es deklariert die Anwendungiliad.
Ergebnis: ~55 MB an C-Dateien in ~/impots/output/.
Schritt 4 — Binärprogramm kompilieren
irpp_driver.c und Makefile befinden sich bereits in output/ (bereitgestellt durch dieses Repo). Kopieren Sie diese aus dem Repo:
cp ~/impots/irpp-mcp/output/irpp_driver.c ~/impots/output/
cp ~/impots/irpp-mcp/output/Makefile ~/impots/output/
cd ~/impots/output
make CDRIVER=../mlang-src/examples/dgfip_c/ml_primitif/c_driverTesten:
printf "V_0AC=1\nTSHALLOV=50000.00\n" | ./irpp_calc
# → {"IINET": 6786.00, "NBPT": 1.00, "RNI": 45000.00, ...}Schritt 5 — MCP-Server installieren
pip install mcp pydanticStellen Sie sicher, dass BINARY_PATH in irpp_mcp.py auf das kompilierte Binärprogramm zeigt. Standardmäßig:
BINARY_PATH = Path(__file__).parent.parent / "output" / "irpp_calc"
# → ~/impots/output/irpp_calc ✓ si vous avez suivi l'arborescence ci-dessusSchritt 6 — Claude Code konfigurieren
Erstellen Sie .mcp.json im Stammverzeichnis des Claude Code-Projekts:
{
"mcpServers": {
"irpp-mcp": {
"command": "python3",
"args": ["/home/user/impots/irpp-mcp/irpp_mcp.py"]
}
}
}Unter Windows (Aufruf über WSL):
{
"mcpServers": {
"irpp-mcp": {
"command": "wsl",
"args": ["-e", "python3", "/mnt/c/Users/vous/impots/irpp-mcp/irpp_mcp.py"]
}
}
}Passen Sie den Pfad an Ihre Verzeichnisstruktur an. Finden Sie den Python-Pfad:
which python3in WSL.
Verwendung
Das MCP-Tool irpp_calculer_ir akzeptiert die Parameter des Formulars 2042:
Parameter | Feld 2042 | Beschreibung |
| — |
|
| 1AJ | Steuerpflichtige Nettolöhne Steuerpflichtiger 1 |
| 1BJ | Steuerpflichtige Nettolöhne Steuerpflichtiger 2 |
| 1AS | Renten, Pensionen, Annuitäten Steuerpflichtiger 1 |
| 1BS | Renten, Pensionen, Annuitäten Steuerpflichtiger 2 |
| 5QC | BNC (nicht-kommerzielle Einkünfte) professionell, normales System |
| 4BE | Micro-foncier Bruttoeinnahmen |
| 2DC | Dividenden (40 % Freibetrag) |
| 3VG | Kapitalgewinne aus beweglichem Vermögen |
| 0CF | Unterhaltsberechtigte minderjährige Kinder |
| 0CH | Kinder bei alternierendem Wohnsitz |
| 6NS | Abzugsfähige PER-Beiträge Steuerpflichtiger 1 |
| 6NT | Abzugsfähige PER-Beiträge Steuerpflichtiger 2 |
| 6GI | An volljähriges Kind gezahlte Unterhaltszahlung |
| 4BA | Netto-Immobilieneinkünfte, reales System |
| — | Geburtsjahr Steuerpflichtiger 1 |
| — |
|
Zurückgegebene Variablen: IINET (Netto-Steuer), NBPT (Anteile), RNI (steuerpflichtiges Nettoeinkommen), REVKIRE (Referenz-Steuereinkommen), IRNET, IAVIM, IRTOTAL.
Verwendung mit dem Impôts-Skill
Der Skill erwanpaccard/impots erkennt diesen MCP-Server automatisch und verwendet ihn für IR-Simulationen — die Berechnungen basieren dann auf der offiziellen DGFiP-Engine anstelle von LLM-Schätzungen.
Einschränkungen
Nur Einkommen 2023: Die Quellen 2024 (
sources2024m_3_13) sind mit der aktuellen Version von Mlang inkompatibel (VariableGLOBAL.REPRCMim Kontextcorrectifnicht aufgelöst).micro_bnc_declarant1(Feld 5TE): BerechnetREVKIREkorrekt, ergibt aberIINET=0. Workaround: Einnahmen × 66 % inbnc_declarant1(5QC) eingeben.Nur Linux-Binärprogramm: Unter Windows erfolgt der Aufruf automatisch über WSL.
Quellen und Lizenzen
Komponente | Quelle | Lizenz |
DGFiP-Quellen (Einkommen 2023) | CeCILL 2.1 | |
Mlang-Compiler | GPL-3.0 | |
| Dieses Repository | MIT |
This server cannot be deployed
Maintenance
Related MCP Connectors
The first fiscal MCP server for Spain: IAE/CNAE 2025, AEAT modelos, IRPF/IVA, RETA quota.
TaxSort — Tollbooth-monetized MCP server for personal tax transaction classification
MCP server for Quaderno — tax-rate calculation, invoices, contacts, products, receipts & expenses.
Calcul fiscal (IR, IFI, PER, plus-value) et retraite français — 32 régimes, sourcé et daté.
Related MCP Servers
- AlicenseAqualityCmaintenanceA local MCP server that enables Claude to answer Norwegian tax questions with actual calculations, covering income, wealth, stocks, funds, real estate, crypto, and more.121MIT
- AlicenseAqualityBmaintenanceLocal-first MCP server for Indian income tax computation, enabling users to compute taxes, compare regimes, plan advance tax, and parse Form 26AS without sending data to the cloud.126 npm8MIT
- FlicenseAqualityCmaintenanceMCP server for the Swiss federal tax calculator, providing income, wealth, inheritance, and corporate tax figures for all Swiss municipalities and tax years 2010-2026.132-
- AlicenseNot gradedqualityCmaintenanceA standalone MCP server for Indian personal income-tax work (ITR-1/2/3/4 + post-filing notices) with 8 deterministic tools, running fully offline with no API keys.MIT