Provides a comprehensive suite of tools to manage Odoo ERP data, including timesheet tracking, expense reporting with attachment support, contact and product management, sales and invoice tracking, and HR functions like leave allocations and public holiday management.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Odoo ServerCreate a 2-hour timesheet for the 'Website Redesign' project today."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Odoo Server
Serveur MCP (Model Context Protocol) pour intégrer Odoo avec Claude et d'autres assistants IA compatibles MCP.
Fonctionnalités
Ce serveur MCP permet de gérer les données Odoo via une interface conversationnelle :
Gestion du temps (Timesheets)
list_projects- Lister les projets disponibleslist_tasks- Lister les tâches (filtrable par projet)list_timesheets- Lister les pointagesget_timesheet_summary_by_employee- Résumé des heures par employécreate_timesheet- Créer un pointageupdate_timesheet- Modifier un pointagedelete_timesheet- Supprimer un pointage
Notes de frais (Expenses)
list_expense_categories- Lister les catégories de dépenseslist_expenses- Lister les notes de fraiscreate_expense- Créer une note de fraisupdate_expense- Modifier une note de frais (avec support analytic_account_id)delete_expense- Supprimer une note de fraisadd_expense_attachment- Ajouter une pièce jointelist_expense_attachments- Lister les pièces jointes
Contacts
list_contacts- Lister les contacts (clients/fournisseurs)get_contact- Détails d'un contactcreate_contact- Créer un contact
Facturation
list_invoices- Lister les facturesget_invoice- Détails d'une facture
Ventes
list_sale_orders- Lister les commandes/devisget_sale_order- Détails d'une commande
Produits
list_products- Lister les produitsget_product- Détails d'un produit
Ressources humaines
list_employees- Lister les employésget_employee- Détails d'un employélist_departments- Lister les départementslist_leave_types- Types de congés disponiblescreate_leave_allocation- Créer une allocation de congéslist_leave_allocations- Lister les allocationsapprove_leave_allocation- Approuver une allocationcreate_public_holiday- Créer un jour fériélist_public_holidays- Lister les jours fériés
Utilitaires
test_connection- Tester la connexion Odoosearch_records- Rechercher dans n'importe quel modèle Odooget_rd_project_costs- Coûts des projets R&D
Installation
Prérequis
Python 3.11+
Une instance Odoo avec accès API
Une clé API Odoo
Redis (optionnel, pour le cache)
Installation
# Cloner le repository
git clone https://github.com/industream/mcp-odoo.git
cd mcp-odoo
# Créer un environnement virtuel
python -m venv venv
source venv/bin/activate # Linux/Mac
# ou: venv\Scripts\activate # Windows
# Installation standard
pip install -e .
# Installation avec toutes les dépendances (dev + redis)
pip install -e ".[all]"
# Configurer les variables d'environnement
cp .env.example .env
# Éditer .env avec vos credentials OdooConfiguration
Créez un fichier .env à partir de .env.example :
# URL de votre instance Odoo (sans slash final)
ODOO_URL=https://votre-instance.odoo.com
# Nom de la base de données Odoo
ODOO_DB=votre-instance
# Votre nom d'utilisateur (email)
ODOO_USERNAME=votre-email@example.com
# Votre clé API Odoo
ODOO_API_KEY=votre-cle-api
# Redis Cache (optionnel)
REDIS_ENABLED=true
REDIS_URL=redis://localhost:6379/0
REDIS_DEFAULT_TTL=300
# Logging
LOG_LEVEL=INFO
LOG_FORMAT=json # ou "text" pour le développementObtenir une clé API Odoo
Connectez-vous à votre instance Odoo
Cliquez sur votre profil en haut à droite
Allez dans Préférences
Onglet Sécurité du compte
Section Clés API > Nouvelle clé API
Donnez un nom à la clé et copiez-la
Utilisation avec Claude Code
Ajoutez le serveur MCP dans votre configuration Claude Code (~/.config/claude-code/settings.json) :
{
"mcpServers": {
"odoo": {
"type": "stdio",
"command": "/chemin/vers/mcp-odoo/venv/bin/python",
"args": ["-m", "mcp_odoo.server"],
"cwd": "/chemin/vers/mcp-odoo/src"
}
}
}Redémarrez Claude Code pour charger le serveur.
Exemples d'utilisation
Une fois configuré, vous pouvez demander à Claude :
"Liste mes pointages de cette semaine"
"Crée un pointage de 2h sur le projet X"
"Montre-moi le résumé des heures par employé pour novembre"
"Ajoute une note de frais de 50€ pour un repas client"
"Liste les factures en attente"
Développement
Commandes disponibles (Makefile)
# Installation
make install # Installation production
make install-dev # Installation développement (avec linting, tests, etc.)
# Qualité du code
make lint # Vérifier le code (ruff)
make format # Formater le code (ruff)
make typecheck # Vérification des types (mypy)
# Tests
make test # Tests unitaires
make test-cov # Tests avec couverture
make test-integration # Tests d'intégration
# Build
make build # Construire le package
make clean # Nettoyer les artefacts
# Lancer le serveur
make run # Mode production
make run-dev # Mode debug (LOG_LEVEL=DEBUG)
# Docker
make docker-up # Démarrer les services (Redis, etc.)
make docker-down # Arrêter les servicesStructure du projet
mcp-odoo/
├── src/
│ └── mcp_odoo/
│ ├── __init__.py
│ ├── server.py # Serveur MCP principal
│ ├── client.py # Client Odoo XML-RPC
│ ├── config.py # Configuration (pydantic-settings)
│ ├── cache.py # Cache Redis
│ ├── logging_config.py # Configuration logging
│ ├── validators.py # Validation des données
│ ├── formatters.py # Formatage des réponses
│ ├── decorators.py # Décorateurs utilitaires
│ ├── exceptions.py # Exceptions personnalisées
│ ├── constants.py # Constantes
│ └── tools/ # Outils MCP par domaine
│ ├── contacts.py
│ ├── products.py
│ ├── sales.py
│ ├── invoices.py
│ ├── expenses.py
│ ├── projects.py
│ ├── timesheets.py
│ ├── hr.py
│ └── utilities.py
├── tests/
│ ├── unit/ # Tests unitaires
│ └── integration/ # Tests d'intégration
├── server.py # Point d'entrée legacy
├── pyproject.toml # Configuration du projet
├── Makefile # Commandes de développement
├── docker-compose.yml # Services Docker (Redis, etc.)
└── .env.example # Template de configurationDocker
Le projet inclut un docker-compose.yml avec Redis pour le cache :
# Démarrer Redis
docker-compose up -d redis
# Vérifier le statut
docker-compose psLicence
MIT
Contributions
Les contributions sont les bienvenues ! N'hésitez pas à ouvrir une issue ou une pull request.
Avant de contribuer, assurez-vous que :
make lint # Pas d'erreurs de linting
make typecheck # Pas d'erreurs de typage
make test # Tous les tests passentResources
Looking for Admin?
Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.