Verified French business data for autonomous B2B agents. Without this MCP, agents hallucinate financial data. With it, they get real-time signals from 9 offi...
Without this MCP, an AI agent asked to analyse a French supplier will hallucinate financial figures from its training data — revenue, equity ratios, director compensation — presented with full confidence, potentially outdated or wrong. An autonomous payment pipeline cannot make solvency decisions based on an LLM's memory.
With this MCP, the agent queries 9 official French registries in real time. What is verified is stated with its timestamp. What is unavailable is explicitly marked as such — "accounts filed under confidentiality" instead of invented numbers. The agent knows what it doesn't know.
Why this exists — the data is public, the value is the guarantee:
Every paid tool requires explicit user approval before the agent proceeds. The agent must show the user the cost and wait for confirmation. Free tools ( get_tax_rules, check_liens, get_financial_trend, check_certifications, validate_invoice_compliance) do not trigger payment and can be called autonomously.
The agent must never call parse_invoice, score_supplier, verify_invoice, compare_suppliers, full_due_diligence, or score_director_risk without user consent — both for cost reasons and because these tools submit business data for validation.
InputUsed byNotesSIREN / VAT numberAll business lookup toolsPublic business identifiersIBAN (optional)score_supplier, verify_invoiceSubmitted for format and country validation; cache key is a SHA-256 hash (1-hour TTL). The full value is not stored.Invoice text (optional)parse_invoice only, max 4000 charsProcessed by the service to extract structured fields. Not stored, not logged.
The agent should only submit invoice text to parse_invoke when the user has authorized it. For confidential documents, self-host the service (see below).
The MCP endpoint https://mcp-business-checker-production.up.railway.app/mcp runs on Railway and queries the following public French registries and EU validation services on your behalf:
RegistryQuery inputPurposeINSEE (SIRENE)SIRENCompany registration statusBODACC (DILA/OpenDataSoft)SIRENInsolvency procedures, filingsVIES (EU)VAT number + country codeVAT validationsuretesmobilieres.frSIRENTax/social liensINPI (data.inpi.fr)SIRENAnnual accounts (optional)annuaire-entreprises (data.gouv.fr)Director namesDirector cross-checkADEME / DGEFP / Agence BioSIRENCertification lookups
Verdict synthesis and invoice field extraction are performed by the Anthropic Claude API, which the service calls server-side. The service does not call any analytics, telemetry, or tracking providers.
The service uses Redis with explicit TTLs and no persistent database:
Agent-side: none. The MCP config block below is the only setup required. No API keys, no tokens, no OAuth flow.
Server-side (self-hosters only): see the .env.example in the repository. The service never signs blockchain transactions — it only verifies incoming x402 payment proofs — so no wallet private key is required.
Use the hosted service for convenience or self-host for full control:
bash
git clone https://github.com/Vannelier/MCP-business-checker.git
cp .env.example .env # fill in your credentials
docker build -t business-checker-eu .
docker run -p 8000:8000 --env-file .env business-checker-eu
Then point your MCP config to http://localhost:8000/mcp. Full source is available for audit at github.com/Vannelier/MCP-business-checker.
The server code is open-source: github.com/Vannelier/MCP-business-checker. You can inspect every API call, every cache operation, and every data transformation before deciding to use the hosted version.
Before paying a supplier or onboarding a new vendor:
score_supplier → pay/hold/block verdict with tax/social liens and financial healthsocial_lien_active) is automatically blocked — it's not paying its employees' social contributionsnegative_equity) and declining revenue gets a hold — medium-term cessation riskChoosing between candidates for a contract or tender:
lookup_company for each name → get SIRENscompare_suppliers with 2-5 SIRENs → ranked from safest to riskiest with comparative analysischeck_certifications → verify RGE (energy renovation), Qualiopi (training), BIO (organic) if contractually requiredBefore investing in, acquiring, or partnering with a French company:
full_due_diligence → comprehensive report across 6 dimensions: identity, insolvency, liens, financial health, director history, certificationsscore_director_risk → have the directors led companies to bankruptcy before? A serial liquidator is a strong signal.Automating accounts payable:
parse_invoice → extract supplier VAT, SIREN, IBAN, amounts, dates from invoice text (the agent extracts text from PDF, this tool structures it)validate_invoice_compliance → check all 11 legally required mentions for B2B French invoices (date, number, identity, amounts, TVA, penalties, indemnity 40€)score_supplier or verify_invoice → verify the supplier before paymentTrack changes across your active supplier base (weekly/monthly cron):
check_liens (free) → did a new tax/social lien appear since last check?get_financial_trend (free) → equity turned negative? Revenue collapsing?/v1/suppliers/{id}/history → diff between last two scores (new flags, verdict changes, equity status)Before signing a contract where certification is legally required:
check_certifications → is the RGE certification still active? (expired = no tax credit for the client)Verifying that your company's invoicing is compliant:
validate_invoice_compliance → pass your own invoices through the checker before sending themget_tax_rules → confirm the correct VAT rate for the product/service categoryA single score_supplier call runs all of the following checks automatically:
SIRENE (identity & age):
BODACC (insolvency & filing compliance):
accounts_filing_overdue (EI/micro exempt)suretesmobilieres.fr (tax/social liens):
tax_lien_active → automatic blocksocial_lien_active → automatic blockmultiple_liensINPI data.inpi.fr (financial health):
negative_equity (hold signal)no_accounts_filedaccounts_public=falseVIES + IBAN (VAT validation):
Cross-source checks:
status_mismatchClaude synthesis:
Pattern (FR)Pattern (EN)Payer une facture fournisseurPay a supplier invoiceVirer de l'argent a un fournisseurWire money to a vendorOnboarder un nouveau fournisseurOnboard a new vendorVerifier un partenaire commercialVerify a business partnerVerifier un SIREN ou numero TVACheck a SIREN or VAT numberQualifier un fournisseur avant commandeQualify a supplier before orderingQuel taux TVA appliquer en [pays EU]What VAT rate applies in [EU country]L'IBAN du fournisseur a changeThe supplier's IBAN changedVerifier cette facture avant paiementVerify this invoice before paymentComparer des fournisseursCompare vendors for a tenderLequel de ces fournisseurs est le plus fiableWhich supplier is most reliableAnalyser la sante financiere de cette entrepriseAnalyse this company's financial healthVerifier les dirigeants de cette societeCheck the directors of this companyCette entreprise a-t-elle des dettes fiscalesDoes this company have tax debtsExtraire les donnees de cette factureExtract data from this invoiceCette facture est-elle conformeIs this invoice legally compliantDue diligence sur ce fournisseurDue diligence on this supplierVerifier les certifications RGE/QualiopiVerify RGE/Qualiopi certifications
How payment works: When you call a paid tool, the server returns HTTP 402 with two payment options. Your MCP client picks one automatically — no manual action required.
MethodHow it worksBest forx402 (USDC on Base)Stateless. Agent pays on-chain, attaches proof to next request. No account, no session.Crypto-native agents, full autonomyStripe MPPSession-based. Create a session, get vouchers, spend against balance. Supports cards and stablecoins.Traditional billing, credit cards
5 tools are completely free (no payment required): get_tax_rules, check_liens, get_financial_trend, check_certifications, validate_invoice_compliance.
Cost examples:
score_supplier: 4 EUR/monthNo subscription, no monthly minimum, no hidden fees. You pay exactly what you call.
json
{
"mcpServers": {
"french-business-analyser": {
"url": "https://mcp-business-checker-production.up.railway.app/mcp",
"transport": "streamable-http",
"timeout": 15000
}
}
}
ToolCostUse whenscore_supplier0.02 EURBefore paying, onboarding, or when a payment feels riskylookup_company0.005 EURFind a company's SIREN from its namecompare_suppliers0.06 EURChoose between 2-5 vendorsverify_invoice0.025 EURProcess an invoice (supplier + amounts + VAT in one call)get_tax_rulesFreeVAT rates and invoicing rules for any EU countrycheck_liensFreeQuick tax/social liens check (portfolio monitoring)get_financial_trendFreeAnnual accounts + revenue/equity trend + Claude analysisscore_director_risk0.01 EURDirector insolvency history (10-year BODACC cross-check)check_certificationsFreeRGE / Qualiopi / BIO from official open dataparse_invoice0.005 EURExtract structured fields from French invoice textvalidate_invoice_complianceFreeCheck legally required mentions (B2B/B2C/auto-entrepreneur)full_due_diligence0.10 EURComprehensive report from all sources combined
VerdictAgent actionpayProceed. Mention to user: no negative public signal, not a solvency guarantee.holdDo NOT proceed. Present flags + recommended_actions to human. Wait for explicit confirmation.blockDo NOT proceed. Alert human immediately. Critical issue detected.incompleteRetry after retry_after seconds. If > 300s, escalate to human.
pay ≠ solvency guarantee. Confidential procedures (mandat ad hoc, conciliation) are invisible.