Skip to main content
Glama

mcp-odoo-architect

MCP server (stdio) for scoping safe Odoo add-ons from Claude Desktop, Codex, OpenCode, or any MCP client. Deterministic local composer — no API keys, no network.

Separate from the WebMCP Challenge entry (browser UI + approval gate). Same engine, headless form.

Tools

  • draft_plan — 4-section architecture plan from a business requirement

  • generate_addon — 11-file Odoo starter (manifest, models, views, security, tests, README)

  • validate_addon — 7 static checks over the starter

  • save_addon — generate + write all files to output_dir/<module>/ on disk

  • explain_tradeoffs — risks, rejected alternatives, why upgrade-safe

  • list_presets — 4 demo briefs (urgency, pharmacy, POS discount, Shopify bridge)

Starters are review scaffolds, not production code: review + staging Odoo install first.

Related MCP server: MCP Local LLM Server

Install

cd mcp-odoo-architect
npm install

Claude Desktop (claude_desktop_config.json), Codex (config.toml uses same JSON), OpenCode (opencode.jsonmcp):

{
  "mcpServers": {
    "odoo-architect": {
      "command": "node",
      "args": ["C:/Users/Wad Yonis/Desktop/webmcp1/mcp-odoo-architect/index.js"]
    }
  }
}

Use an absolute path to index.js on your machine. Restart the client after saving.

Test

npm test

License

MIT. See LICENSE.

Available Tools

6 tools
draft_planA

Turn a business requirement into a reviewable 4-section Odoo addon architecture plan (scope, model, views/access, quality gate).

ParametersJSON Schema
NameRequiredDescriptionDefault
guardrailsNoOptional extra constraints.
requirementYesBusiness outcome, not implementation.
odoo_versionNoOdoo version, e.g. 18.0. Default 18.0.

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries full responsibility. It discloses the transformation (requirement to plan) and the output's structure, but does not state side effects, whether anything is persisted, or what kind of response format to expect. This is adequate but not rich.

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?

A single, front-loaded sentence that packs the verb, input, output, and the specific sections of the plan. There is no wasted wording or redundancy, and the most important information appears immediately.

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?

For a simple 3-parameter tool with no output schema, the description gives enough context about the result: a reviewable 4-section plan with named sections. It lacks explicit when-to-use guidance and return-value detail, but the essence of the tool is well covered.

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%, with all three parameters already clearly described in the schema. The tool description adds no additional parameter-level guidance, so it stays at the baseline without exceeding it.

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 uses a specific verb ('Turn') and a clear resource ('business requirement into a reviewable 4-section Odoo addon architecture plan'), also naming the concrete output sections. This clearly differentiates drafting a plan from siblings like generate_addon, validate_addon, or save_addon.

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 intended use is implied: if you have a business requirement and want a reviewable architecture plan, use this tool. However, there is no explicit mention of when not to use it or how it compares to the alternative sibling tools, so the guidance remains indirect.

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

explain_tradeoffsC

Explain risks, rejected alternatives, and why the plan is upgrade-safe.

ParametersJSON Schema
NameRequiredDescriptionDefault
guardrailsNo
requirementYes

TDQS

C2.9/5.0
Behavior3/5

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

With no annotations, the description carries the burden, and 'Explain' plus the list of output topics strongly implies a read-only, non-mutating operation. However, it does not disclose prerequisites, failure behavior, or whether the tool may refuse to explain if the plan is not upgrade-safe.

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 front-loaded sentence with no filler. Every word contributes to the core purpose, and the main verb appears first.

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

Completeness2/5

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

The tool has no output schema, no annotations, and low parameter documentation, so the description must supply more context. It fails to explain how guardrails factor in, what 'upgrade-safe' means in practice, or when this tool is the appropriate choice among the siblings.

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

Parameters1/5

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

Schema description coverage is 0%, and the description never mentions either parameter ('requirement' or 'guardrails') or maps them to the stated risks/alternatives/plan concepts. The agent gets no help inferring what values to supply or how they affect the explanation.

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 uses a specific verb ('Explain') and names distinct outputs: risks, rejected alternatives, and upgrade-safety reasoning. This clearly distinguishes it from the sibling tools like draft_plan or validate_addon, though it never explicitly references 'the plan' by name.

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?

