Module 2 — Démarrage rapide en mode YOLO
Ce module met en place, pour de vrai, la stack la plus rapide à obtenir : Odoo 16, PostgreSQL, et le serveur MCP en mode YOLO (voir Module 1). Toutes les commandes ci-dessous ont été exécutées telles quelles ; les sorties affichées sont réelles.
Structure du projet
Section titled “Structure du projet”Le projet complet est disponible sur GitHub — mcp-odoo-toolkit. Sa structure :
mcp-odoo-toolkit/├── docker/│ └── Dockerfile # image du serveur MCP├── docker-compose.yml # Odoo + PostgreSQL + serveur MCP├── .env.example # variables à copier en .env├── src/mcp_odoo_toolkit/ # client Python réutilisable (SDK MCP officiel)├── examples/demo.py # démo bout en bout└── tests/ # tests unitaires (pytest)1. Démarrer PostgreSQL et Odoo
Section titled “1. Démarrer PostgreSQL et Odoo”git clone https://github.com/Julionores/mcp-odoo-toolkit.gitcd mcp-odoo-toolkitdocker compose up -d db odooSortie obtenue (première exécution, avec téléchargement de l’image odoo:16) :
Image odoo:16 Pulled Container mcp-odoo-toolkit-db-1 Started Container mcp-odoo-toolkit-odoo-1 StartedVérification :
docker compose psNAME IMAGE STATUS PORTSmcp-odoo-toolkit-db-1 postgres:16 Up 47 seconds 5432/tcpmcp-odoo-toolkit-odoo-1 odoo:16 Up 47 seconds 0.0.0.0:8069->8069/tcp2. Créer une base Odoo avec données de démonstration
Section titled “2. Créer une base Odoo avec données de démonstration”Odoo n’a, à ce stade, aucune base de données. On en crée une via l’API du gestionnaire de bases (/web/database/create), avec demo=true pour charger les données de démonstration (contacts, produits…) — utile pour avoir de vraies données à interroger avec MCP :
curl -s -X POST http://localhost:8069/web/database/create \ -F "master_pwd=admin" \ -F "name=mcp_demo" \ -F "login=admin" \ -F "password=admin" \ -F "lang=fr_FR" \ -F "country_code=fr" \ -F "demo=true" \ -o /tmp/create_db_response.html -w "HTTP %{http_code}\n"HTTP 303Un code 303 (redirection vers /web) indique que la création a réussi. Confirmation via l’API JSON-RPC de listage des bases :
curl -s http://localhost:8069/web/database/list -X POST \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"call","params":{}}'{"jsonrpc": "2.0", "id": null, "result": ["mcp_demo"]}3. Configurer et démarrer le serveur MCP en mode YOLO
Section titled “3. Configurer et démarrer le serveur MCP en mode YOLO”Copiez .env.example en .env :
cp .env.example .envODOO_DB=mcp_demoODOO_USER=adminODOO_PASSWORD=admin# Mode YOLO : fonctionne sans le module Odoo mcp_server, mais sans controle# d'acces par modele. A reserver aux environnements de demonstration/test.ODOO_YOLO=truePuis construisez et démarrez le conteneur du serveur MCP :
docker compose up -d --build mcp-serverLes logs du conteneur confirment la connexion et le mode actif :
2026-09-12 04:55:29 - Initialized Odoo MCP Server v0.8.02026-09-12 04:55:29 - Starting MCP server with HTTP transport on 0.0.0.0:8000...2026-09-12 04:55:29 - WARNING - YOLO FULL-ACCESS MODE IS ENABLED: unauthenticated clients could read, write and delete ANY record.2026-09-12 04:55:30 - Successfully authenticated with username/password for user ID 22026-09-12 04:55:30 - Successfully connected to Odoo at http://odoo:80692026-09-12 04:55:30 - access_control - WARNING - YOLO mode (FULL ACCESS): Access control bypassed! All models accessible, MCP security disabled.INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)C’est exactement la mise en garde évoquée au Module 1 : le serveur fonctionne, mais tout ce que l’utilisateur admin peut voir dans Odoo est accessible à quiconque atteint ce port, sans distinction de modèle.
docker compose psNAME IMAGE STATUS PORTSmcp-odoo-toolkit-db-1 postgres:16 Up 5432/tcpmcp-odoo-toolkit-mcp-server-1 mcp-odoo-toolkit-mcp-server Up 0.0.0.0:8000->8000/tcpmcp-odoo-toolkit-odoo-1 odoo:16 Up 0.0.0.0:8069->8069/tcpLes trois services tournent. Le serveur MCP est joignable en transport streamable-http sur http://localhost:8000/mcp.
Prochaine étape
Section titled “Prochaine étape”La stack est prête, mais nous n’avons encore rien demandé au serveur MCP lui-même. Le Module 3 écrit un vrai client Python avec le SDK officiel MCP et exerce ses tools sur les données de démonstration que nous venons de charger.