Skip to content
Conduit

mcp server

openlmnp

OpenLMNP — Logiciel open source de comptabilité LMNP (Location Meublée Non Professionnelle). Laravel 13 + Filament 5.

manganate006/openlmnpcommunitylistedunreviewed

Set up

Hosted by its author. Add the URL to your agent — nothing to install.

~/Library/Application Support/Claude/claude_desktop_config.json
Settings → Connectors → Add custom connector

Name: openlmnp
URL:  https://app.openlmnp.fr/mcp?demo_token=openlmnp_demo_ro_ebd891f45e8a771ca1a718f239b733b438a31d48

same format Cursor, GitHub Copilot CLI, Junie, JetBrains AI Assistant, Augment (Auggie CLI), Factory Droid, Kiro, Devin CLI +12

Values in angle brackets are placeholders. Restart Claude Desktop after editing its config.Claude Desktop docs

README

synced Oct 14, 2026

OpenLMNP

Logiciel open source de comptabilité LMNP (Location Meublée Non Professionnelle)

Gérez vos biens en location meublée, calculez vos amortissements, et produisez votre liasse fiscale au régime réel, sans abonnement et chez vous.

Tests Release Licence PHP Laravel Filament Docker Pulls

🚀 Démo live · 📦 Installation · 📚 Documentation · 🇬🇧 English

🎯 Essayez sans rien installer : la démo en ligne crée un bac à sable éphémère et isolé pour chaque visiteur, pré-rempli avec plusieurs exercices de comptabilité fictive (depuis 2022). Connexion : demo@openlmnp.fr / demo2026.

Sommaire

Pourquoi OpenLMNP ?

Le régime réel LMNP est presque toujours plus avantageux que le micro-BIC pour un meublé, mais il exige des amortissements par composant, une liasse fiscale (2031, 2033) et un FEC conforme. Les options habituelles ont chacune leur défaut :

OpenLMNPTableur maisonSaaS comptableExpert-comptable
CoûtGratuit (AGPLv3)GratuitAbonnement annuelHonoraires annuels
Vos donnéesChez vous (auto-hébergé)Chez vousCloud d'un tiersChez un tiers
Amortissements par composant✅ Automatiques⚠️ Formules à maintenir✅✅
Liasse fiscale + FEC✅ Générés❌✅✅
Calculs au centime (bcmath)✅⚠️ Arrondis flottants✅✅

OpenLMNP automatise le régime réel de bout en bout et reste un outil d'aide : pour les situations complexes (indivision, TVA para-hôtelière, passage en LMP...), un expert-comptable reste recommandé.

Fonctionnalités

🏠 Comptabilité & amortissements

  • Amortissement par composant : gros œuvre, toiture, plomberie, agencements (durées standards), ventilés en pourcentage ou en montants
  • Travaux & mobilier : amortissement dédié ou au prorata, gestion neuf/occasion
  • Emprunts : tableau d'amortissement automatique, intérêts déductibles
  • Charges récurrentes : génération des échéances mensuelles ou trimestrielles, duplication d'une charge
  • Écritures comptables : génération automatique selon le plan comptable LMNP
  • Multi-biens : adresse, surfaces, quote-part résidence principale, valeur vénale estimée d'après les ventes réelles de la commune (données DVF)
  • Reprise d'un dossier existant : assistant en 5 étapes à partir de la dernière liasse de votre cabinet, contrôlée chiffre à chiffre

📋 Fiscal & déclarations

  • Exercices chaînés : reports N-1, amortissements différés, plafonnement, suivi des déficits reportables
  • Simulateur micro-BIC vs régime réel : avec verdict chiffré
  • Projection pluriannuelle : tableau sur 5 à 20 ans, année de bascule des régimes
  • Télédéclaration interactive : lignes Cerfa 2031, 2033-A/B/C/D, 2042-C-PRO avec boutons « Copier », date et numéro de dépôt notés
  • Liasse fiscale PDF : 2031-SD et 2033-A à D, annexes « détail du résultat » et « détail des immobilisations », contrôles de cohérence entre formulaires
  • FEC conforme : article A.47 A-1 du LPF, 18 colonnes, format légal
  • Déclaration de TVA : pour un bien assujetti