There is no explicit guidance about when to call this tool versus alternatives such as validate_addon or draft_plan. The phrase 'the plan' implies it works on something drafted elsewhere, but that context is not stated.

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

generate_addonA

Generate an 11-file Odoo addon starter (manifest, models, views, security, tests, README) composed from the requirement. Starter only — review + staging install before production.

ParametersJSON Schema
NameRequiredDescriptionDefault
guardrailsNo
requirementYesBusiness outcome the starter implements.
odoo_versionNo

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It discloses that the output is a starter, lists its contents, and warns it is not production-ready. However, it does not state whether the tool writes files, returns a bundle, overwrites existing content, or requires any environment setup.

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, no filler, and the most important qualifier ('Starter only') is front-loaded. Every clause adds useful information.

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?

The description covers the core purpose and safety posture, and the file-component list gives a sense of the deliverable. But with no output schema, no annotations, and two undocumented parameters, it is missing detail on what the generated starter looks like, how optional parameters affect the result, and what the next steps beyond staging install should be.

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

Parameters2/5

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

Schema description coverage is only 33%, and the description does not compensate for the undocumented guardrails and odoo_version parameters. It adds some context around the requirement ('composed from the requirement') but leaves two of three parameters effectively unexplained.

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 names a specific verb ('Generate'), a concrete resource ('an 11-file Odoo addon starter'), and enumerates the file categories involved (manifest, models, views, security, tests, README). It is immediately distinguishable from siblings like validate_addon, draft_plan, or save_addon.

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 'Starter only — review + staging install before production' phrase clearly communicates that this tool is for scaffolding, not final delivery, and implies a follow-up workflow. It does not explicitly name alternatives or state when to prefer draft_plan or save_addon, but the usage context is clear enough.

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

list_presetsA

List the 4 built-in demo briefs (urgency, pharmacy, POS discount, Shopify bridge).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description carries the behavioral burden. It clearly indicates a read-only listing operation via 'List' and states that the content is fixed and built-in. It does not describe the return format, but there is no hint of side effects or hidden behavior.

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?

A single, front-loaded sentence with no filler. Every phrase adds information: the action, the count, the type of content, and the specific names. This is an ideal length for a simple listing tool.

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?

For a zero-parameter, no-output-schema listing tool, the description is nearly complete. It specifies exactly what is returned—four named demo briefs. The only minor gap is that it does not describe the object shape of each brief, but the context is simple enough that the names largely suffice.

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 tool has zero parameters, and the schema is empty, so there are no parameter semantics to clarify. With no parameters, the baseline of 4 applies; the description's enumeration of the exact demo brief names adds useful context beyond the empty schema.

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 uses a specific verb ('List') and names the exact resource: the four built-in demo briefs, including each name. This clearly distinguishes it from sibling tools like draft_plan or validate_addon, which perform different actions.

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 usage is implied rather than explicit: if an agent needs the built-in demo briefs, this is the tool to call. However, there is no explicit when-to-use/when-not-to-use guidance or mention of alternatives, leaving some room for inference.

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

save_addonB

Generate the starter and write all files to output_dir// on disk. Returns directory, tree, and validation.

ParametersJSON Schema
NameRequiredDescriptionDefault
guardrailsNo
output_dirYesExisting parent directory, e.g. ./custom_addons
requirementYes
odoo_versionNo

TDQS

B3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It does disclose the key side effect—writing all files to disk—and the return shape of directory, tree, and validation. However, it does not mention overwrite behavior, directory creation, failure modes, or whether validation is blocking.

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?

One concise sentence with no filler or repetition. The action and destination are front-loaded, and the return values are stated economically. Every part contributes to understanding the tool.

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

Completeness2/5

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

Given the lack of annotations and output schema, this description is too sparse for an agent to reliably invoke the tool. It does not explain how requirement maps to the generated starter, what guardrails and odoo_version do, how validation behaves, or whether existing files will be overwritten.

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

Parameters2/5

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

