Skip to main content
Glama
dannyg-sys

Odoo MCP Server

by dannyg-sys

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v1.0.0

  • Disambiguation4/5

    The four tools are split into clearly distinct domains: server control, module operations, project inspection, and database/project management. Mild overlap remains because odoo_project=switch performs a restart and odoo_modules refers to odoo_info=logs for full output, but the descriptions prevent serious confusion.

    Naming Consistency5/5

    All tool names follow the same odoo_<noun> snake_case pattern, making the namespace easy to predict. The subactions are lowercase and consistent enough within each tool.

    Tool Count5/5

    Four tools is within the ideal range and each tool represents a meaningful high-level area of Odoo work. No tool feels redundant; the small count keeps the surface navigable while covering server, module, info, and project concerns.

    Completeness4/5

    Core workflows are covered: starting/stopping the server, updating/installing/testing modules, inspecting logs/config, and managing project databases. Obvious gaps include no module scaffolding, no project deletion, and no database export/backup, but these are workable edge cases rather than core dead ends.

  • Average 3.8/5 across 4 of 4 tools scored. Lowest: 3.2/5.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 1 commit in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior3/5

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

    No annotations exist, so the description carries the full burden of behavioral disclosure. It does add useful context, such as 'logs (tail the full odoo.log)' and 'addons-dir (active core source: _odoo18 or _odoo19)', and the verb 'inspect' signals a read-only intent. However, it does not disclose return formats, output types, or any potential side effects, so transparency is only partial.

    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 a single compact sentence that front-loads the core purpose and lists actions with useful parenthetical details. It is efficient and free of filler, though the pipe-separated style is somewhat dense and could be more readable.

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

    Completeness3/5

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

    For a small inspection tool with no output schema and no annotations, the description covers the main actions but leaves some return semantics unclear (e.g., what exactly config-path or project-config returns). The schema fills parameter gaps, but the overall tool context is adequate rather than complete.

    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 description coverage is 100%, so the baseline is 3 even though the description does not deeply explain parameters. The description adds minor clarifications (e.g., that addons-dir refers to _odoo18 or _odoo19 source), but it does not explain the 'lines' parameter or the 'project' parameter beyond what the schema already states.

    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 opens with a clear verb and resource ('Inspect the active project') and enumerates six concrete actions, so an agent knows exactly what the tool does. It does not explicitly differentiate from sibling tools like odoo_server or odoo_project, but the inspection-focused scope and action list make the purpose reasonably distinct.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus its siblings (odoo_server, odoo_modules, odoo_project). The action list implies an inspection use case, but there are no exclusion criteria, no 'instead use X' statements, and no conditions for choosing this tool.

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

  • Behavior3/5

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

    It discloses that output is filtered to errors/warnings and points to an alternative for the full log. With no annotations present, the description carries the full burden, and it does not disclose potential side effects of update/install/frontend actions (e.g., project mutation, server restart), which is a notable gap for a mutating tool.

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

    Conciseness5/5

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

    Two sentences with no filler. The main action is front-loaded, and each sentence contributes distinct information: the action set/modules requirement and the output filtering/fallback behavior.

    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?

    Covers the action set, modules requirements, and output behavior including a fallback for full logs. It is largely sufficient for a 4-parameter tool with no output schema, though it leaves 'frontend' undefined and does not describe success/error return shapes.

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

    Parameters4/5

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

    Schema coverage is 100%, providing a baseline of 3. The description adds value by specifying action-dependent requirements for modules (required for update/install/frontend; optional for test = all), which is not fully captured in the schema. testTags is left to the schema, but the added semantics justify a 4.

    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 operation (Update/install/test) and the resource (Odoo modules in the active project), and enumerates the valid action values. It falls short of 5 because 'frontend' is not explained, leaving some ambiguity about what that action does.

    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?

    The description explicitly directs the agent to use odoo_info action=logs when the full log is needed, and clarifies when modules is required vs optional by action. However, it does not provide guidance on when to use this tool versus odoo_server or odoo_project.

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

  • 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.

  • Behavior3/5

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

    With no annotations, the description carries the behavioral disclosure burden. It does disclose one non-obvious behavior: "shell prints the command to open an interactive shell" rather than executing it. However, it does not mention side effects of start/stop/restart, permissions required, or failure behavior, leaving some transparency gaps.

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

    Conciseness5/5

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

    The description is a single compact sentence that front-loads the tool's purpose and then lists the action values inline. Every part contributes useful information, with no filler or redundancy.

    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 low complexity (one required parameter with an enum) and no output schema, the description provides enough context to invoke the tool correctly. It explains the actions and the special shell behavior; the only minor gap is not specifying prerequisites like whether the Odoo server must already be installed or how the active project is determined.

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

    Parameters4/5

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

    The input schema only calls the parameter "action" and describes it as "What to do", with enum values provided. The description adds value by enumerating the allowed actions and clarifying the special behavior of the shell action, going beyond the schema's minimal documentation.

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

    Purpose5/5

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

    The description clearly identifies the resource (Odoo server) and the action set (start, stop, restart, status, shell), using a specific scope: "for the active project". It distinguishes itself from sibling tools like odoo_modules and odoo_info by focusing on server lifecycle control rather than module or info operations.

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

    Usage Guidelines3/5

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

    The description implies when to use the tool by listing server-control actions and scoping to the active project, but it does not explicitly state when not to use it or name alternatives. An agent can infer server administration is the intended use, but there is no direct comparison to sibling tools.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

odoo-mcp-server MCP server

Copy to your README.md:

Score Badge

odoo-mcp-server MCP server

Copy to your README.md:

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