French company data from public registers (Sirene, RNE, BODACC) and French legal notices.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Use this when you have a BODACC notice identifier (for example from list_bodacc_notices) and need its detailed content. Personal details such as birth dates and home addresses are never included. Do not use to look for notices without an identifier.
Notice identifier, e.g. A202601950001.
Use this when you have a BODACC notice identifier (for example from list_bodacc_notices) and need its detailed content. Personal details such as birth dates and home addresses are never included. Do not use to look for notices without an identifier.
| Argument | Type | Description |
|---|---|---|
| id* | string | Notice identifier, e.g. A202601950001. |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 14,
"minLength": 10,
"description": "Notice identifier, e.g. A202601950001."
}
},
"additionalProperties": false
}Use this when you know a company's SIREN and the user wants its official identity, or wants to pre-fill a business customer's onboarding form: name, active or ceased, legal form code, NAF code, creation date, head office, establishments, share capital and current officers (name and role only), with sources and update date. Do not use for financial statements, beneficial owners, contact details or people searches, or as a regulatory identity check (KYC); that data is not provided.
| Argument | Type | Description |
|---|---|---|
| siren* | string | French company identifier: 9 digits (spaces allowed). |
{
"type": "object",
"required": [
"siren"
],
"properties": {
"siren": {
"type": "string",
"maxLength": 15,
"minLength": 9,
"description": "French company identifier: 9 digits (spaces allowed)."
}
},
"additionalProperties": false
}Use this when the user gives a SIRET (14 digits) and wants that establishment's address, activity code, status and whether it is the head office. Do not use to find all establishments of a company; get_company lists them.
| Argument | Type | Description |
|---|---|---|
| siret* | string | 14-digit SIRET (spaces allowed). |
{
"type": "object",
"required": [
"siret"
],
"properties": {
"siret": {
"type": "string",
"maxLength": 20,
"minLength": 14,
"description": "14-digit SIRET (spaces allowed)."
}
},
"additionalProperties": false
}Use this when the user asks how much a legal notice (annonce légale) costs for a formality in a French department: returns the exact regulated price excluding and including VAT, set by ministerial order and identical in every authorised newspaper of that department. Notices priced by the character need their text for an exact amount; without it the rate per character is returned. Do not use to compare newspapers or providers: the price is set by law and is the same everywhere.
| Argument | Type | Description |
|---|---|---|
| text | string | Full text of a notice priced by the character (optional). |
| formality* | string | Formality (form slug), e.g. transfert-siege-dans-departement, sas, dissolution-anticipee. |
| department* | string | French department code of the registered office: 75, 13, 2A, 974… |
{
"type": "object",
"required": [
"formality",
"department"
],
"properties": {
"text": {
"type": "string",
"maxLength": 10000,
"description": "Full text of a notice priced by the character (optional)."
},
"formality": {
"enum": [
"eurl",
"sarl",
"sasu",
"sas",
"sa",
"snc",
"sc",
"sci",
"sccv",
"scm",
"scpi",
"scp",
"seleurl",
"selarl",
"selas",
"selasu",
"selafa",
"modifications-multiples",
"changement-gerant-president-nomination",
"transfert-siege-dans-departement",
"transfert-siege-hors-departement-depart",
"transfert-siege-hors-departement-arrivee",
"changement-denomination",
"modification-objet-social",
"poursuite-activite-malgre-pertes",
"modification-capital",
"transformation-sarl-en-sas",
"transformation-sas-en-sarl",
"cession-parts-sociales",
"transformation-sa-en-sas",
"prorogation-duree",
"dissolution-anticipee",
"cloture-liquidation",
"dissolution-sans-liquidation-tup",
"additif",
"annonce-rectificative",
"location-gerance",
"fin-location-gerance",
"vente-fonds-commerce",
"apport-fonds-commerce",
"cession-droit-bail"
],
"type": "string",
"description": "Formality (form slug), e.g. transfert-siege-dans-departement, sas, dissolution-anticipee."
},
"department": {
"type": "string",
"pattern": "^(?:\\d{1,3}|2[ABab])$",
"maxLength": 3,
"description": "French department code of the registered office: 75, 13, 2A, 974…"
}
},
"additionalProperties": false
}Use this when the user has published, or is about to publish, a legal notice and asks what comes next: the filing on the one-stop shop for business formalities (guichet unique, INPI), deadlines, what the court registry does (BODACC) and the documents to prepare for that formality. Do not use as a substitute for the official checklist shown by the one-stop shop when filing.
| Argument | Type | Description |
|---|---|---|
| formality* | string | Formality, as returned by which_legal_notice. |
{
"type": "object",
"required": [
"formality"
],
"properties": {
"formality": {
"enum": [
"transfert-siege-dans-departement",
"transfert-siege-hors-departement-depart",
"transfert-siege-hors-departement-arrivee",
"changement-gerant-president-nomination",
"changement-denomination",
"modification-objet-social",
"modification-capital",
"prorogation-duree",
"poursuite-activite-malgre-pertes",
"dissolution-anticipee",
"cloture-liquidation",
"dissolution-sans-liquidation-tup",
"vente-fonds-commerce",
"location-gerance",
"fin-location-gerance",
"transformation-sarl-en-sas",
"transformation-sas-en-sarl",
"transformation-sa-en-sas",
"sas",
"sasu",
"sarl",
"eurl",
"sa",
"snc",
"selarl",
"selas",
"selasu",
"seleurl",
"selafa",
"sci",
"sc",
"sccv",
"scm",
"scp",
"scpi"
],
"type": "string",
"description": "Formality, as returned by which_legal_notice."
}
},
"additionalProperties": false
}Use this when the user asks what was officially published about a company (registration, changes, sale of business, insolvency proceedings, removal) and you know its SIREN: returns the latest BODACC notices, newest first, with links to the official text. Do not use to search notices by person, court decision type or region.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| siren* | string | French company identifier: 9 digits (spaces allowed). |
{
"type": "object",
"required": [
"siren"
],
"properties": {
"limit": {
"type": "integer",
"default": 10,
"maximum": 20,
"minimum": 1
},
"siren": {
"type": "string",
"maxLength": 15,
"minLength": 9,
"description": "French company identifier: 9 digits (spaces allowed)."
}
},
"additionalProperties": false
}Use this when the user wants to know which deeds or annual-accounts filings a company has registered (title and dates), with a link to download them from the INPI. Do not use to read financial figures; the documents themselves are not returned.
| Argument | Type | Description |
|---|---|---|
| siren* | string | French company identifier: 9 digits (spaces allowed). |
{
"type": "object",
"required": [
"siren"
],
"properties": {
"siren": {
"type": "string",
"maxLength": 15,
"minLength": 9,
"description": "French company identifier: 9 digits (spaces allowed)."
}
},
"additionalProperties": false
}Use this when the user wants LegalOne to prepare their legal notice for an existing company (registered office transfer, change of manager or president, name, corporate purpose, share capital, duration, early dissolution, liquidation closure): creates a draft on legalone.fr from the SIREN and the facts the user gave, and returns the notice text, what is left to complete and a link, valid 7 days, that opens the pre-filled form. The user reviews, completes and pays on legalone.fr; nothing is published or paid here. Do not use for a company creation, and do not send home addresses, birth dates or contact details: they are completed on legalone.fr.
| Argument | Type | Description |
|---|---|---|
| siren* | string | SIREN of the company (9 digits, spaces allowed). |
| newName | string | New company name. |
| formality* | string | Formality, as returned by which_legal_notice. |
| department | string | Publication department, used only when it cannot be read from the company's registered office (the notice is published where the office is). |
| newAcronym | string | New acronym (optional). |
| newCapital | number | Share capital after the operation, in euros. |
| newPurpose | string | Corporate purpose as written in the decision. |
Use this when the user gives a French postal address, complete or partial, and wants it checked, completed, normalized or geolocated: returns the best Base Adresse Nationale matches with house number, street, postcode, city, INSEE municipality code, coordinates and a match score, plus whether the best match is reliable. Do not use for addresses outside France, for finding who lives or works at an address, or for listing the companies at an address.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| address* | string | Postal address, e.g. 8 bd du Port Amiens. |
| postcode | string | Optional 5-digit postcode to narrow the search. |
{
"type": "object",
"required": [
"address"
],
"properties": {
"limit": {
"type": "integer",
"default": 3,
"maximum": 10,
"minimum": 1
},
"address": {
"type": "string",
"maxLength": 200,
"minLength": 3,
"description": "Postal address, e.g. 8 bd du Port Amiens."
},
"postcode": {
"type": "string",
"pattern": "^\\d{5}$",
"description": "Optional 5-digit postcode to narrow the search."
}
},
"additionalProperties": false
}Use this when the user names a French company (or gives a SIREN or SIRET) and you need to identify it: returns up to 20 matches with name, SIREN, status, legal form code, NAF code and head-office city. Name matching is a prefix match on the official name. Do not use for people, officers or shareholders, and do not use it to list companies by sector or area.
| Argument | Type | Description |
|---|---|---|
| page | integer | |
| limit | integer | |
| query* | string | Company name, SIREN or SIRET. |
{
"type": "object",
"required": [
"query"
],
"properties": {
"page": {
"type": "integer",
"default": 1,
"maximum": 5,
"minimum": 1
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 20,
"minimum": 1
},
"query": {
"type": "string",
"maxLength": 200,
"minLength": 2,
"description": "Company name, SIREN or SIRET."
}
},
"additionalProperties": false
}Use this when a French company or its adviser describes a corporate event (creation, registered office transfer within or outside the department, change of manager or president, name, corporate purpose, share capital, legal form, duration, dissolution, liquidation closure, sale of a business…) and needs to know which legal notices are mandatory, how many, in which department, on what legal basis and at what price. The answer comes from a fixed table of rules; when it needs one more fact, it returns a question instead of a guess. Do not use for court-ordered insolvency notices or for legal advice on whether to take the decision.
| Argument | Type | Description |
|---|---|---|
| legalForm | string | Current legal form (required for company_creation and legal_form_change). |
| department | string | Department of the registered office (before a transfer). |
| situations* | array | Events decided together, e.g. ["seat_transfer", "officer_change"]. |
| newLegalForm | string | Legal form after a legal_form_change. |
| newDepartment | string | Department of the new registered office (seat_transfer). |
| sameCommercialCourt | boolean | seat_transfer within one department that has several commercial courts: does the new office depend on the same court? |
| newSeatCity | string | New registered office: city. |
| officerRole | string |
| decisionBody | string | Body that took the decision. |
| decisionDate | string | Date of the meeting or decision (YYYY-MM-DD). |
| newSeatCourt | string | Commercial court (greffe) of the new registered office, e.g. Nanterre; deduced when the department has one court. |
| capitalChange | string |
| effectiveDate | string | Date the decision takes effect (YYYY-MM-DD). |
| newSeatStreet | string | New registered office: number and street. |
| officerChange | string | appointment: a new officer without departure; replacement: one leaves, one arrives; departure: one leaves without replacement. |
| purposeChange | string |
| departureCause | string |
| liquidationSeat | string | Where the liquidation is based. |
| incomingCivility | string |
| incomingLastName | string |
| newDurationYears | integer | New company duration in years. |
| departingCivility | string |
| departingLastName | string |
| incomingFirstName | string |
| newSeatComplement | string | New registered office: building, floor (optional). |
| newSeatPostalCode | string | New registered office: 5-digit postcode. |
| contributionNature | string |
| departingFirstName | string |
| liquidatorCivility | string |
| liquidatorLastName | string |
| representativeRole | string | Role of the legal representative named in the arrival notice. |
| liquidatorFirstName | string |
| companyDurationYears | integer | Company duration in years, as in the articles of association. |
| representativeCivility | string |
| representativeLastName | string |
| representativeFirstName | string |
{
"type": "object",
"required": [
"formality",
"siren"
],
"properties": {
"siren": {
"type": "string",
"maxLength": 15,
"minLength": 9,
"description": "SIREN of the company (9 digits, spaces allowed)."
},
"newName": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "New company name."
},
"formality": {
"enum": [
"transfert-siege-dans-departement",
"transfert-siege-hors-departement-depart",
"transfert-siege-hors-departement-arrivee",
"changement-gerant-president-nomination",
"changement-denomination",
"modification-objet-social",
"modification-capital",
"prorogation-duree",
"dissolution-anticipee",
"cloture-liquidation"
],
"type": "string",
"description": "Formality, as returned by which_legal_notice."
},
"department": {
"type": "string",
"pattern": "^(?:\\d{1,3}|2[ABab])$",
"maxLength": 3,
"description": "Publication department, used only when it cannot be read from the company's registered office (the notice is published where the office is)."
},
"newAcronym": {
"type": "string",
"maxLength": 50,
"minLength": 1,
"description": "New acronym (optional)."
},
"newCapital": {
"type": "number",
"description": "Share capital after the operation, in euros.",
"exclusiveMinimum": 0
},
"newPurpose": {
"type": "string",
"maxLength": 2000,
"minLength": 1,
"description": "Corporate purpose as written in the decision."
},
"newSeatCity": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "New registered office: city."
},
"officerRole": {
"enum": [
"manager",
"president",
"chief_executive"
],
"type": "string"
},
"decisionBody": {
"enum": [
"ordinary_general_meeting",
"extraordinary_general_meeting",
"combined_general_meeting",
"manager",
"board_of_directors",
"sole_shareholder"
],
"type": "string",
"description": "Body that took the decision."
},
"decisionDate": {
"type": "string",
"format": "date",
"maxLength": 10,
"description": "Date of the meeting or decision (YYYY-MM-DD)."
},
"newSeatCourt": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Commercial court (greffe) of the new registered office, e.g. Nanterre; deduced when the department has one court."
},
"capitalChange": {
"enum": [
"increase",
"decrease"
],
"type": "string"
},
"effectiveDate": {
"type": "string",
"format": "date",
"maxLength": 10,
"description": "Date the decision takes effect (YYYY-MM-DD)."
},
"newSeatStreet": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "New registered office: number and street."
},
"officerChange": {
"enum": [
"appointment",
"replacement",
"departure"
],
"type": "string",
"description": "appointment: a new officer without departure; replacement: one leaves, one arrives; departure: one leaves without replacement."
},
"purposeChange": {
"enum": [
"extension",
"replacement",
"removal"
],
"type": "string"
},
"departureCause": {
"enum": [
"resignation",
"dismissal",
"death",
"end_of_term"
],
"type": "string"
},
"liquidationSeat": {
"enum": [
"registered_office",
"liquidator",
"other"
],
"type": "string",
"description": "Where the liquidation is based."
},
"incomingCivility": {
"enum": [
"mr",
"mrs"
],
"type": "string"
},
"incomingLastName": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"newDurationYears": {
"type": "integer",
"maximum": 99,
"minimum": 1,
"description": "New company duration in years."
},
"departingCivility": {
"enum": [
"mr",
"mrs"
],
"type": "string"
},
"departingLastName": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"incomingFirstName": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"newSeatComplement": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "New registered office: building, floor (optional)."
},
"newSeatPostalCode": {
"type": "string",
"pattern": "^\\d{5}$",
"maxLength": 5,
"description": "New registered office: 5-digit postcode."
},
"contributionNature": {
"enum": [
"cash",
"shareholder_current_account",
"reserves",
"real_estate",
"business",
"securities"
],
"type": "string"
},
"departingFirstName": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"liquidatorCivility": {
"enum": [
"mr",
"mrs"
],
"type": "string"
},
"liquidatorLastName": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"representativeRole": {
"enum": [
"manager",
"president"
],
"type": "string",
"description": "Role of the legal representative named in the arrival notice."
},
"liquidatorFirstName": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"companyDurationYears": {
"type": "integer",
"maximum": 99,
"minimum": 1,
"description": "Company duration in years, as in the articles of association."
},
"representativeCivility": {
"enum": [
"mr",
"mrs"
],
"type": "string"
},
"representativeLastName": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"representativeFirstName": {
"type": "string",
"maxLength": 100,
"minLength": 1
}
},
"additionalProperties": false
}| soleShareholderIsCompany | boolean | dissolution_without_liquidation: is the sole shareholder a company? |
{
"type": "object",
"required": [
"situations"
],
"properties": {
"legalForm": {
"enum": [
"sas",
"sasu",
"sarl",
"eurl",
"sa",
"snc",
"sci",
"sc",
"sccv",
"scm",
"scp",
"scpi",
"selarl",
"selas",
"selasu",
"seleurl",
"selafa"
],
"type": "string",
"description": "Current legal form (required for company_creation and legal_form_change)."
},
"department": {
"type": "string",
"pattern": "^(?:\\d{1,3}|2[ABab])$",
"maxLength": 3,
"description": "Department of the registered office (before a transfer)."
},
"situations": {
"type": "array",
"items": {
"enum": [
"company_creation",
"seat_transfer",
"officer_change",
"auditor_change",
"name_change",
"corporate_purpose_change",
"share_capital_change",
"legal_form_change",
"duration_extension",
"share_transfer",
"continuation_despite_losses",
"early_dissolution",
"liquidation_closure",
"dissolution_without_liquidation",
"business_sale",
"business_lease",
"business_lease_end",
"dormancy"
],
"type": "string"
},
"maxItems": 5,
"minItems": 1,
"description": "Events decided together, e.g. [\"seat_transfer\", \"officer_change\"]."
},
"newLegalForm": {
"enum": [
"sas",
"sasu",
"sarl",
"eurl",
"sa",
"snc",
"sci",
"sc",
"sccv",
"scm",
"scp",
"scpi",
"selarl",
"selas",
"selasu",
"seleurl",
"selafa"
],
"type": "string",
"description": "Legal form after a legal_form_change."
},
"newDepartment": {
"type": "string",
"pattern": "^(?:\\d{1,3}|2[ABab])$",
"maxLength": 3,
"description": "Department of the new registered office (seat_transfer)."
},
"sameCommercialCourt": {
"type": "boolean",
"description": "seat_transfer within one department that has several commercial courts: does the new office depend on the same court?"
},
"soleShareholderIsCompany": {
"type": "boolean",
"description": "dissolution_without_liquidation: is the sole shareholder a company?"
}
},
"additionalProperties": false
}