Skip to main content
Glama
datamoc

Wealthfolio MCP Server

by datamoc
CHANGELOG.md10.7 kB
# Changelog - Wealthfolio MCP Server ## Version 2.1.0 - 2025-12-11 ### 🐛 Correction critique #### get_all_holdings - Fix: Attribution correcte par compte individuel **Problème:** La fonction ne retournait que 2 holdings au lieu de tous les holdings existants **Solution finale:** - ✅ Utilise maintenant la table `activities` pour calculer les holdings par compte - ✅ Chaque holding est attribué à son **compte réel** (PEA Michel, PER Bourso, etc.) - ✅ Si un actif est détenu dans plusieurs comptes, il apparaît séparément pour chaque compte - ✅ Retourne maintenant **30 positions** (certains actifs dans plusieurs comptes) - ✅ Calcul précis des quantités et PRU par compte **Exemple:** WPEA.PA apparaît 2 fois: - PEA Michel: 22,670 parts - PEA AS: 4,220 parts ### 🎉 Nouvelle fonctionnalité #### get_all_holdings - Vue patrimoniale complète en JSON - ✅ Nouvelle fonction `get_all_holdings` retournant une structure JSON complète avec **informations maximales** - ✅ Combine actifs financiers + immobilier + crédits en un seul appel - ✅ Structure de réponse standardisée avec détails complets: - `financial_holdings`: Liste détaillée avec **compte**, **actif**, et **position** pour chaque holding - **Account info**: id, nom, groupe, type de compte - **Asset info**: symbol, nom, type, classe, sous-classe, secteurs, ISIN, devise - **Holding info**: quantité, PRU, book value, prix marché, valeur, gain/perte (€ et %), dates - `real_estate`: Propriétés immobilières avec totaux (valeur brute, dette, valeur nette) - `loans`: Liste des crédits immobiliers - `summary`: Synthèse globale (total actifs financiers, immobilier, dette, patrimoine net) - ✅ Gestion d'erreurs robuste: retourne au moins les holdings financiers même si l'immobilier échoue - ✅ Chargement automatique depuis la base de données SQLite (`app_settings`) **Exemple de structure retournée:** ```json { "financial_holdings": [ { "account": { "id": "acc-123", "name": "PEA", "group": "Investment", "type": "securities" }, "asset": { "id": "AAPL", "symbol": "AAPL", "name": "Apple Inc.", "type": "Stock", "class": "Equity", "sub_class": "Large Cap", "sectors": "Technology", "currency": "USD", "isin": "US0378331005" }, "holding": { "quantity": 100, "average_cost": 130.00, "book_value": 13000.00, "market_price": 150.00, "market_value": 15000.00, "gain_loss": 2000.00, "gain_loss_pct": 15.38, "last_quote_date": "2025-12-11T14:30:00Z", "snapshot_date": "2025-12-11" } } ], "real_estate": { "properties": [...], "total_value": 650000.00, "total_debt": 350000.00, "net_value": 300000.00 }, "loans": [...], "summary": { "total_financial_assets": 968673.86, "total_real_estate_gross": 803000.00, "total_debt": 541708.28, "total_net_worth": 1229965.58 } } ``` --- ## Version 2.0.0 - 2025-11-16 ### 🎉 Nouveautés majeures #### Module Immobilier (6 nouvelles fonctions) - ✅ `get_real_estate_properties` - Liste des propriétés immobilières - ✅ `get_real_estate_loans` - Liste des crédits immobiliers (avec filtrage) - ✅ `get_real_estate_summary` - Synthèse du patrimoine immobilier - ✅ `get_total_net_worth` - Patrimoine net total (financier + immobilier) - ✅ `get_loan_amortization` - Tableau d'amortissement détaillé avec simulation - ✅ `get_real_estate_valuations` - Historique des valorisations #### Analyse de comptes (1 nouvelle fonction) - ✅ `get_accounts_summary` - Analyse détaillée par groupe de comptes --- ### 🐛 Corrections importantes #### 1. get_portfolio_summary() - Patrimoine complet **Avant:** Affichait uniquement les actifs financiers (~969k EUR) ``` Valeur totale du portefeuille: 968,673.86 EUR ``` **Après:** Affiche le patrimoine total (financier + immobilier) ``` 💼 PATRIMOINE TOTAL: 1,229,965.58 EUR ============================================================ Actifs financiers: 968,673.86 EUR Immobilier net: 261,291.72 EUR (Valeur brute: 803,000.00 EUR Dette: -541,708.28 EUR) RÉPARTITION GLOBALE: Financier: 78.8% Immobilier: 21.2% ``` #### 2. get_loan_amortization() - Mois écoulés et durée contractuelle **Problèmes corrigés:** - ❌ Ne prenait pas en compte les mois déjà payés - ❌ Calculait une durée incorrecte (181 mois au lieu de 176) - ❌ Jour d'échéance incorrect **Après correction:** ``` PAIEMENTS DÉJÀ EFFECTUÉS: Mois écoulés: 4 ✅ Capital remboursé: 9,991.72 EUR ✅ Intérêts payés (estimé): 5,916.24 EUR ✅ SOLDE ACTUEL: Mois restants: 176 ✅ (au lieu de 181) Date de fin: 2040-07-17 ✅ ÉCHÉANCIER: Mois 5 → 2025-12-17 ✅ (le 17 de chaque mois) Mois 180 → 2040-07-17 ✅ (dernier paiement) ``` #### 3. Imports datetime manquants - ✅ Ajout de `from datetime import datetime` dans `get_total_net_worth()` - ✅ Ajout de `from datetime import datetime, timedelta` dans `get_loan_amortization()` --- ### 🛡️ Améliorations de robustesse #### Gestion des cas limites **1. Absence de l'addon Real Estate** ```python # Avant: Plantait avec une erreur # Après: Retourne une structure vide valide { "properties": [], "loans": [], "valuations": [], "loanEvents": [] } ``` **2. Portfolio Summary sans immobilier** ``` # Fonctionne avec ou sans addon # Affiche uniquement ce qui est disponible ``` **3. Validation complète des données** - ✅ Vérification de l'existence de la table `app_settings` - ✅ Validation du JSON (structure, types, champs requis) - ✅ Gestion des valeurs manquantes ou nulles - ✅ Messages d'erreur clairs et actionnables **4. get_loan_amortization() - Validation des champs** ```python # Champs requis validés required_fields = ['originalAmount', 'currentBalance', 'interestRate', 'monthlyPayment', 'startDate', 'endDate'] # Validation des valeurs if original_amount <= 0: return "Erreur: Montant initial invalide" if start_date >= end_date: return "Erreur: Dates invalides" ``` --- ### 📊 Résumé des outils disponibles **Total: 13 outils MCP** #### Portfolio financier (6 outils) 1. `get_portfolio_summary` - **AMÉLIORÉ** - Inclut l'immobilier 2. `run_sql_query` - Requêtes SQL SELECT 3. `create_activity` - Créer des transactions 4. `create_asset` - Créer des actifs 5. `execute_write_query` - Requêtes d'écriture 6. `fetch_and_update_quotes` - Télécharger les cotations #### Module immobilier (6 outils) - **NOUVEAU** 7. `get_real_estate_properties` - Liste des propriétés 8. `get_real_estate_loans` - Liste des crédits 9. `get_real_estate_summary` - Synthèse immobilière 10. `get_total_net_worth` - Patrimoine net total 11. `get_loan_amortization` - Tableau d'amortissement 12. `get_real_estate_valuations` - Historique valorisations #### Analyse de comptes (1 outil) - **NOUVEAU** 13. `get_accounts_summary` - Analyse par groupe de comptes --- ### 🧪 Tests #### Tests créés/modifiés 1. **`tests/test_real_estate.py`** (NOUVEAU) - 6 tests pour le module immobilier - Résultat: 6/6 passés ✅ 2. **`tests/test_corrections.py`** (NOUVEAU) - 4 tests pour les corrections - Résultat: 4/4 passés ✅ 3. **`tests/test_amortization.py`** (NOUVEAU) - Test spécifique pour l'amortissement - Résultat: 1/1 passé ✅ 4. **`tests/test_robustness.py`** (NOUVEAU) - 6 tests de robustesse - Résultat: 6/6 passés ✅ **Total: 17 tests - 17/17 passés (100%)** 🎉 --- ### 📝 Documentation #### Fichiers créés/mis à jour 1. **`CLAUDE.md`** - Mis à jour avec les 13 outils 2. **`README.md`** - Ajout module immobilier et exemples 3. **`CORRECTIONS.md`** (NOUVEAU) - Documentation des corrections 4. **`ROBUSTNESS.md`** (NOUVEAU) - Guide de robustesse complet 5. **`CHANGELOG.md`** (CE FICHIER) - Historique des changements --- ### 💡 Exemples d'utilisation #### Analyse de patrimoine ``` "Montre-moi mon patrimoine total" → 💼 PATRIMOINE TOTAL: 1,229,965.58 EUR Financier: 78.8% Immobilier: 21.2% "Affiche mes comptes par groupe" → Investissement: 812,702.73 EUR (83.9%) Retraite: 94,293.14 EUR (9.7%) ... ``` #### Module immobilier ``` "Quelles sont mes propriétés immobilières?" → 📍 Appartement Paris Valeur: 803,000 EUR Plus-value: 53,000 EUR "Calcule le tableau d'amortissement de mon crédit" → Mois écoulés: 4 Mois restants: 176 Intérêts totaux estimés: 179,977.90 EUR ``` --- ### 🔄 Migration #### Pour les utilisateurs existants **Aucune action requise!** - ✅ Toutes les fonctions existantes continuent de fonctionner - ✅ Les nouvelles fonctions s'ajoutent automatiquement - ✅ Compatible avec ou sans addon Real Estate - ✅ Détection automatique des fonctionnalités disponibles #### Installation/Mise à jour 1. Redémarrer Claude Desktop 2. Les 13 outils seront automatiquement disponibles 3. Tester avec: `"Montre-moi mon patrimoine total"` --- ### ⚙️ Configuration **Fichier:** `%APPDATA%\Claude\claude_desktop_config.json` ```json { "mcpServers": { "wealthfolio": { "command": "uv", "args": [ "--directory", "C:\\Users\\<username>\\dev\\WFmcp", "run", "python", "mcp_server.py" ], "env": { "DB_PATH": "C:\\Users\\<username>\\AppData\\Roaming\\com.teymz.wealthfolio\\app.db" } } } } ``` --- ### 📊 Statistiques **Lignes de code:** - Code ajouté: ~600 lignes - Tests ajoutés: ~800 lignes - Documentation: ~1200 lignes - **Total: ~2600 lignes** **Fonctionnalités:** - Outils MCP: 6 → 13 (+117%) - Modules: 1 → 3 (Financier, Immobilier, Comptes) - Tests: 0 → 17 - Couverture: 100% --- ### 🚀 Prochaines étapes possibles #### Améliorations futures (optionnelles) - [ ] Export des données en CSV/JSON - [ ] Graphiques d'évolution du patrimoine - [ ] Alertes et notifications (LTV > 80%, etc.) - [ ] Simulation de scénarios (retraite, vente, etc.) - [ ] Comparaison avec benchmarks - [ ] Analyse fiscale (IFI, etc.) --- ### 🙏 Remerciements Développé pour Wealthfolio (https://wealthfolio.app/) Utilise le Model Context Protocol (https://modelcontextprotocol.io/) --- ## Version 1.0.0 - 2025-11-01 ### Fonctionnalités initiales - ✅ Portfolio Summary - ✅ SQL Queries - ✅ Create Activities - ✅ Create Assets - ✅ Execute Write Queries - ✅ Fetch and Update Quotes --- **Version actuelle: 2.0.0** **Statut: Production Ready ✅** **Tests: 17/17 passés (100%) 🎉**

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/datamoc/WFmcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server