urssaf-vigilance-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@urssaf-vigilance-mcp contrôle l'attestation Urssaf dans fournisseur.pdf pour le SIRET 12345678900012"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
urssaf-vigilance-mcp
Serveur MCP pour vérifier les attestations de vigilance Urssaf que vous recevez de vos fournisseurs et sous-traitants, et tenir votre tableau de suivi.
En France, tout donneur d'ordre qui conclut un contrat d'au moins 5 000 € HT doit obtenir de son cocontractant une attestation de vigilance Urssaf à la signature, puis tous les six mois, et en vérifier l'authenticité (art. L.8222-1 et D.8222-5 du Code du travail, L.243-15 du Code de la sécurité sociale). À défaut, il peut être tenu solidairement des cotisations et pénalités du sous-traitant en cas de travail dissimulé.
La vérification se fait normalement à la main sur urssaf.fr, code par code, derrière un captcha. Ce connecteur s'appuie sur l'API officielle de l'Urssaf « Attestations Vérification Code Sécurité », qui rend le même service sans captcha et permet de vérifier jusqu'à 100 attestations en un appel. Il ajoute la lecture du PDF reçu, le rapprochement champ à champ, le calcul de la fin de validité et la mise à jour d'un classeur Excel.
Ce projet n'est pas affilié à l'Urssaf. L'API et ses conditions d'utilisation sont décrites sur le Portail API Urssaf.
Sommaire
Related MCP server: eu-verify
Ce que fait le connecteur
Outil MCP | Rôle |
| Vérifie un code de sécurité (15 caractères) auprès de l'Urssaf. Renvoie un statut normalisé — |
| Même chose pour une liste de codes (lots de 100 par appel API). |
| Extrait les données d'un PDF d'attestation Urssaf (code, SIREN, raison sociale, dates, effectif, masse salariale, SIRET). Sans réseau. |
| Contrôle complet d'une attestation reçue : PDF + API + cohérence champ à champ + cocontractant attendu + fin de validité → verdict |
| Lit le tableau Excel de suivi : lignes, codes uniques, attestations dont l'échéance est dépassée. |
| Vérifie les codes du tableau (non encore vérifiés, ou tous) et, si demandé, écrit le résultat dans la colonne « Vérification ». |
| Crée un classeur de suivi vierge au bon format. |
| Configuration courante, sans secrets. |
Natures d'attestation reconnues : vigilance (AVG_UR, AVG_RSI), mais aussi CSG/CRDS, formation
professionnelle, employeur de personnel de maison, frontalier suisse, chiffre d'affaires micro-entrepreneur,
artistes-auteurs — l'API couvre toutes les attestations à code de sécurité émises par l'Urssaf.
Obtenir ses identifiants API Urssaf
L'API est gratuite et ouverte à toute personne physique ou morale, sous réserve de validation par l'Urssaf (« accès public et libre, tout demandeur est éligible »). Comptez 1 à 2 jours ouvrés.
Créer un compte sur le Portail API Urssaf : https://portailapi.urssaf.fr/fr/inscription (adresse e-mail professionnelle, SIRET de votre organisation).
Souscrire à l'API « Attestations Vérification Code Sécurité » : https://portailapi.urssaf.fr/fr/catalogue-api/prd/avcs/souscription-formulaire. Le formulaire demande l'usage prévu (vérification des attestations de vigilance de vos fournisseurs en tant que donneur d'ordre) et l'acceptation des CGU de l'API.
Recevoir les identifiants. L'équipe « Secteur API » de l'Urssaf Caisse nationale envoie un e-mail avec une archive protégée par mot de passe (le mot de passe arrive dans un second e-mail). Elle contient :
client-idetclient-secret(UUID) ;le scope :
attn.codes_securite;l'URL d'obtention du jeton :
https://api.urssaf.fr/api/oauth/v1/token;l'hôte des ressources :
https://api.urssaf.fr. Un accès dit « sandbox » (api-edi.urssaf.fr) peut être fourni avant la production.
Renseigner
URSSAF_CLIENT_IDetURSSAF_CLIENT_SECRETdans la configuration du serveur (ci-dessous), avecURSSAF_ENV=production.
Support : questions techniques via le centre de services ACOSS (JIRA), autres questions via le formulaire du portail. Documentation technique de l'API (PDF ACOSS v1.2) et changelog : onglets « Documentation » et « Changelog » de la page de l'API.
Installation
Python 3.11 ou plus récent.
git clone https://github.com/aghulas/urssaf-vigilance-mcp.git
cd urssaf-vigilance-mcp
python3 -m venv .venv
.venv/bin/pip install -e .Le paquet installe la commande urssaf-vigilance-mcp (serveur MCP sur stdio).
Sans identifiants, vous pouvez tester le connecteur en mode simulé : URSSAF_MOCK=1. Les codes
MOCKVALIDE00001, MOCKPERIMEE0001, MOCKMANQUANT001 renvoient respectivement une attestation valide,
périmée et incomplète ; tout autre code est inconnu.
Configuration
Toute la configuration passe par des variables d'environnement — aucun secret dans un fichier versionné.
Variable | Rôle |
| Identifiants OAuth2 reçus de l'Urssaf. |
|
|
|
|
|
|
| Chemin du classeur Excel de suivi utilisé par défaut par |
| Nom de la feuille ; sinon la première feuille contenant les en-têtes attendus est utilisée. |
|
|
| Délai HTTP en secondes (30). |
Le jeton OAuth2 (client_credentials, validité 1 h) est mis en cache et renouvelé automatiquement deux minutes avant expiration, conformément aux recommandations du portail.
Claude Desktop
Dans claude_desktop_config.json (macOS : ~/Library/Application Support/Claude/, Windows :
%APPDATA%\Claude\), ajoutez :
"urssaf-vigilance": {
"command": "/chemin/vers/urssaf-vigilance-mcp/.venv/bin/urssaf-vigilance-mcp",
"env": {
"URSSAF_ENV": "production",
"URSSAF_CLIENT_ID": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"URSSAF_CLIENT_SECRET": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"URSSAF_FICHIER_SUIVI": "/chemin/vers/Suivi des attestations.xlsx",
"URSSAF_ECRITURE": "1"
}
}Sous Windows, remplacez command par C:\\chemin\\vers\\.venv\\Scripts\\urssaf-vigilance-mcp.exe. Redémarrez
Claude Desktop après modification.
Autres clients MCP
Tout client compatible MCP (Claude Code, Cursor, etc.) peut lancer urssaf-vigilance-mcp sur stdio avec les mêmes
variables d'environnement. Exemple en ligne de commande :
URSSAF_MOCK=1 .venv/bin/urssaf-vigilance-mcpTableau de suivi Excel
Le connecteur lit et met à jour un classeur Excel ordinaire — le vôtre, ou celui que crée suivi_creer_modele.
Il ne dépend pas des lettres de colonnes mais des en-têtes (recherche insensible à la casse et aux retours à
la ligne), ce qui permet d'ajouter vos propres colonnes (assurances, PPSPS, contacts…). Colonnes reconnues :
En-tête (motif) | Usage |
| Libre (chantier, marché, service). |
| Libre ; une ligne sans Lot ou sans Entreprise est ignorée (notes de bas de tableau). |
| Obligatoire. |
| Date de l'attestation. |
| Fin de validité (mise à jour quand l'Urssaf signale une attestation périmée). |
| Libre. |
| Obligatoire : le code à 15 caractères. Une entreprise présente sur plusieurs lots partage son code ; il n'est vérifié qu'une fois et le résultat est reporté sur chaque ligne. |
| Obligatoire : le connecteur y écrit « Authentique et valide - SIRET … (vérifié par API Urssaf le JJ/MM/AAAA) », ou la mention périmée / code inconnu, à la suite du texte existant (l'historique est conservé ; une mention « code à vérifier » est retirée). |
Un code est considéré « à vérifier » tant que sa cellule Vérification ne mentionne pas un contrôle effectué.
L'écriture dans le classeur n'a lieu que si l'appel demande ecrire=True et que URSSAF_ECRITURE=1 ; faites
une sauvegarde avant, et fermez le fichier dans Excel (en particulier sur un lecteur synchronisé).
Règles métier
Validité : une attestation de vigilance est valable six mois à compter de la fin de la période analysée (la date « à jour au » du document), pas de sa date d'édition. Le connecteur arrondit à la fin du mois : à jour au 31/08 → échéance 28/02 (29 en année bissextile). L'Urssaf applique la même règle dans ses réponses « attestation périmée depuis le … ». Une alerte est émise à 30 jours de l'échéance.
Un code valide ne suffit pas. Il prouve que le document existe chez l'Urssaf, pas que l'entreprise est votre cocontractant ni que l'établissement qui travaille pour vous est couvert.
controler_attestationvérifie donc aussi : nature = attestation de vigilance ; SIREN et SIRET du PDF égaux à ceux renvoyés par l'Urssaf ; présence dusiret_attendu(celui du devis ou du contrat) dans la liste des établissements.Verdicts : code inconnu, attestation périmée, SIREN différent ou SIRET attendu absent →
REFUS; écarts d'effectif, de masse salariale ou de date de certification, échéance proche →ALERTE; sinonOK.Une attestation sur l'honneur, un quitus d'une plateforme privée ou une capture d'écran ne remplacent pas l'attestation Urssaf. En cas de code inconnu, demandez à l'entreprise le PDF original téléchargé depuis son espace urssaf.fr.
Sécurité et engagements
En souscrivant à l'API, vous acceptez les CGU de l'Urssaf, qui imposent notamment : n'utiliser l'API que pour
vérifier des attestations (jamais pour obtenir des informations sur des comptes cotisants) ; ne divulguer ni
les identifiants ni les données retournées ; signaler toute faille de sécurité à contact.api@urssaf.fr sous
48 heures ; respecter les quotas (HTTP 429 en cas de dépassement). Repli en cas d'indisponibilité : l'outil web
https://www.urssaf.fr/accueil/outils-documentation/outils/verification-attestation.html.
Le connecteur ne stocke rien : pas de base de données, pas de journal des codes vérifiés ; les identifiants ne sont lus que dans l'environnement du processus.
Développement
.venv/bin/pip install -e ".[dev]"
.venv/bin/python -m pytest -q # tests sans réseau (respx)
python tests/fixtures/generer_fixture.py # régénère le PDF d'exemple (données fictives)Le dossier skills/ contient une skill Claude générique décrivant la procédure de vérification d'une attestation
reçue et la revue périodique du tableau ; adaptez-la à votre organisation (dossiers d'archivage, interlocuteurs).
Les contributions sont bienvenues : ouvrez une issue ou une pull request.
Licence
MIT — voir LICENSE.
Available Tools
8 toolscontroler_attestationA
Contrôle complet d'une attestation reçue : lecture du PDF, vérification du code auprès de l'Urssaf, cohérence champ à champ (SIREN, SIRET, période, effectif, masse salariale), cocontractant attendu (siret_attendu / siren_attendu) et fin de validité (6 mois après la période analysée, fin de mois).
Renvoie verdict OK | ALERTE (échéance < 30 j ou écarts mineurs) | REFUS (code inconnu, périmée, SIRET absent…).
Inputs: fichier (required), domaine, siren_attendu, siret_attendu.
etat_connecteurB
Configuration courante (sans secrets) : environnement, mode mock, fichier de suivi, écriture, version.
Inputs: no named parameters.
lire_attestation_pdfB
Extrait les données d'un PDF d'attestation de vigilance Urssaf (sans appel réseau).
Renvoie code de sécurité, SIREN, raison sociale, organisme émetteur, date de délivrance, date « à jour au » (fin de période analysée), effectif, masse salariale, SIRET des établissements.
Inputs: fichier (required).
suivi_creer_modeleA
Crée un classeur Excel de suivi vierge (colonnes Opération, Lot, Entreprise, SIRET attendu, dates, statut, contact, code de sécurité, vérification) à l'emplacement indiqué. Refuse d'écraser un fichier existant.
Inputs: fichier (required).
suivi_listerA
Lit le tableau Excel « Suivi des attestations par entreprise » : une entrée par ligne (opération, lot,
entreprise, date d'attestation, échéance, statut, code de sécurité, texte de vérification) et la liste des
codes uniques. seulement_a_verifier ne garde que les codes dont la vérification n'est pas tracée.
Inputs: fichier, seulement_a_verifier.
suivi_verifierA
Vérifie auprès de l'Urssaf les codes du tableau de suivi (par défaut seulement ceux non encore
vérifiés ; tous=True pour re-contrôler l'ensemble, utile pour la revue mensuelle) et, si ecrire=True
et URSSAF_ECRITURE=1, écrit le résultat dans la colonne « Vérification » de chaque ligne concernée
(et l'échéance si périmée). Sans ecrire, aucune modification du fichier : simulation.
Inputs: tous, ecrire, fichier.
verifier_attestationA
Vérifie un code de sécurité (15 caractères) auprès de l'Urssaf.
Renvoie le statut normalisé : valide | perimee (avec perimee_depuis) | inconnue (fraude possible) |
incomplete | erreur, et pour une attestation valide : nature, dénomination, organisme, date de
certification, SIREN, SIRET des établissements, dernière période analysée, effectif, masse salariale.
domaine : URSSAF (défaut, employeurs) ou ISU (artisans / commerçants / indépendants).
Inputs: code (required), domaine.
verifier_attestationsA
Vérifie plusieurs codes de sécurité (lots de 100 par appel API). Renvoie un résultat par code.
Inputs: codes (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 8 tools
verifier_attestation and verifier_attestations differ only by a trailing 's', which is a real misselection risk despite the batch description. controler_attestation also overlaps heavily with lire_attestation_pdf + verifier_attestation since it performs both internally, though its composite verdict purpose is described. The suivi_* group is reasonably distinct.
The attestation tools use verb_noun (verifier_attestation, lire_attestation_pdf, controler_attestation) while the tracking tools invert to noun_verb (suivi_lister, suivi_verifier, suivi_creer_modele). Names remain readable and grouped by prefix, but the mixed verb/noun ordering and singular/plural pair deviate from a single convention.
Eight tools is well within the ideal 3-15 range and each covers a distinct step (single check, batch check, PDF extraction, full control, listing, batch verification, template creation, connector status). No filler tools.
The surface covers the full attestation lifecycle: extraction, verification, cross-check verdicts, Excel tracking, batch re-verification, template creation, and connector config. Minor gaps like updating/removing individual tracking rows or exporting results are not surfaced but can be worked around.
Maintenance
Related MCP Connectors
Verify French and UK companies, EU VAT and IBANs; screen OFAC, UN, EU and UK sanctions lists.
Keyless French company checks (Sirene, BODACC, VIES, sanctions), DPE compliance, product recalls
Generate & validate EN 16931 e-invoices (Factur-X, ZUGFeRD, XRechnung); verification certificates
Inspect XLSX/XLSM workbooks, validate email, generate SVG QR codes, and look up domain DNS and TLS.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides tools to search and retrieve French public procurement data (tenders, awarded contracts) and company information from official open APIs.-
- AlicenseNot gradedqualityDmaintenanceeu-verify lets AI agents verify any European business partner: company existence (official French SIREN registry), insolvency records (BODACC), EU VAT validation before invoicing (VIES), SIRET/IBAN/LEI checks, address and email verification, French business-day deadlines and EU public tenders. 10 paid MCP tools + a free catalog tool, plus 81 HTTP endpoints. Each call costs $0.001-$0.01 in USDC on1MIT
- AlicenseAqualityCmaintenanceEnables converting Indian GST tax invoices into government INV-01 JSON payloads via OCR and deterministic extraction, with tools to validate GSTINs and re-validate payloads, and reports exactly what it couldn't read.3MIT
- AlicenseAqualityCmaintenanceEnables verification of Japanese companies through JP-Verify's API: checking qualified-invoice registration (T-numbers) and Corporate Numbers, resolving company names to candidate numbers, retrieving official or romanised English names and addresses, and fetching major-shareholder tables from EDINET filings. Supports single or batch lookups with API-key or key-less sandbox access, returning raw responses plus quota and provenance metadata.421 PyPIMIT