LegalOne Entreprises MCP
Provides read-only access to French public company data (SIRENE, RNE, BODACC) and legal notice services. Enables agents to search companies, retrieve official details, list BODACC notices, and assist with legal announcement preparation and pricing.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://mcp.legalone.fr/mcpWhat you can do with it
- Search for a company by name, SIREN, or SIRET
- Retrieve official company profile and establishment details
- List and read BODACC legal notices for a company
- Calculate legal notice prices and prepare drafts
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- LegalOne Entreprises 0.1.0
- MCP protocol
- 2025-06-18
- Tools
- 11 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
11 advertised
search_companies — Search French companies
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.
{
"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
}{
"title": "Search French companies",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_company — Get a French company's profile
Use this when you know a company's SIREN and the user wants its 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.
{
"type": "object",
"required": [
"siren"
],
"properties": {
"siren": {
"type": "string",
"maxLength": 15,
"minLength": 9,
"description": "French company identifier: 9 digits (spaces allowed)."
}
},
"additionalProperties": false
}{
"title": "Get a French company's profile",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_establishment — Get a French establishment by SIRET
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.
{
"type": "object",
"required": [
"siret"
],
"properties": {
"siret": {
"type": "string",
"maxLength": 20,
"minLength": 14,
"description": "14-digit SIRET (spaces allowed)."
}
},
"additionalProperties": false
}{
"title": "Get a French establishment by SIRET",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}list_bodacc_notices — List a company's BODACC notices
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.
{
"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
}{
"title": "List a company's BODACC notices",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_bodacc_notice — Read one BODACC notice
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.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 14,
"minLength": 10,
"description": "Notice identifier, e.g. A202601950001."
}
},
"additionalProperties": false
}{
"title": "Read one BODACC notice",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}list_company_documents — List a company's filed documents
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.
{
"type": "object",
"required": [
"siren"
],
"properties": {
"siren": {
"type": "string",
"maxLength": 15,
"minLength": 9,
"description": "French company identifier: 9 digits (spaces allowed)."
}
},
"additionalProperties": false
}{
"title": "List a company's filed documents",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}search_addresses — Normalize a French postal address
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.
{
"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
}{
"title": "Normalize a French postal address",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}get_legal_notice_price — Get the regulated price of a French legal notice
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.
{
"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
}{
"title": "Get the regulated price of a French legal notice",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}which_legal_notice — Find which French legal notices a company must publish
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.
{
"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
}{
"title": "Find which French legal notices a company must publish",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_next_steps — Next steps after a French legal notice
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.
{
"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
}{
"title": "Next steps after a French legal notice",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}prepare_legal_notice — Prepare a French legal notice on legalone.fr
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.
{
"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
}{
"title": "Prepare a French legal notice on legalone.fr",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 1124 ms
- 95th percentile latency
- 1124 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1124 ms · metadata changed · 11 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http legalone-entreprises-mcp https://mcp.legalone.fr/mcpCodex
codex mcp add legalone-entreprises-mcp --url https://mcp.legalone.fr/mcpCursor
{
"mcpServers": {
"legalone-entreprises-mcp": {
"url": "https://mcp.legalone.fr/mcp"
}
}
}Cline
{
"mcpServers": {
"legalone-entreprises-mcp": {
"type": "streamableHttp",
"url": "https://mcp.legalone.fr/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"legalone-entreprises-mcp": {
"type": "http",
"url": "https://mcp.legalone.fr/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http legalone-entreprises-mcp https://mcp.legalone.fr/mcpClaude Desktop
{
"mcpServers": {
"legalone-entreprises-mcp": {
"url": "https://mcp.legalone.fr/mcp"
}
}
}Windsurf
{
"mcpServers": {
"legalone-entreprises-mcp": {
"serverUrl": "https://mcp.legalone.fr/mcp"
}
}
}Let your agent find its tools
Find servers like LegalOne Entreprises MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other data and analytics servers
Do you run LegalOne Entreprises MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.