Schema description coverage is only 25%, so the description must compensate. It adds meaning to output_dir by defining the output_dir/<module>/ pattern, but the required requirement parameter and optional guardrails/odoo_version parameters are left completely undocumented in both schema and description.

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 states a concrete action with a clear resource: generate the starter and write all files to output_dir/<module>/ on disk, and it names what the tool returns. It is specific enough to understand the tool's job, though it does not explicitly differentiate itself from sibling generate_addon.

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?

No when-to-use or when-not-to-use guidance is provided. The description implies persistence to disk, but it never mentions when an agent should choose save_addon over generate_addon or validate_addon, leaving usage conditions to inference.

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

validate_addonA

Run the 7 static checks (module name, manifest deps, ORM use, XML, access rights, tests, guardrails) over generated files.

ParametersJSON Schema
NameRequiredDescriptionDefault
guardrailsNo
requirementYes

TDQS

A3.5/5.0
Behavior3/5

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

The phrase 'static checks' suggests a non-mutating review and the listed check categories add useful transparency. However, with no annotations, the description still does not disclose what the tool returns, whether it has side effects, or any requirements on the generated files. It partially carries the behavioral burden but not fully.

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, efficient sentence with no filler. It front-loads the action and immediately enumerates the specific checks, making it easy to scan.

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

Completeness2/5

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

Given that there are no annotations and no output schema, the description should provide enough context for correct invocation. It covers the core purpose but omits parameter semantics, expected input format, and output behavior, so an agent could not confidently construct valid calls.

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

Parameters2/5

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

Schema description coverage is 0%, so the description is the only source of parameter meaning, yet it does not explain the required 'requirement' parameter or the 'guardrails' array. 'Guardrails' is mentioned only as a check category, not as an input, leaving both parameters underspecified.

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 names a concrete action ('Run the 7 static checks') and a clear target ('generated files'), and it enumerates the check categories. This makes the tool's purpose obvious and distinguishes it from sibling tools like generate_addon, save_addon, or explain_tradeoffs.

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 phrase 'over generated files' implies this tool should be used after generation, but the description never explicitly says when to use it versus alternatives such as generate_addon or save_addon. No exclusions or prerequisites are stated, leaving the usage context mostly to inference.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 6 tool updatesv0.2.0
    • First observeddraft_plan
    • First observedexplain_tradeoffs
    • First observedgenerate_addon
    • First observedlist_presets
    • First observedsave_addon
    • First observedvalidate_addon

TDQS

A3.7/5.0
Disambiguation4/5

Each tool has a distinct role in the architecture workflow: planning, generating, validating, explaining, listing presets, and saving. The only minor overlap is generate_addon and save_addon, since both trigger generation, but the descriptions clearly separate in-memory output from disk persistence.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern: draft_plan, generate_addon, validate_addon, explain_tradeoffs, list_presets, save_addon. This makes the tool set predictable and easy for an agent to navigate.

Tool Count5/5

With 6 tools, the server is well-scoped for an Odoo addon architecture and scaffolding workflow. Each tool earns its place and the count is neither too thin nor bloated.

Completeness5/5

The workflow is covered end-to-end: draft a plan, generate the starter addon, validate it, save it to disk, understand tradeoffs, and use presets for quick starts. There are no obvious dead ends for the stated purpose of producing a reviewable Odoo addon starter.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables offline AI agent automation with embedded local LLM (Qwen 2.5), sandboxed file operations through AgentFS, and dynamic skill loading. Exposes capabilities via MCP with tri-state safety guards for private, air-gapped environments without network connectivity or API costs.
    -
  • A
    license
    C
    quality
    D
    maintenance
    A privacy-first MCP server that provides local LLM-enhanced tools for code analysis, security scanning, and automated task execution using backends like Ollama and LM Studio. It enables symbol-aware code reviews and workspace exploration while ensuring that all code and analysis remain strictly on your local machine.
    36
    ISC
  • A
    license
    A
    quality
    C
    maintenance
    Generates production-ready MCP servers with dual-mode (MCP + CLI) architecture, tests, and documentation. Includes progressive disclosure tools for AI agents and best practices guidance.
    7
    Apache 2.0

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

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