FEC Checker (French accounting file pre-audit)
RemoteAbout FEC Checker (French accounting file pre-audit)
FEC Checker combines the local `fec-lint` structural validator for French accounting files with a hosted, paid pre-audit service. It is for businesses and accounting professionals who need to check FEC exports; the local tool reports format issues, while the hosted service adds balance, numbering, and risk checks.
Key features
- 01Validate FEC structure and required fields
- 02Check file name, encoding, and separator
- 03Report date and amount format errors
- 04Process a single-file ZIP archive
- 05Hosted checks for balance, numbering, and risk signals
- 06JSON output for validation results
Use cases
- 01Check an exported FEC before review
- 02Find structural errors in one or more files
- 03Run local checks without sending data away
- 04Request a hosted pre-audit for accounting risks
MCP support
The local MCP server exposes `lint_fec(path)` for checking a local file and returning JSON. A separate hosted MCP service on Apify provides the full pre-audit.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://mcp.apify.com/?tools=highfiddle/fec-checkerclaude mcp add --transport http vincenz-cdf-fec-lint https://mcp.apify.com/?tools=highfiddle/fec-checker{"mcpServers":{"vincenz-cdf-fec-lint":{"type":"http","url":"https://mcp.apify.com/?tools=highfiddle/fec-checker"}}}Open in Cursor{"servers":{"vincenz-cdf-fec-lint":{"type":"http","url":"https://mcp.apify.com/?tools=highfiddle/fec-checker"}}}Open in VS Code{"mcpServers":{"vincenz-cdf-fec-lint":{"type":"http","url":"https://mcp.apify.com/?tools=highfiddle/fec-checker"}}}{"mcpServers":{"vincenz-cdf-fec-lint":{"serverUrl":"https://mcp.apify.com/?tools=highfiddle/fec-checker"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
Details
From the project READMEfec-lint
Technical check, not tax advice. fec-lint checks the structure of a file against the published FEC format. It does not certify a file or replace an accountant's review.
Contrôle technique, pas un conseil fiscal. fec-lint vérifie la structure d'un fichier au regard du format FEC publié. Il ne certifie pas un fichier et ne remplace pas la revue d'un expert-comptable.
English
Free structural linter for French FEC files (Fichier des Écritures Comptables, art. A47 A-1 LPF), as a command line tool and an MCP server.
What file does it check?
The FEC your accounting software exports (look for "FEC" or "Export DGFiP" in its year-end menu); you don't build it by hand. It is a text file named SIRENFECAAAAMMJJ.txt (SIREN, FEC, closing date), tab- or pipe-separated, with this header and one line per accounting line:
JournalCode|JournalLib|EcritureNum|EcritureDate|CompteNum|CompteLib|CompAuxNum|CompAuxLib|PieceRef|PieceDate|EcritureLib|Debit|Credit|EcritureLet|DateLet|ValidDate|Montantdevise|Idevise
VE|Ventes|000039|20250610|411000|Clients|CLI001|Atelier Durand|F2025-06|20250610|Facture F2025-06 Atelier Durand|3960,00|0,00|||20250610||
Dates are AAAAMMJJ; amounts use a decimal comma and no thousands separator. CompAuxNum/CompAuxLib, EcritureLet/DateLet and Montantdevise/Idevise may be empty, but only in pairs; every other field is required. The FEC Checker page has the full column-by-column table. Synthetic examples are in tests/fixtures/.
Install
pipx install fec-lint
Command line
fec-lint 123456782FEC20251231.txt
123456782FEC20251231.txt: FAILED (encoding utf-8, separator pipe, lines 214)
error date_invalid x3: Non-existent date in EcritureDate. - line(s) 21, 22, 23
error date_format x3: Wrong date format in EcritureDate (expected AAAAMMJJ). - line(s) 64, 65, 66
Structure has errors. Full pre-audit (balance, numbering, risk signals): https://apify.com/highfiddle/fec-checker
--jsonprints the full result:{ok, file, errors[], warnings[], stats}.--name 123456782FEC20251231.txtsets the name checked againstSIRENFECAAAAMMJJ.txt.--quiethides the last line.- Exit code:
0when the structure is OK,1on errors,2when a file cannot be read. Several files can be given at once. - A
.zipholding exactly one.txtFEC is unpacked first.
MCP server
Add it to your MCP client (Claude Desktop, Claude Code, Cursor…):
{
"mcpServers": {
"fec-lint": {
"command": "uvx",
"args": ["--from", "fec-lint", "fec-lint-mcp"]
}
}
}
Without uv, install with pipx install fec-lint and use "command": "fec-lint-mcp". The server exposes one tool, lint_fec(path), which takes a local file path and returns the same JSON as --json.
Full pre-audit as a hosted MCP server. The paid FEC Checker (balance, numbering, risk signals, AI fix list) runs on Apify and is reachable over MCP. Users sign in with Apify OAuth; agents can pay with x402 by adding &payment=x402:
claude mcp add --transport http fec-checker "https://mcp.apify.com/?tools=highfiddle/fec-checker"
Free vs full pre-audit
| Check | fec-lint (free) | FEC Checker on Apify |
|---|---|---|
File name SIRENFECAAAAMMJJ.txt, SIREN key | ✅ | ✅ |
| Encoding, separator, 18 headers | ✅ | ✅ |
| Field formats: dates, amounts, mandatory fields, pairs | ✅ | ✅ |
| Balance per entry and for the whole file | — | ✅ |
| EcritureNum gaps and duplicates, ValidDate chronology | — | ✅ |
| Risk signals: weekends, holidays, round amounts, Benford, cash 53x, suspense 471, after year end | — | ✅ |
| Verdict, 0-100 score, AI-written fix list (FR/EN) | — | ✅ |
| Runs | locally, nothing leaves your machine | on Apify, pay per file |
Français
Linter structurel gratuit pour les FEC (Fichier des Écritures Comptables, art. A47 A-1 LPF), en ligne de commande et en serveur MCP.
Quel fichier contrôle-t-il ?
Le FEC exporté par votre logiciel comptable (cherchez « FEC » ou « Export DGFiP » dans le menu de clôture) ; vous ne le construisez pas à la main. C'est un fichier texte nommé SIRENFECAAAAMMJJ.txt (SIREN, FEC, date de clôture), séparé par tabulations ou barres verticales, avec l'en-tête et le type de ligne montrés plus haut.
Les dates sont au format AAAAMMJJ ; les montants utilisent la virgule décimale, sans séparateur de milliers. CompAuxNum/CompAuxLib, EcritureLet/DateLet et Montantdevise/Idevise peuvent être vides, mais seulement par paires ; tous les autres champs sont obligatoires. La page FEC Checker détaille chaque colonne. Des exemples fictifs sont dans tests/fixtures/.
Installation
pipx install fec-lint
Ligne de commande
fec-lint 123456782FEC20251231.txt
--jsonaffiche le résultat complet :{ok, file, errors[], warnings[], stats}.--name 123456782FEC20251231.txtindique le nom à contrôler selonSIRENFECAAAAMMJJ.txt.--quietmasque la dernière ligne.- Code de sortie :
0si la structure est correcte,1en cas d'erreur,2si un fichier est illisible. Plusieurs fichiers peuvent être passés à la fois. - Un
.zipcontenant un seul FEC.txtest décompressé d'abord.
Les messages sont en anglais ; les codes de règle (date_invalid, header_missing…) sont stables.
Serveur MCP
Ajoutez-le à votre client MCP (Claude Desktop, Claude Code, Cursor…) avec la configuration ci-dessus. L'outil lint_fec(path) prend le chemin d'un fichier local et renvoie le même JSON que --json.
Pré-audit complet en serveur MCP hébergé. Le FEC Checker payant (équilibre, numérotation, signaux de risque, plan de correction IA) tourne sur Apify et s'utilise en MCP via https://mcp.apify.com/?tools=highfiddle/fec-checker (connexion Apify OAuth ; les agents peuvent payer en x402 avec &payment=x402).
Gratuit ou pré-audit complet
| Contrôle | fec-lint (gratuit) | FEC Checker sur Apify |
|---|---|---|
Nom SIRENFECAAAAMMJJ.txt, clé du SIREN | ✅ | ✅ |
| Encodage, séparateur, 18 colonnes | ✅ | ✅ |
| Formats : dates, montants, champs obligatoires, couples de champs | ✅ | ✅ |
| Équilibre par écriture et du fichier | — | ✅ |
| Ruptures et doublons d'EcritureNum, chronologie de ValidDate | — | ✅ |
| Signaux de risque : week-ends, jours fériés, montants ronds, Benford, caisse 53x, attente 471, après clôture | — | ✅ |
| Verdict, score 0-100, plan de correction rédigé par IA (FR/EN) | — | ✅ |
| Exécution | en local, rien ne quitte votre machine | sur Apify, paiement par fichier |
Development
python -m venv .venv
.venv/bin/pip install -e ".[test]" # Windows: .venv\Scripts\pip
pytest
The fixtures in tests/fixtures/ are synthetic FEC files (fictitious SIREN 123456782). MIT license.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.