# OpenLMNP (remote · app.openlmnp.fr)

Accounting MCP for French LMNP furnished rentals: income, expenses, depreciation, tax return & FEC

- Trust score: 61/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `app.openlmnp.fr`: 61/100 (this document), [markdown](https://verifymcp.io/servers/manganate006-openlmnp/app-2.md), [page](https://verifymcp.io/servers/manganate006-openlmnp/app-2)

## Channel facts

- Endpoint: `https://app.openlmnp.fr/mcp?demo_token=openlmnp_demo_ro_ebd891f45e8a771ca1a718f239b733b438a31d48`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.1.1`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 57/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (create_income).
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 75/100
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 4133 tokens (~93/item across 44 items; 44 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 13/100
  - Stability observed for 4 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 67/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 0% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http manganate006-openlmnp https://app.openlmnp.fr/mcp?demo_token=openlmnp_demo_ro_ebd891f45e8a771ca1a718f239b733b438a31d48
```

### Codex

```toml
[mcp_servers.manganate006-openlmnp]
url = "https://app.openlmnp.fr/mcp?demo_token=openlmnp_demo_ro_ebd891f45e8a771ca1a718f239b733b438a31d48"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "manganate006-openlmnp": {
      "type": "remote",
      "url": "https://app.openlmnp.fr/mcp?demo_token=openlmnp_demo_ro_ebd891f45e8a771ca1a718f239b733b438a31d48",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add manganate006-openlmnp --url https://app.openlmnp.fr/mcp?demo_token=openlmnp_demo_ro_ebd891f45e8a771ca1a718f239b733b438a31d48 --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  manganate006-openlmnp:
    url: "https://app.openlmnp.fr/mcp?demo_token=openlmnp_demo_ro_ebd891f45e8a771ca1a718f239b733b438a31d48"
```

### Other

```json
{
  "mcpServers": {
    "manganate006-openlmnp": {
      "type": "http",
      "url": "https://app.openlmnp.fr/mcp?demo_token=openlmnp_demo_ro_ebd891f45e8a771ca1a718f239b733b438a31d48"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-01 (score 61, +2)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-31 (score 59, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 58)

First indexed and scored.

## MCP tools (44)

### `list_properties` (~38 tokens)

List Properties

Liste tous les biens immobiliers de l'utilisateur authentifié avec leurs informations clés (surface, prix d'acquisition, quote-part, type de location).

### `get_property` (~51 tokens)

Get Property

Retourne le détail complet d'un bien immobilier : caractéristiques, montants financiers, base amortissable, et comptage des composants, travaux, mobilier et emprunts associés.

Input parameters:

- `property_id` (integer, required)

### `list_incomes` (~81 tokens)

List Incomes

Liste les recettes locatives de l'utilisateur avec filtres optionnels par bien, année et plateforme (airbnb, booking, abritel, direct, other). Retourne les montants en euros avec TVA, frais de plateforme et taxe de séjour.

Input parameters:

- `property_id` (integer)
- `source` (string)
- `year` (integer)

### `get_income` (~55 tokens)

Get Income

Retourne le détail complet d'une recette locative par son identifiant : montants TTC/HT, TVA, frais de plateforme, taxe de séjour, informations de réservation et du voyageur.

Input parameters:

- `income_id` (integer, required)

### `list_expenses` (~82 tokens)

List Expenses

Liste les charges déductibles de l'utilisateur avec filtres optionnels par bien, année et catégorie. Catégories disponibles : property_tax, insurance, energy, maintenance, supplies, platform_fees, accounting, telecom, travel, cleaning, other.

Input parameters:

- `category` (string)
- `property_id` (integer)
- `year` (integer)

### `get_expense` (~61 tokens)

Get Expense

Retourne le détail complet d'une charge par son identifiant : montant TTC/HT, TVA, catégorie, type de récurrence, flag dédié et montant effectif après application de la quote-part si non dédié.

Input parameters:

- `expense_id` (integer, required)

### `list_loans` (~64 tokens)

List Loans

Liste les emprunts immobiliers de l'utilisateur avec filtre optionnel par bien. Retourne pour chaque emprunt : banque, capital, taux, durée, mensualité, assurance, dates de début/fin et coût total estimé.

Input parameters:

- `property_id` (integer)

### `get_loan` (~55 tokens)

Get Loan

Retourne le détail complet d'un emprunt immobilier avec un résumé financier : capital, taux, durée, mensualité, assurance, coût total, intérêts et assurances de l'année courante.

Input parameters:

- `loan_id` (integer, required)

### `get_loan_schedule` (~81 tokens)

Get Loan Schedule

Retourne le tableau d'amortissement complet d'un emprunt avec filtre optionnel par année. Chaque ligne contient : numéro d'échéance, date, capital remboursé, intérêts, assurance, total et capital restant dû. Inclut les totaux de la période.

Input parameters:

- `loan_id` (integer, required)
- `year` (integer)

### `list_fiscal_years` (~57 tokens)

List Fiscal Years

Liste tous les exercices fiscaux de l'utilisateur triés par année décroissante. Pour chaque exercice : statut, résultat fiscal, recettes totales, charges totales, amortissements, amortissements plafonnés et report déficitaire.

### `get_fiscal_year` (~68 tokens)

Get Fiscal Year

Retourne le détail complet d'un exercice fiscal par son année : résultat fiscal, recettes, charges, amortissements (total, plafonné, reporté), TVA, form_data du formulaire 2031/2033, et informations de télétransmission.

Input parameters:

- `year` (integer, required)

### `list_furniture` (~64 tokens)

List Furniture

Liste le mobilier et équipements amortissables de l'utilisateur avec filtre optionnel par bien. Retourne pour chaque élément : description, montant d'achat, date, durée d'amortissement, amortissement annuel, flag dédié et occasion.

Input parameters:

- `property_id` (integer)

### `list_property_works` (~64 tokens)

List Property Works

Liste les travaux immobiliers amortissables de l'utilisateur avec filtre optionnel par bien. Retourne pour chaque travail : description, montant TTC/HT, date, durée d'amortissement, amortissement annuel et flag dédié.

Input parameters:

- `property_id` (integer)

### `list_property_components` (~78 tokens)

List Property Components

Liste les composants d'amortissement par ventilation d'un bien immobilier (gros œuvre, toiture, électricité, etc.). Retourne chaque composant avec son pourcentage, la base de calcul, la durée et l'amortissement annuel. La somme des pourcentages doit être 100 %.

Input parameters:

- `property_id` (integer, required)

### `get_onboarding_status` (~71 tokens)

Get Onboarding Status

Retourne l'état d'avancement de l'onboarding LMNP de l'utilisateur pour l'année courante : création du bien, saisie des recettes et charges, configuration des amortissements, clôture de l'exercice et génération de la liasse fiscale PDF.

Input parameters:

- `year` (integer)

### `get_dashboard_summary` (~75 tokens)

Get Dashboard Summary

Retourne un tableau de bord agrégé pour l'utilisateur : nombre de biens et emprunts, recettes et charges totales pour l'année demandée (défaut : année en cours), résultat fiscal si l'exercice existe, et répartition des recettes par plateforme et des charges par catégorie.

Input parameters:

- `year` (integer)

### `create_income` (~153 tokens)

Create Income

Crée un revenu locatif pour un bien LMNP. Le montant est en euros (ex: 125.50). La source peut être : airbnb, booking, abritel, direct, other.

Input parameters:

- `amount` (number, required)
- `checkin_date` (string|null)
- `checkout_date` (string|null)
- `guest_name` (string|null)
- `income_date` (string, required)
- `notes` (string|null)
- `platform_fee` (number|null)
- `property_id` (integer, required)
- `reservation_ref` (string|null)
- `source` (string, required)
- `tourist_tax` (number|null)
- `tva_rate` (number|null)

### `update_income` (~146 tokens)

Update Income

Met à jour un revenu locatif existant. Seuls les champs fournis sont modifiés (mise à jour partielle). Le montant est en euros.

Input parameters:

- `amount` (number|null)
- `checkin_date` (string|null)
- `checkout_date` (string|null)
- `guest_name` (string|null)
- `income_date` (string|null)
- `income_id` (integer, required)
- `notes` (string|null)
- `platform_fee` (number|null)
- `reservation_ref` (string|null)
- `source` (string|null)
- `tourist_tax` (number|null)
- `tva_rate` (number|null)

### `create_expense` (~132 tokens)

Create Expense

Crée une charge d'exploitation pour un bien LMNP. Le montant est en euros. Catégories disponibles : property_tax, insurance, energy, maintenance, supplies, platform_fees, accounting, telecom, travel, cleaning, other.

Input parameters:

- `amount` (number, required)
- `category` (string, required)
- `description` (string, required)
- `expense_date` (string, required)
- `is_dedicated` (boolean|null)
- `notes` (string|null)
- `property_id` (integer, required)
- `recurring_type` (string|null)
- `tva_rate` (number|null)

### `update_expense` (~120 tokens)

Update Expense

Met à jour une charge d'exploitation existante. Seuls les champs fournis sont modifiés (mise à jour partielle). Le montant est en euros.

Input parameters:

- `amount` (number|null)
- `category` (string|null)
- `description` (string|null)
- `expense_date` (string|null)
- `expense_id` (integer, required)
- `is_dedicated` (boolean|null)
- `notes` (string|null)
- `recurring_type` (string|null)
- `tva_rate` (number|null)

### `create_furniture` (~133 tokens)

Create Furniture

Crée un élément de mobilier amortissable pour un bien LMNP. Le montant est en euros. La durée d'amortissement est de 5 ans par défaut (3 ans pour le mobilier d'occasion). L'amortissement annuel est calculé automatiquement.

Input parameters:

- `amount` (number, required)
- `description` (string, required)
- `duration_years` (integer|null)
- `is_dedicated` (boolean|null)
- `is_second_hand` (boolean|null)
- `property_id` (integer, required)
- `purchase_date` (string, required)
- `tva_rate` (number|null)

### `update_furniture` (~134 tokens)

Update Furniture

Met à jour un élément de mobilier existant. Seuls les champs fournis sont modifiés (mise à jour partielle). Le montant est en euros. L'amortissement annuel est recalculé automatiquement si le montant ou la durée changent.

Input parameters:

- `amount` (number|null)
- `description` (string|null)
- `duration_years` (integer|null)
- `furniture_id` (integer, required)
- `is_dedicated` (boolean|null)
- `is_second_hand` (boolean|null)
- `purchase_date` (string|null)
- `tva_rate` (number|null)

### `create_property_work` (~131 tokens)

Create Property Work

Crée un poste de travaux immobiliers amortissables pour un bien LMNP. Le montant est en euros. La durée d'amortissement est de 10 ans par défaut. L'amortissement annuel est calculé automatiquement en tenant compte de la quote-part si le poste n'est pas dédié.

Input parameters:

- `amount` (number, required)
- `description` (string, required)
- `duration_years` (integer|null)
- `is_dedicated` (boolean|null)
- `property_id` (integer, required)
- `tva_rate` (number|null)
- `work_date` (string, required)

### `update_property_work` (~126 tokens)

Update Property Work

Met à jour un poste de travaux immobiliers existant. Seuls les champs fournis sont modifiés (mise à jour partielle). Le montant est en euros. L'amortissement annuel est recalculé automatiquement si le montant ou la durée changent.

Input parameters:

- `amount` (number|null)
- `description` (string|null)
- `duration_years` (integer|null)
- `is_dedicated` (boolean|null)
- `tva_rate` (number|null)
- `work_date` (string|null)
- `work_id` (integer, required)

### `attach_document` (~173 tokens)

Attach Document

Attache un document justificatif (facture, reçu, devis) à une charge, un mobilier ou un poste de travaux. Trois modes d'entrée mutuellement exclusifs : file_base64 (contenu encodé), file_path (chemin absolu sur le serveur, nécessite MCP_FILE_PATH_PREFIX), file_url (URL http/https téléchargée par le serveur). Le chemin de stockage est : documents/{user_id}/{type}/{filename}.

Input parameters:

- `amount` (number|null)
- `document_date` (string|null)
- `file_base64` (string|null)
- `file_path` (string|null)
- `file_url` (string|null)
- `filename` (string|null)
- `label` (string, required)
- `record_id` (integer, required)
- `type` (string, required)

### `compute_depreciation` (~72 tokens)

Compute Depreciation

Calcule le détail des amortissements LMNP pour un bien immobilier et une année donnée. Retourne la ventilation par composant immeuble, travaux et mobilier, ainsi que le total annuel, tous les montants exprimés en euros.

Input parameters:

- `property_id` (integer, required)
- `year` (integer, required)

### `compute_fiscal_year` (~78 tokens)

Compute Fiscal Year

Calcule le résultat fiscal complet d'un exercice LMNP pour une année donnée : recettes, charges, amortissements (avec plafonnement et report), résultat fiscal net, et solde TVA. Crée l'exercice s'il n'existe pas encore. Tous les montants sont retournés en euros.

Input parameters:

- `year` (integer, required)

### `compare_micro_bic` (~105 tokens)

Compare Micro Bic

Compare le régime micro-BIC et le régime réel pour une année fiscale. Calcule le résultat imposable dans chaque régime et indique lequel est le plus avantageux. L'abattement micro-BIC est de 50 % pour les meublés classés, 30 % pour les non classés (loi Le Meur 2026). Tous les montants sont en euros.

Input parameters:

- `abatement_rate` (number)
- `year` (integer, required)

### `compute_loan_schedule` (~83 tokens)

Compute Loan Schedule

Génère (ou régénère) le tableau d'amortissement d'un emprunt immobilier. Supprime les échéances existantes et recalcule toutes les mensualités (capital, intérêts, assurance). Retourne un résumé financier ainsi que la première et la dernière échéance. Tous les montants sont en euros.

Input parameters:

- `loan_id` (integer, required)

### `compute_tva` (~84 tokens)

Compute Tva

Calcule la déclaration de TVA pour les biens para-hôteliers assujettis (régime TVA liable) sur une année donnée. Retourne la TVA collectée, déductible et le solde à payer ou à récupérer, ventilés par bien, par taux et par trimestre. Tous les montants sont en euros.

Input parameters:

- `year` (integer, required)

### `generate_fec` (~97 tokens)

Generate Fec

Génère le Fichier des Écritures Comptables (FEC) pour un exercice fiscal. Le FEC est un fichier réglementaire au format normé (article A.47 A-1 du LPF, 18 colonnes, séparateur TAB) requis en cas de contrôle fiscal. L'exercice est calculé avant la génération si nécessaire. Retourne le chemin du fichier généré.

Input parameters:

- `year` (integer, required)

### `generate_tax_return` (~84 tokens)

Generate Tax Return

Génère la liasse fiscale LMNP au format PDF (formulaires 2031, 2033-A à 2033-G) pour un exercice fiscal donné. L'exercice est recalculé avant la génération si nécessaire. Retourne le chemin du PDF généré et un résumé des montants clés de la déclaration.

Input parameters:

- `year` (integer, required)

### `create_property` (~239 tokens)

Create Property

Crée un nouveau bien immobilier LMNP pour l'utilisateur connecté. Les montants (acquisition_price, notary_fees, market_value) sont en euros. Les surfaces (total_area, rented_area) sont en m². Type : apartment, house, room, studio, other. Rental type : seasonal, long_term, mixed. TVA : exempt, liable.

Input parameters:

- `acquisition_date` (string, required)
- `acquisition_price` (number, required)
- `address` (string)
- `agency_fees` (number)
- `city` (string)
- `is_primary_residence` (boolean)
- `land_percentage` (integer)
- `market_value` (number)
- `market_value_date` (string)
- `name` (string, required)
- `notary_fees` (number)
- `notes` (string)
- `postal_code` (string)
- `rental_start_date` (string)
- `rental_type` (string)
- `rented_area` (integer)
- `total_area` (integer)
- `tva_regime` (string)
- `type` (string)

### `update_property` (~207 tokens)

Update Property

Met à jour les champs d'un bien immobilier existant. Seuls les champs fournis sont modifiés. Les montants sont en euros, les surfaces en m².

Input parameters:

- `acquisition_date` (string)
- `acquisition_price` (number)
- `address` (string)
- `agency_fees` (number)
- `city` (string)
- `is_primary_residence` (boolean)
- `land_percentage` (integer)
- `market_value` (number)
- `market_value_date` (string)
- `name` (string)
- `notary_fees` (number)
- `notes` (string)
- `postal_code` (string)
- `property_id` (integer, required)
- `rental_start_date` (string)
- `rental_type` (string)
- `rented_area` (integer)
- `total_area` (integer)
- `tva_regime` (string)
- `type` (string)

### `delete_income` (~33 tokens)

Delete Income

Supprime un revenu locatif par son identifiant. Cette action est irréversible.

Input parameters:

- `income_id` (integer, required)

### `delete_expense` (~44 tokens)

Delete Expense

Supprime une charge d'exploitation par son identifiant. Les documents justificatifs associés sont également supprimés. Cette action est irréversible.

Input parameters:

- `expense_id` (integer, required)

### `delete_furniture` (~44 tokens)

Delete Furniture

Supprime un élément de mobilier par son identifiant. Les documents justificatifs associés sont également supprimés. Cette action est irréversible.

Input parameters:

- `furniture_id` (integer, required)

### `delete_property_work` (~46 tokens)

Delete Property Work

Supprime un poste de travaux immobiliers par son identifiant. Les documents justificatifs associés sont également supprimés. Cette action est irréversible.

Input parameters:

- `work_id` (integer, required)

### `delete_document` (~43 tokens)

Delete Document

Supprime un document justificatif par son identifiant. Le fichier physique est également supprimé du stockage. Cette action est irréversible.

Input parameters:

- `document_id` (integer, required)

### `list_categories` (~66 tokens)

List Categories

Retourne toutes les valeurs valides pour les champs de type enum : catégories de charges, sources de revenus, types de bien, types de location, régimes TVA et types de récurrence. Indispensable avant de créer un revenu ou une charge pour connaître les valeurs acceptées.

### `import_airbnb_csv` (~91 tokens)

Import Airbnb Csv

Importe un fichier CSV Airbnb (historique des transactions ou réservations) dans un bien donné. Le contenu du fichier CSV doit être encodé en base64 dans le champ csv_base64. Retourne le nombre de lignes importées, ignorées et les erreurs éventuelles.

Input parameters:

- `csv_base64` (string, required)
- `preview` (boolean)
- `property_id` (integer, required)

### `export_documents` (~79 tokens)

Export Documents

Génère un fichier ZIP contenant tous les justificatifs (factures, reçus, devis) de l'utilisateur, organisés par année et type (charges/mobilier/travaux). Filtrage optionnel par année et/ou type. Retourne une URL de téléchargement temporaire.

Input parameters:

- `type` (string)
- `year` (integer)

### `get_projection` (~101 tokens)

Get Projection

Calcule une projection pluriannuelle du résultat fiscal LMNP sur plusieurs années. Pour chaque année : revenus estimés, charges, amortissements (bâti + travaux + mobilier), plafonnement, report cumulé, résultat fiscal net, comparaison micro-BIC. Tous les montants sont en euros.

Input parameters:

- `expense_growth` (number)
- `income_growth` (number)
- `start_year` (integer)
- `years` (integer)

### `get_simulation` (~96 tokens)

Get Simulation

Compare le régime micro-BIC et le régime réel pour une année donnée. Retourne : revenus bruts, résultats micro-BIC (50% ou 30% selon classement), résultat réel (après charges et amortissements), avantage fiscal, recommandation, et économie d'impôt estimée pour différentes TMI. Tous les montants sont en euros.

Input parameters:

- `abatement` (string)
- `year` (integer)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/manganate006-openlmnp/app-2#diagnostics

## Score history

- 2026-08-03: 61
- 2026-08-02: 61
- 2026-08-01: 61
- 2026-07-31: 59
- 2026-07-30: 58

## Links

- Remote endpoint: https://app.openlmnp.fr/mcp?demo_token=openlmnp_demo_ro_ebd891f45e8a771ca1a718f239b733b438a31d48
- Repository: https://github.com/manganate006/openlmnp
- Changelog RSS feed: https://verifymcp.io/servers/manganate006-openlmnp/app-2/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/manganate006-openlmnp/app-2/changelog.json
- HTML version of this page: https://verifymcp.io/servers/manganate006-openlmnp/app-2
