Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
ODOO_URLNoThe URL of the Odoo base (e.g., https://acme.odoo.com). Optional if connecting interactively.
ODOO_API_KEYNoThe Odoo API key. Optional if connecting interactively.
ODOO_USERNAMENoThe Odoo login email. Optional if connecting interactively.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
odoo_connectA

Se connecter — a appeler en premier. Identifiants en memoire du serveur seulement, jamais sur disque. db deduit du sous-domaine si omis. Laisser allow_write a False (voir odoo_enable_write).

odoo_statusA

État de la connexion courante : base, utilisateur, version, mode lecture/écriture.

odoo_enable_writeA

Activer (ou couper) l'ecriture. A n'appeler QU'APRES avoir montre a l'utilisateur ce qui va etre modifie et obtenu son accord. Les suppressions sont irreversibles.

odoo_modelsB

Lister les modèles disponibles (res.partner, sale.order, ...).

odoo_fieldsA

Champs d'un modele — a consulter AVANT toute ecriture, les noms changent entre versions (en 19 : is_company, pas company_type).

Forme compacte par defaut : "partner_id":"many2one>res.partner*" (* = obligatoire). Filtre avec name_contains. detail=true seulement pour les libelles ou valeurs de selection de quelques champs — la forme detaillee depasse 20 000 tokens.

odoo_searchA

Rechercher et lire. Renvoie aussi le total du domaine (evite un odoo_count).

Tableaux JSON : domain='[["customer_rank",">",0]]' fields='["name","email"]'. Precise toujours fields — sans lui, des champs courants sont choisis d'office.

odoo_countB

Compter les enregistrements correspondant au domaine.

odoo_readC

Lire des enregistrements par identifiants. ids est un tableau JSON, ex. '[1,2]'.

odoo_aggregateB

Nombre et somme(s) par groupby. Remplace read_group (retire du RPC en Odoo 18). measures : liste JSON de champs a sommer. Date : date_order:month (day/week/quarter/year).

odoo_name_findB

Retrouver par nom (autocompletion Odoo) — convertir "le client Polytec" en id.

odoo_createA

Créer un enregistrement. values est un objet JSON, ex. '{"name":"ACME"}'.

Bloqué tant que odoo_enable_write n'a pas été appelé.

odoo_writeA

Modifier des enregistrements. ids tableau JSON, values objet JSON.

Bloqué tant que odoo_enable_write n'a pas été appelé.

odoo_unlinkA

Supprimer definitivement. IRREVERSIBLE, aucune corbeille. Au-dela de 50 : exige confirm_bulk. Archiver ({"active":false}) est souvent preferable.

odoo_upsertA

Creer ou mettre a jour par External ID (ex. 'monprojet.client_acme'). Rejouable sans doublon — a preferer a odoo_create pour maquette et import.

odoo_executeA

Appeler n'importe quelle méthode d'un modèle (execute_kw brut).

En lecture seule, l'appel passe par une liste blanche de méthodes de lecture tenue côté client ; les méthodes d'écriture (create, write, unlink, load, action_confirm, ...) restent bloquées tant que odoo_enable_write n'a pas été appelé.

odoo_update_whereA

Modifier en masse les enregistrements d'un domaine.

Sans confirm : ne modifie RIEN, renvoie le nombre concerne et un echantillon avant/apres. Montre-le a l'utilisateur, obtiens son accord, puis confirm=True.

motif justifie la modification dans le rapport.

odoo_import_fileA

Importer un .xlsx/.csv local (lu sur disque, aucune limite de volume).

Modes a enchainer : inspect (structure) / check (valide sans ecrire) / run (importe par lots, atomique par lot).

Les en-tetes des exports Odoo sont des libelles, pas des champs, d'ou mapping : {"_model":"res.partner","_columns":{"Code":"id","Nom":"name","Notes":null}, "_constants":{"is_company":"True"},"_replace":{"type":{"Goods":"consu"}}} Colonne mappee sur 'id' = import rejouable sans doublon.

odoo_export_fileA

Exporter une recherche vers un .xlsx/.csv local. Relations aplaties (many2one -> libelle). Sans fields, prend les champs courants.

Refuse d'écraser un fichier existant : relancer avec ecraser=true pour forcer.

odoo_get_attachmentA

Telecharger une piece jointe (ir.attachment). Trouver son id : odoo_search sur ir.attachment, domaine '[["res_model","=","account.move"],["res_id","=",42]]'.

Le nom vient d'Odoo : seul son dernier composant est retenu (jamais de '../'). Un fichier existant n'est jamais écrasé — choisir un autre répertoire.

odoo_journal_startA

Ouvrir un journal d'intervention — AVANT toute ecriture.

Trace ensuite chaque ecriture avec l'etat AVANT modification, ce qui permet le rapport. titre et objectif figurent en tete du rapport remis au client.

odoo_journal_chapterC

Etape de travail dans le journal : les operations suivantes y sont rattachees. pourquoi = justification metier, reprise telle quelle dans le rapport.

odoo_journal_noteB

Consigner ce qui n'est pas une ecriture mais merite d'etre explique au client : arbitrage, anomalie, limite, sujet ecarte. categorie : note|decision|alerte.

odoo_journal_reportB

Rapport d'intervention presentable au client : synthese, deroule par etape, detail avant/apres. format : html|markdown|both. journal_path : session passee.

odoo_presentation_guideC

Deroule de demonstration a suivre en reunion, ecran par ecran, deduit de ce qui a ete fait. Chemin de menu exact, clics en cases a cocher, phrase d'accroche.

odoo_recent_changesB

Ce qui a bouge recemment, d'apres l'audit natif d'Odoo (write_date, write_uid). Voit AUSSI les modifications faites dans l'interface par d'autres personnes.

odoo_demo_questionnaireA

Questionnaire de qualification, avant de batir une demo prospect.

Presente-le tel quel, preambule compris. N'invente pas les reponses manquantes : signale tes hypotheses. Puis compose le plan et fais-le valider AVANT d'ecrire.

odoo_demo_modeA

Filet e-mail — a activer AVANT toute generation de donnees de demo.

Les bases de demo ne sont pas neutralisees : confirmer une commande ou une facture envoie un VRAI courriel. Une fois actif, toute adresse ecrite par n'importe quel outil est reecrite vers domaine. Partie gauche conservee (lisible en demo). domaine doit etre injoignable (example.com, ...) : un domaine reel est refuse.

odoo_demo_checkA

Verifier qu'aucune adresse reelle ne subsiste avant de demontrer. Audite contacts (res.partner), salaries (hr.employee), pistes (crm.lead) et utilisateurs (res.users), au plus limit enregistrements par modele et par champ ("tronque" le signale). Avec corriger, les adresses trouvees sont neutralisees.

odoo_dashboard_listA

Lister les tableaux de bord et leurs rubriques.

odoo_dashboard_inspectC

Decrire le contenu d'un tableau de bord (graphiques, sources, filtres) en clair.

odoo_dashboard_createA

Creer (ou remplacer via dashboard_id) un tableau de bord. Graphiques recalcules en direct par Odoo.

graphiques, liste JSON : {"titre":"CA par mois","model":"sale.order","groupby":["date_order:month"], "mesure":"amount_untaxed","type":"line","domaine":[["state","=","sale"]], "pleine_largeur":true} type=bar|line|pie ; mesure "__count" pour compter ; date : champ:month (day/week/quarter/year).

Valide avant ecriture, y compris en lecture seule. rubrique creee si absente.

odoo_saved_analysisC

Favori Odoo : analyse que le client retrouve dans le menu des filtres de la vue, regroupement et mesures en place. Plus leger qu'un tableau de bord.

vue : pivot ou graph. partage la rend visible par tous.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/JamiTheS/odoo-mcp'

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