Skip to main content
Glama
dannyg-sys

Odoo MCP Server

by dannyg-sys

odoo_project

Manage Odoo project databases: list active projects, switch configurations, scaffold new ones, import backups, reset to fresh state, or stream remote data via SSH.

Instructions

Manage projects and their databases. action: list (projects + active one) | switch (activate odoo-.conf and restart; also changes the running Odoo 18/19) | new (scaffold a new project) | import (load a backup into the active DB) | fresh (reset the active DB to a fresh one initialized with base, + 'modules') | stream (stream a remote nellika.sh/tcff Odoo db+filestore over SSH into the active project). DESTRUCTIVE: import/fresh/stream drop the active DB; new creates/recreates the named DB.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNoNew project name (new) — used for odoo-<name>.conf, the database, and the ./<name> addons symlink
repoNoPath to symlink ./<name> at (new; default ~/git/<name>)
actionYesWhat to do
dbOnlyNoRestore DB only, skip filestore (import/stream)
modulesNoComma-separated modules to install (new) or initialize (fresh), e.g. 'sale,account,stock'
noStartNoDo not start Odoo afterwards (new/import/fresh/stream)
projectNoProject name (switch)
httpPortNohttp_port for a new project (new; default 8069)
remoteDbNoOverride the auto-discovered remote db name (stream)
backupFileNoBackup file path (import): .zip / .sql / .sql.gz / .dump
enterpriseNoInclude enterprise addons (new)
neutralizeNoNeutralize the DB after import/stream (disable mail/crons/payments)
remoteHostNoRemote SSH host to stream from (stream), e.g. 'nellika_production_odoo'
odooVersionNoOdoo version for a new project (new)18
filestoreOnlyNoStream the filestore only, skip the database (stream)
remoteDataDirNoOverride the auto-discovered remote data_dir (stream)

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observedv1.0.0

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly warns that import/fresh/stream drop the active DB and that new creates/recreates the named DB, and it notes that switch restarts Odoo and changes the running version. This is strong transparency, though it does not cover prerequisites like SSH access or auth expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but efficiently packed: it opens with the tool's purpose, enumerates all six actions in a scannable pipe-separated format, and closes with the critical destructive warning. A little more visual separation between actions would improve readability, but there is no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (16 parameters, 6 distinct actions, no output schema, no annotations), the description covers the essential behavioral outcomes for every action and flags destructive operations. It does not describe return values or error behavior, but the lack of an output schema and the action-focused nature of the tool make this a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the input schema already documents all parameters. The description adds contextual meaning by mapping actions to their effects and mentioning that fresh initializes with 'modules', but it does not go beyond the schema at the parameter level. A baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as managing Odoo projects and their databases, with each supported action explicitly defined. It differentiates itself from sibling tools by focusing on project/database lifecycle operations rather than server, module, or info queries, but does not explicitly name alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Each action (list, switch, new, import, fresh, stream) has a concise one-line description that tells an agent what scenario it maps to. There is no explicit exclusion guidance or comparison against sibling tools, but the action-level context is sufficient for correct tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

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/dannyg-sys/odoo-mcp-server'

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