irpp-mcp
🧮 irpp-mcp — Официальный симулятор IRPP от DGFiP
Python-сервер MCP, который рассчитывает французский подоходный налог на основе официального исходного кода DGFiP, скомпилированного через Mlang (OCamlPro/DGFiP). 100% локальный расчет, ноль сетевых вызовов.
Охватываемые доходы: 2023 (декларация 2024). См. Ограничения.
Архитектура
Sources DGFiP (langage M) → Mlang (OCamlPro/DGFiP) → C (~55 Mo) → irpp_calc
↓
irpp_mcp.py (MCP)
↓
Claude CodeRelated MCP server: itr-mcp
Ожидаемая структура каталогов
Перед началом создайте рабочую директорию. В конце установки структура будет выглядеть так:
~/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.pyНачните с клонирования этого репозитория:
mkdir ~/impots && cd ~/impots
git clone https://github.com/erwanpaccard/irpp-mcp.gitБыстрая установка (прекомпилированный бинарный файл)
Если вы используете Linux x86-64 или WSL (Ubuntu 22.04+), вы можете пропустить шаги 1–4 и загрузить прекомпилированный бинарный файл напрямую:
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, ...}Затем переходите сразу к шагу 5.
Полная установка (компиляция из исходников)
Предварительные требования
WSL (рекомендуется Ubuntu 22.04) — необходимо для компиляции и запуска бинарного файла Linux
Python 3.11+ с
pipgcc,make,git,opam,unzip
Шаг 1 — Исходники DGFiP (язык M)
Официальный налоговый код публикуется DGFiP на Adullact под лицензией CeCILL 2.1. Учетная запись не требуется.
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.zipПолезная папка: calculette-ir-master/sources2023m_8_0/
Шаг 2 — Компиляция Mlang (~15 мин)
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 buildПолученный бинарный файл: mlang-src/_build/default/src/main.exe
Шаг 3 — Генерация C-файлов из исходников M
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.mдолжен быть передан первым — он объявляет приложениеiliad.
Результат: ~55 МБ C-файлов в ~/impots/output/.
Шаг 4 — Компиляция бинарного файла
irpp_driver.c и Makefile уже находятся в output/ (предоставлены этим репозиторием). Скопируйте из репозитория:
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_driverТест:
printf "V_0AC=1\nTSHALLOV=50000.00\n" | ./irpp_calc
# → {"IINET": 6786.00, "NBPT": 1.00, "RNI": 45000.00, ...}Шаг 5 — Установка сервера MCP
pip install mcp pydanticУбедитесь, что BINARY_PATH в irpp_mcp.py указывает на скомпилированный бинарный файл. По умолчанию:
BINARY_PATH = Path(__file__).parent.parent / "output" / "irpp_calc"
# → ~/impots/output/irpp_calc ✓ si vous avez suivi l'arborescence ci-dessusШаг 6 — Настройка Claude Code
Создайте .mcp.json в корне проекта Claude Code:
{
"mcpServers": {
"irpp-mcp": {
"command": "python3",
"args": ["/home/user/impots/irpp-mcp/irpp_mcp.py"]
}
}
}В Windows (вызов через WSL):
{
"mcpServers": {
"irpp-mcp": {
"command": "wsl",
"args": ["-e", "python3", "/mnt/c/Users/vous/impots/irpp-mcp/irpp_mcp.py"]
}
}
}Адаптируйте путь к вашей структуре каталогов. Узнать путь к Python:
which python3в WSL.
Использование
Инструмент MCP irpp_calculer_ir принимает параметры формы 2042:
Параметр | Поле 2042 | Описание |
| — |
|
| 1AJ | Чистая налогооблагаемая зарплата декларанта 1 |
| 1BJ | Чистая налогооблагаемая зарплата декларанта 2 |
| 1AS | Пенсии, пособия, ренты декларанта 1 |
| 1BS | Пенсии, пособия, ренты декларанта 2 |
| 5QC | BNC профессиональный (обычный режим) |
| 4BE | Micro-foncier валовая выручка |
| 2DC | Дивиденды (льгота 40%) |
| 3VG | Прирост капитала от движимого имущества |
| 0CF | Несовершеннолетние дети на иждивении |
| 0CH | Дети при совместной опеке |
| 6NS | Вычитаемые взносы PER декларанта 1 |
| 6NT | Вычитаемые взносы PER декларанта 2 |
| 6GI | Алименты, выплаченные совершеннолетнему ребенку |
| 4BA | Чистый доход от недвижимости (реальный режим) |
| — | Год рождения декларанта 1 |
| — |
|
Возвращаемые переменные: IINET (чистый налог), NBPT (части), RNI (чистый налогооблагаемый доход), REVKIRE (справочный налоговый доход), IRNET, IAVIM, IRTOTAL.
Использование с навыком impots
Навык erwanpaccard/impots автоматически обнаруживает этот сервер MCP и использует его для моделирования IR — расчеты тогда опираются на официальный движок DGFiP, а не на оценки LLM.
Ограничения
Только доходы за 2023 год: исходники 2024 года (
sources2024m_3_13) несовместимы с текущей версией Mlang (переменнаяGLOBAL.REPRCMне разрешена в контекстеcorrectif).micro_bnc_declarant1(поле 5TE): правильно рассчитываетREVKIRE, но даетIINET=0. Обходной путь: передать выручку × 66% вbnc_declarant1(5QC).Только бинарный файл Linux: в Windows вызов автоматически проходит через WSL.
Источники и лицензии
Компонент | Источник | Лицензия |
Исходники DGFiP (доходы 2023) | CeCILL 2.1 | |
Компилятор Mlang | GPL-3.0 | |
| Этот репозиторий | MIT |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
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.
Calcul fiscal et retraite français, déterministe et sourcé. Aucun conseil.
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
- AlicenseAqualityFmaintenanceA local MCP server that enables Claude to answer Norwegian tax questions with actual calculations, covering income, wealth, stocks, funds, real estate, crypto, and more.6121MIT
- 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.129 npm10MIT
- FlicenseAqualityDmaintenanceMCP 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 gradedqualityDmaintenanceA 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.63 PyPIMIT