🔌 Import & intégrations

  • Import CSV Airbnb / Booking : formats FR/EN, détection des doublons ; import CSV générique des recettes, charges, mobilier et travaux
  • Export CSV : recettes, charges, télédéclaration
  • API MCP (45 outils) : pilotez votre comptabilité depuis un assistant IA (Claude, etc.)
  • Nouvelles versions signalées : dans l'application, d'après les releases GitHub (mise à jour d'une instance Docker par docker pull)

🛡️ Confort & sécurité

  • Multi-utilisateurs : chaque propriétaire voit uniquement ses données
  • Assistants guidés : onboarding, création de bien, clôture fiscale, emprunt, import annuel
  • Justificatifs : pièces jointes aux charges, travaux et mobilier, export ZIP
  • Guide intégré & badges de progression : mise en route, suivi régulier, déclaration annuelle
  • Rapport de diagnostic : tout ce qui produit vos amortissements et votre liasse, en un texte, pour signaler un problème de calcul
  • Dark mode : natif Filament
  • Tests automatisés : suite Pest PHP rejouée à chaque push (détail)

Captures d'écran

SimulateurProjectionTélédéclaration

D'autres captures : tableau de bord · charges

Documentation

DocumentContenu
InstallationAuto-hébergement via Docker : build, run, volumes de persistance, variables d'environnement, mise à jour et sauvegarde
FonctionnalitésAmortissement par composant, FEC, liasse fiscale 2031/2033, import CSV, simulateur, multi-biens, emprunts, justificatifs
Mode démonstrationActiver et utiliser le mode démo multi-utilisateurs (sandbox éphémère isolé par visiteur)
FAQQuestions courantes : gratuité, confidentialité des données, régime réel vs micro-BIC, sauvegardes...
Guide fiscal LMNP / AirbnbRègles fiscales du régime réel : amortissements, abattements, plafonds, réforme 2026
Couverture de testsDétail des tests automatisés, suite par suite
Guide de conception UIChoix de design de l'interface Filament
Journal des versionsNouveautés et corrections, version par version
SécuritéSignaler une faille en privé

Pour contribuer au projet, voir CONTRIBUTING.md.

Stack technique

ComposantTechnologie
FrameworkLaravel 13
Admin UIFilament 5
InteractivitéLivewire 4
Base de donnéesSQLite (PostgreSQL en option)
PDFDomPDF
Calculs financiersPHP bcmath (précision décimale)
TestsPest PHP
DéploiementDocker

Installation rapide (Docker)

Avec l'image officielle manganate06/openlmnp :

docker run -d --name openlmnp -p 8090:8000 \
  -v openlmnp-database:/var/www/html/database \
  -v openlmnp-storage:/var/www/html/storage \
  --restart unless-stopped manganate06/openlmnp:latest

Ou en construisant l'image depuis les sources, avec le docker-compose.yml fourni :

git clone https://github.com/manganate006/openlmnp.git
cd openlmnp
docker compose up -d

Accès : http://localhost:8090 Première connexion : créez votre compte sur /register : le premier compte devient administrateur, et l'inscription se referme ensuite d'elle-même.

Déploiement sur un PaaS (Coolify, Dokploy, Easypanel)

Sur un PaaS auto-hébergé, le fichier docker-compose.coolify.yml donne un déploiement prêt à l'emploi : domaine, certificat TLS et reverse proxy sont câblés par la plateforme. Sur Coolify : New Resource → Docker Compose (Empty), coller le fichier, Deploy. Détails et points de vigilance dans docs/INSTALLATION.md.

Installation LXC Proxmox (script communautaire)

Sur un hôte Proxmox VE, crée un conteneur LXC prêt à l'emploi en une seule commande :

bash -c "$(curl -fsSL https://raw.githubusercontent.com/manganate006/openlmnp/main/community-scripts/ct/openlmnp.sh)"

Debian 13 · nginx + PHP 8.4-FPM · SQLite. Un mot de passe admin aléatoire est généré à l'installation et enregistré dans /opt/openlmnp/admin_credentials.txt.

Installation développement

git clone https://github.com/manganate006/openlmnp.git
cd openlmnp
composer install
cp .env.docker .env
php artisan key:generate
touch database/database.sqlite
php artisan migrate:fresh --seed
php artisan serve

Configuration

À la première visite, créez votre compte sur /register : il devient administrateur, puis la page d'inscription se referme automatiquement (instance personnelle par défaut, réglable via ALLOW_REGISTRATION). Ajoutez ensuite votre SIREN dans votre profil pour les documents fiscaux.

VariableDescriptionDéfaut
DB_CONNECTIONBase de donnéessqlite
DB_DATABASEChemin SQLitedatabase/database.sqlite
APP_URLAdresse publique de l'instance, schéma compris (https://lmnp.exemple.fr)http://localhost
TRUSTED_HOSTSAutres noms d'hôte acceptés quand APP_URL porte un domaine (IP, alias), séparés par des virgules (sinon erreur 400)vide
APP_LOCALELanguefr
ALLOW_REGISTRATIONInscription : auto (jusqu'au premier compte), true (toujours), false (jamais)auto
FEEDBACK_ENABLEDInvitation ponctuelle à donner son avis sur le logiciel (voir ci-dessous)true
TELEMETRY_ENABLEDSignal quotidien anonyme (identifiant aléatoire + version) pour compter les instances installées ; aucune donnée comptable ni personnelletrue
DVF_ENABLEDBouton d'estimation de la valeur vénale ; au clic seulement, il interroge data.gouv.fr avec la commune du bientrue

Donner son avis (et comment l'éteindre)

Après un moment d'utilisation réelle, l'application propose une fois de dire ce que vous pensez du logiciel : un pouce, et si vous le souhaitez un mot. C'est le seul retour que reçoit un projet développé sur du temps libre.

Rien ne quitte votre instance. Sans FEEDBACK_FORWARD_EMAIL, votre retour est simplement enregistré dans votre propre base ; l'écran de confirmation vous propose alors de l'envoyer vous-même, par votre client mail, si vous en avez envie. Aucun envoi automatique, aucun appel sortant.

Pour la désactiver complètement :

FEEDBACK_ENABLED=false

Les seuils sont réglables sans toucher au code : FEEDBACK_MIN_SECONDS (240), FEEDBACK_MIN_ACTIONS (1), FEEDBACK_COOLDOWN_DAYS (30), FEEDBACK_AUDIENCES.

Emails (optionnel)

Aucun email ne part par défaut (MAIL_MAILER=log), et l'application fonctionne très bien sans. Pour activer le lien « Mot de passe oublié », branchez le SMTP de votre choix via les variables MAIL_* (l'expéditeur est votre propre adresse ; SPF/DKIM sont gérés par votre fournisseur). Et en cas d'oubli sans SMTP, depuis le serveur :

php artisan openlmnp:reset-password vous@exemple.fr

📖 Référence complète : toutes les variables, volumes de persistance, comptes, SMTP pas à pas, sauvegarde : docs/INSTALLATION.md

Sauvegarde

Tout tient dans deux volumes : database (la base SQLite) et storage (vos justificatifs). La base est en mode WAL : ne copiez pas database.sqlite pendant que l'instance tourne, la copie perdrait ses dernières écritures sans le moindre message. Prenez un instantané cohérent avec sqlite3 database.sqlite ".backup 'instantane.sqlite'", ou arrêtez le conteneur avant de copier. Procédure complète et restauration : docs/INSTALLATION.md.

Tests

Tests

Suite Pest PHP rejouée à chaque push : services de calcul, liasse et FEC, pages Filament, isolation multi-utilisateurs, mode démo. Détail suite par suite : docs/TESTS.md.

# Lancer tous les tests
vendor/bin/pest

# Par catégorie
vendor/bin/pest --filter="Depreciation"
vendor/bin/pest --filter="FiscalYear"
vendor/bin/pest --filter="Filament"

Contribution

Les contributions sont les bienvenues ! Merci d'ouvrir une issue avant de soumettre une PR, et de lire CONTRIBUTING.md. Une faille de sécurité se signale en privé, jamais dans une issue publique : voir SECURITY.md.

# Fork + clone
git checkout -b feature/ma-fonctionnalite
# ... modifier ...
vendor/bin/pest  # vérifier que les tests passent
git commit -m "feat: description"
git push origin feature/ma-fonctionnalite
# Ouvrir une PR

💛 Comment nous soutenir ?

OpenLMNP est développé sur mon temps libre. Si l'outil vous rend service, voici comment m'aider à continuer :

  • ⭐ Mettez une étoile sur le dépôt, ça aide d'autres loueurs meublés à découvrir le projet
  • 💛 Devenez sponsor via GitHub Sponsors : quelques euros par mois financent le temps de développement
  • 🐛 Signalez un bug ou proposez une fonctionnalité via les issues
  • 🔧 Contribuez du code : voir CONTRIBUTING.md

Merci à toutes celles et ceux qui soutiennent le projet !

Remerciements

OpenLMNP doit beaucoup à celles et ceux qui l'ont installé, confronté à leur propre dossier et nous ont dit ce qui n'allait pas : @cocool97, @ptitzgeg-on-git, @ovrtn et @DamienFr. Le détail de leurs contributions (correctifs, signalements, sécurité) est sur la page Remerciements.

Licence

AGPLv3, logiciel libre. Vous pouvez l'utiliser, le modifier et le redistribuer à condition de partager les modifications sous la même licence.

Crédits


↑↓ navigate openesc close