Skip to main content
mcpSource-backed
Odoo MCP Server logo

Odoo MCP Server

MCP server for Odoo ERP systems, with tools for reading records, discovering models and fields, aggregating data, diagnosing access, scanning addons, planning migrations, and running gated safe-write workflows.

by Le Anh Tuan · submitted by oktofeesh1·added 2026-06-06·
Review first review before installing

Open the source and read safety notes before installing.

Citation facts

Source-backed facts for citing this resource, derived directly from the registry — also available as plain text for AI assistants.

Source URLs
https://raw.githubusercontent.com/tuanle96/mcp-odoo/main/README.md, https://github.com/tuanle96/mcp-odoo
Brand
Odoo MCP Server
Brand domain
odoo.com
Brand asset source
brandfetch
Safety notes
Odoo MCP Server can read ERP records, model fields, access rules, relationships, server profiles, addons, and aggregated business data from the connected Odoo database., Direct `create`, `write`, and `unlink` are blocked by default, but `execute_approved_write`, `execute_method`, and `chatter_post` can still modify ERP state when gates and approvals are enabled., Safe writes require preview, live metadata validation, a same-session approval token, explicit confirmation, and `ODOO_MCP_ENABLE_WRITES=1`., Side-effect model methods should be allowlisted exactly with `ODOO_MCP_ALLOWED_SIDE_EFFECT_METHODS`; broad unknown-method mode should be limited to trusted deployments., Streamable HTTP binds locally by default; non-local binds need external authentication, TLS, and network policy because the server does not provide built-in HTTP authentication.
Privacy notes
Odoo URLs, database names, usernames, passwords, API keys, user context, company context, model names, record IDs, record fields, chatter messages, access diagnostics, addon paths, logs, and smoke-test output can be exposed to the MCP client., ERP records can include customer, employee, sales, inventory, accounting, HR, leave, product, warehouse, invoice, and custom-module data., Addon scanning can expose local source paths, model definitions, custom business logic, upgrade risks, and module names., Logs may include sanitized Odoo errors, method names, domains, model names, request metadata, and operational posture., Keep Odoo credentials in local MCP configuration only, and use least-privilege Odoo users, record rules, and company scopes for agent workflows.
Author
Le Anh Tuan
Submitted by
oktofeesh1
Claim status
unclaimed
Last verified
2026-06-06

Decision playbook

Review trust signals before you adopt

Signals are present but mixed. Use the checklist below to confirm the source and operational safety for your environment.

Compare context
Selected

0

Current score

63

Baseline

Delta

No baseline selected

No major trust-signal divergence detected in the current selection.

Source and provenance checks

Needs review

Confirm ownership and provenance before trusting install instructions.

  • Source link availableRequired

    Open the canonical repository and verify ownership.

    Done
  • Source provenance statusRequired

    Marked as source-backed.

    Done
  • Metadata reviewed

    No reviewed flag detected in metadata.

    Pending

Safety and privacy checks

Complete

Validate risk disclosures before installation or API wiring.

  • Safety notes presentRequired

    Review the listed safety guidance before running commands.

    Done
  • Privacy notes presentRequired

    Review data handling notes before connecting accounts or secrets.

    Done
  • Trust level risk gateRequired

    Trust level does not block evaluation.

    Done

Package and install checks

Needs review

Check package metadata and artifact integrity signals.

  • Install payload available

    Install or copy payload is available for review.

    Done
  • Package verification flag

    No package verification flag provided.

    Pending
  • Checksum metadata

    No checksum provided for downloaded artifact.

    Pending

Compare-driven decision checks

Needs review

Use compare context to validate trade-offs before adoption.

  • Compare tray has multiple entries

    Add at least one more entry to compare trust differences.

    Pending
  • Baseline comparison available

    No baseline peer selected yet.

    Pending
  • Diverging trust signals identified

    No major trust-signal divergence found.

    Pending

Setup at a glance

CLI install

Copy-ready — paste the snippet to get started.

20 minutes

Adoption plan

Balanced adoption plan

Current risk score 24/100. Use staged verification before broader rollout.

Risk 24

Pre-adoption checks

Validate source and review signals before any execution.

  • Confirm source provenanceRequired

    Source URL/provenance metadata is present.

    Done
  • Confirm metadata review state

    No review metadata found; increase manual validation.

    Pending
  • Verify install payload

    Install/config payload exists and can be inspected.

    Done

Security checks

Confirm safety, privacy, and package integrity signals.

  • Review safety notesRequired

    Safety notes are present.

    Done
  • Review privacy notesRequired

    Privacy notes are present.

    Done
  • Verify package integrity metadata

    No package verification/checksum metadata.

    Pending

Rollout

Adopt in controlled steps based on the selected plan.

  • Run in isolated sandbox firstRequired

    Use a constrained sandbox and observe behavior across multiple tasks.

    Pending
  • Roll out graduallyRequired

    Roll out to a small cohort before wider usage.

    Pending
  • Set monitoring and fallback

    Define rollback path and monitor errors after adoption.

    Pending

Evidence readiness

Evidence readiness matrix · balanced

Missing required evidence: Metadata review. Risk score 31.

Risk 31

Source provenance

Present

Source repository/provenance is listed.

Required in this preset

Metadata review

Missing

Review metadata is missing.

Required in this preset

Safety notes

Present

Safety notes are present.

Required in this preset

Privacy notes

Present

Privacy notes are present.

Optional in this preset

Package integrity

Missing

Package integrity metadata is missing.

Optional in this preset

Install payload

Present

Install payload is available.

Required in this preset

Required gaps: Metadata review

Decision timeline

Decision timeline · balanced

Blocking gaps: Check metadata review status. Risk 28.

Risk 28

triage

Confirm source provenanceRequired

Source/provenance metadata is available.

Done

triage

Check metadata review statusRequired

Review metadata is missing.

Pending

verify

Review safety notesRequired

Safety notes are available.

Done

verify

Review privacy notes

Privacy notes are available.

Done

verify

Validate package integrity metadata

Package integrity metadata is missing.

Pending

rollout

Verify install payload and commandsRequired

Install payload is available.

Done

Blockers: Check metadata review status

Prerequisite readiness

Prerequisite readiness

5 prerequisites to line up before setup. Have accounts and credentials ready first. Includes a review or approval gate.

0/5 ready
Account & credentials1Install & runtime1Permissions & scopes1Review & approval1General120 minutes

Safety & privacy surface

Safety & privacy surface

5 safety and 5 privacy notes across 5 risk areas. Review closely: credentials & tokens, network access.

5 areas
  • SafetyLocal filesOdoo MCP Server can read ERP records, model fields, access rules, relationships, server profiles, addons, and aggregated business data from the connected Odoo database.
  • SafetyExecution & processesDirect `create`, `write`, and `unlink` are blocked by default, but `execute_approved_write`, `execute_method`, and `chatter_post` can still modify ERP state when gates and approvals are enabled.
  • SafetyCredentials & tokensSafe writes require preview, live metadata validation, a same-session approval token, explicit confirmation, and `ODOO_MCP_ENABLE_WRITES=1`.
  • SafetyGeneralSide-effect model methods should be allowlisted exactly with `ODOO_MCP_ALLOWED_SIDE_EFFECT_METHODS`; broad unknown-method mode should be limited to trusted deployments.
  • SafetyNetwork accessStreamable HTTP binds locally by default; non-local binds need external authentication, TLS, and network policy because the server does not provide built-in HTTP authentication.
  • PrivacyCredentials & tokensOdoo URLs, database names, usernames, passwords, API keys, user context, company context, model names, record IDs, record fields, chatter messages, access diagnostics, addon paths, logs, and smoke-test output can be exposed to the MCP client.
  • PrivacyGeneralERP records can include customer, employee, sales, inventory, accounting, HR, leave, product, warehouse, invoice, and custom-module data.
  • PrivacyLocal filesAddon scanning can expose local source paths, model definitions, custom business logic, upgrade risks, and module names.
  • PrivacyNetwork accessLogs may include sanitized Odoo errors, method names, domains, model names, request metadata, and operational posture.
  • PrivacyCredentials & tokensKeep Odoo credentials in local MCP configuration only, and use least-privilege Odoo users, record rules, and company scopes for agent workflows.

Disclosure: Community-maintained MIT MCP server for Odoo. Odoo is a separate ERP platform; users must follow Odoo hosting, account, module, database, and company access policies.

Safety notes

  • Odoo MCP Server can read ERP records, model fields, access rules, relationships, server profiles, addons, and aggregated business data from the connected Odoo database.
  • Direct `create`, `write`, and `unlink` are blocked by default, but `execute_approved_write`, `execute_method`, and `chatter_post` can still modify ERP state when gates and approvals are enabled.
  • Safe writes require preview, live metadata validation, a same-session approval token, explicit confirmation, and `ODOO_MCP_ENABLE_WRITES=1`.
  • Side-effect model methods should be allowlisted exactly with `ODOO_MCP_ALLOWED_SIDE_EFFECT_METHODS`; broad unknown-method mode should be limited to trusted deployments.
  • Streamable HTTP binds locally by default; non-local binds need external authentication, TLS, and network policy because the server does not provide built-in HTTP authentication.

Privacy notes

  • Odoo URLs, database names, usernames, passwords, API keys, user context, company context, model names, record IDs, record fields, chatter messages, access diagnostics, addon paths, logs, and smoke-test output can be exposed to the MCP client.
  • ERP records can include customer, employee, sales, inventory, accounting, HR, leave, product, warehouse, invoice, and custom-module data.
  • Addon scanning can expose local source paths, model definitions, custom business logic, upgrade risks, and module names.
  • Logs may include sanitized Odoo errors, method names, domains, model names, request metadata, and operational posture.
  • Keep Odoo credentials in local MCP configuration only, and use least-privilege Odoo users, record rules, and company scopes for agent workflows.

Prerequisites

  • Odoo 16 or newer instance reachable from the machine running the MCP server.
  • Odoo database name, username, and password or API key for XML-RPC, or Odoo 19 JSON-2 credentials.
  • Python 3.10 or newer with `uvx`, `pipx`, `pip`, or a container runtime.
  • Review of the Odoo user's groups, record rules, companies, databases, modules, and model access before connecting Claude.
  • Optional write gates such as `ODOO_MCP_ENABLE_WRITES`, `ODOO_MCP_ALLOWED_SIDE_EFFECT_METHODS`, and local HTTP host/origin allowlists when needed.

Schema details

Install type
cli
Troubleshooting
No
Source repository stats
Scope
Source repo
Collection metadata
Estimated setup
20 minutes
Difficulty
advanced
Tool listing metadata
Disclosure
Community-maintained MIT MCP server for Odoo. Odoo is a separate ERP platform; users must follow Odoo hosting, account, module, database, and company access policies.
Full copyable content
{
  "mcpServers": {
    "odoo": {
      "command": "uvx",
      "args": ["odoo-mcp"],
      "env": {
        "ODOO_URL": "https://your-odoo-instance.example",
        "ODOO_DB": "your-database",
        "ODOO_USERNAME": "your-user",
        "ODOO_PASSWORD": "your-password-or-api-key",
        "ODOO_TRANSPORT": "xmlrpc"
      }
    }
  }
}

About this resource

Content

Odoo MCP Server connects Claude and other MCP clients to Odoo ERP systems using existing Odoo credentials. It supports read-only record access, model and field discovery, server-side aggregation, diagnostics, schema catalogs, addon scans, fit/gap reports, migration helpers, and approval-gated write workflows.

Use it when Claude needs supervised Odoo context for ERP analysis, operations, support, upgrade planning, addon audits, or carefully reviewed record changes.

Source Review

These sources were reviewed on 2026-06-06. Prefer the live repository, README, PyPI project, license, Python package metadata, security notes, client configuration guide, server implementation, agent-tool helpers, and diagnostics implementation for current setup and behavior details.

Features

  • List Odoo models, inspect fields, read records, search records, and aggregate data server-side.
  • Diagnose Odoo calls, access rules, record-rule visibility, model relationships, and runtime posture.
  • Build validated Odoo domains and generate XML-RPC to JSON-2 migration payloads.
  • Scan local addon source without importing addon code.
  • Generate fit/gap, business-pack, module-audit, and upgrade-risk reports.
  • Use approval-gated write flows for create, update, delete, chatter, and reviewed side-effect methods.
  • Run over stdio or local streamable HTTP with host and origin protections.

Installation

Configure Odoo connection values, then run the package health check:

uvx odoo-mcp --health

A typical stdio MCP configuration uses uvx and local environment variables:

{
  "mcpServers": {
    "odoo": {
      "command": "uvx",
      "args": ["odoo-mcp"],
      "env": {
        "ODOO_URL": "https://your-odoo-instance.example",
        "ODOO_DB": "your-database",
        "ODOO_USERNAME": "your-user",
        "ODOO_PASSWORD": "your-password-or-api-key",
        "ODOO_TRANSPORT": "xmlrpc"
      }
    }
  }
}

Use ODOO_TRANSPORT=json2 and the documented JSON-2 environment variables for Odoo 19 deployments that should use External JSON-2.

Use Cases

  • Ask Claude to find customers, products, orders, invoices, employees, or inventory records that match an Odoo domain.
  • Inspect model fields and relationships before building reports or integrations.
  • Diagnose access-rule failures or record-rule visibility for an Odoo user.
  • Scan local custom addons for upgrade and migration risks.
  • Plan XML-RPC to JSON-2 migration steps.
  • Preview and validate a proposed ERP write before enabling approval-gated execution.

Safety and Privacy

Odoo MCP Server touches ERP systems that may hold critical business data. Start with read-only analysis, use least-privilege Odoo credentials, keep HTTP transports local unless externally protected, and require explicit approval for any write, side-effect method, or chatter operation.

Treat Odoo credentials, database names, model names, record IDs, domains, ERP records, employee data, customer data, accounting data, inventory data, addon source paths, logs, diagnostics, and migration reports as sensitive operational data. Avoid sharing MCP transcripts or screenshots that include private Odoo records.

Source citations

Add this badge to your README

Show that Odoo MCP Server is listed on HeyClaude. Paste this Markdown into your README — it renders the badge and links back to this page.

Listed on HeyClaude
[![Listed on HeyClaude](https://heyclau.de/badge/mcp/odoo-mcp-server.svg)](https://heyclau.de/entry/mcp/odoo-mcp-server)

How it compares

Odoo MCP Server side by side with 3 alternatives on trust, install, platform support, and disclosed safety notes — all from reviewed registry metadata.

1 trust signal differ across this comparison (Submitter).

Field

MCP server for Odoo ERP systems, with tools for reading records, discovering models and fields, aggregating data, diagnosing access, scanning addons, planning migrations, and running gated safe-write workflows.

Open dossier

Real-time product search and price comparison across 11M+ products from Singapore, Southeast Asia, and US marketplaces via a remote streamable-HTTP MCP endpoint with API key auth.

Open dossier

Official LINE MCP server that connects Claude and other AI agents to the LINE Messaging API for push messages, broadcasts, profile lookup, quotas, follower IDs, and rich-menu management.

Open dossier

Telethon-powered MCP server for connecting Claude to Telegram accounts, chats, messages, contacts, media, folders, groups, channels, profile settings, and read-only or full account workflows.

Open dossier
Next steps
Trust
Review statusNot reviewedNot reviewedNot reviewedNot reviewed
Package trustPackage not verifiedPackage not verifiedPackage not verifiedPackage not verified
Source provenanceSource-backedSource-backedSource-backedSource-backed
SubmitterDiffersoktofeesh1BuyWhereoktofeesh1oktofeesh1
Install riskReview firstReview firstReview firstReview first
Notes Safety ✓ Privacy ✓ Safety ✓ Privacy ✓ Safety ✓ Privacy ✓ Safety ✓ Privacy ✓
BrandOdoo MCP Server logoOdoo MCP ServerBuyWhere logoBuyWhereLINE Bot MCP Server logoLINE Bot MCP ServerTelegram MCP Server logoTelegram MCP Server
Categorymcpmcpmcpmcp
SourceSource-backedSource-backedSource-backedSource-backed
AuthorLe Anh TuanBuyWhereLINEchigwell
Added2026-06-062026-06-262026-06-062026-06-06
Platforms
Harness
Source repo
Safety notesOdoo MCP Server can read ERP records, model fields, access rules, relationships, server profiles, addons, and aggregated business data from the connected Odoo database. Direct `create`, `write`, and `unlink` are blocked by default, but `execute_approved_write`, `execute_method`, and `chatter_post` can still modify ERP state when gates and approvals are enabled. Safe writes require preview, live metadata validation, a same-session approval token, explicit confirmation, and `ODOO_MCP_ENABLE_WRITES=1`. Side-effect model methods should be allowlisted exactly with `ODOO_MCP_ALLOWED_SIDE_EFFECT_METHODS`; broad unknown-method mode should be limited to trusted deployments. Streamable HTTP binds locally by default; non-local binds need external authentication, TLS, and network policy because the server does not provide built-in HTTP authentication.Read-only product catalog access by default; no write or delete operations exposed. API key should be stored in the MCP client config or environment, never committed.LINE Bot MCP Server can push text and flex messages to users, broadcast messages to all followers, retrieve follower IDs, inspect profiles, check message quotas, create rich menus, set default rich menus, cancel defaults, and delete rich menus. Broadcast and rich-menu tools can affect every user following the connected LINE Official Account, so require human approval before running them in production. Push-message tools can contact individual users directly; confirm the target `userId`, message body, and account context before sending. Rich-menu tools can upload generated menu images and change user-facing navigation for the account. Use least-privilege channel tokens where possible, keep test and production LINE accounts separate, and monitor quota consumption. The upstream README marks the project as a preview version for experimental use with potentially incomplete functionality or support.Telegram MCP Server can read chats and messages, send, schedule, edit, delete, forward, and pin messages, mark chats read, create polls, press inline buttons, manage contacts, manage groups and channels, upload or download media, and update profile settings when write tools are exposed. A Telegram session string has the normal authority of the Telegram account inside the server process; read-only mode limits the MCP tool surface but does not reduce the underlying session authority. The upstream README warns that the PyPI `telegram-mcp` name is owned by a different project, so do not pass Telegram API credentials or session strings to that package. File-path tools are disabled until allowed roots are configured; keep upload and download roots narrow when enabling media or file operations. Require human approval before sending, editing, deleting, forwarding, pinning, reacting, inviting, banning, changing permissions, or updating profile and privacy settings. Use separate Telegram accounts for testing, monitor Telegram rate limits and platform rules, and keep proxies or multi-account routing explicit.
Privacy notesOdoo URLs, database names, usernames, passwords, API keys, user context, company context, model names, record IDs, record fields, chatter messages, access diagnostics, addon paths, logs, and smoke-test output can be exposed to the MCP client. ERP records can include customer, employee, sales, inventory, accounting, HR, leave, product, warehouse, invoice, and custom-module data. Addon scanning can expose local source paths, model definitions, custom business logic, upgrade risks, and module names. Logs may include sanitized Odoo errors, method names, domains, model names, request metadata, and operational posture. Keep Odoo credentials in local MCP configuration only, and use least-privilege Odoo users, record rules, and company scopes for agent workflows.BuyWhere API key is sent as a Bearer token in the Authorization header on every request. Search queries are sent to BuyWhere's API to retrieve product data; no third-party analytics or telemetry is included in MCP responses. BuyWhere may log API request metadata (endpoint, timestamp, status) for abuse prevention and billing.Channel access tokens, destination user IDs, follower IDs, profile display names, profile picture URLs, status messages, language, message contents, flex-message JSON, and rich-menu IDs can be exposed to the MCP client. Broadcast prompts, generated messages, user IDs, and profile results may be retained in MCP client logs, terminal history, model context, or chat transcripts. Treat LINE Official Account credentials and recipient identifiers as secrets, and avoid pasting real tokens or user IDs into shared logs. Review LINE platform policies and internal consent requirements before retrieving follower IDs or using AI-generated outbound messages.Telegram API IDs, API hashes, session strings, account labels, chat titles, usernames, phone-adjacent identifiers, messages, media, contacts, group membership, profile photos, user status, read receipts, drafts, and folder metadata can be exposed to the MCP client. Chat history and media can contain private conversations, personal data, business records, access links, invite links, documents, photos, voice notes, stickers, GIFs, and user-controlled prompt-injection text. The project includes output sanitization for user-controlled content, but sanitized Telegram content should still be treated as untrusted model input. Store session strings like passwords, keep them out of shell history and shared logs, and revoke sessions if they are exposed. Review MCP transcripts, downloaded media folders, Telegram session files, and proxy logs before sharing or retaining them.
Prerequisites
  • Odoo 16 or newer instance reachable from the machine running the MCP server.
  • Odoo database name, username, and password or API key for XML-RPC, or Odoo 19 JSON-2 credentials.
  • Python 3.10 or newer with `uvx`, `pipx`, `pip`, or a container runtime.
  • Review of the Odoo user's groups, record rules, companies, databases, modules, and model access before connecting Claude.
  • A BuyWhere API key (free at https://buywhere.ai/api-keys).
  • An MCP client such as Claude Code, Claude Desktop, Cursor, Windsurf, or any MCP-compatible host.
  • Network access to https://api.buywhere.ai.
  • Node.js 22 or newer for the published npm package.
  • A LINE Official Account with the Messaging API enabled.
  • A LINE channel access token with the permissions needed for the intended tools.
  • A destination user ID when using the default recipient flow for push-message tools.
  • Python 3.10 or newer with `uv` available.
  • A trusted checkout of `https://github.com/chigwell/telegram-mcp`; do not use the unrelated PyPI package with the same distribution name.
  • Telegram API credentials from `my.telegram.org/apps`.
  • A Telegram session string or file-based session generated from the trusted checkout.
Install
uvx odoo-mcp --health
claude mcp add buywhere --transport http --header "Authorization: Bearer YOUR_BUYWHERE_API_KEY" https://api.buywhere.ai/mcp
npx -y @line/line-bot-mcp-server
uv --directory PATH_TO_TELEGRAM_MCP_CHECKOUT run main.py
Config
{
  "mcpServers": {
    "odoo": {
      "command": "uvx",
      "args": [
        "odoo-mcp"
      ],
      "env": {
        "ODOO_URL": "https://your-odoo-instance.example",
        "ODOO_DB": "your-database",
        "ODOO_USERNAME": "your-user",
        "ODOO_PASSWORD": "your-password-or-api-key",
        "ODOO_TRANSPORT": "xmlrpc"
      },
      "type": "stdio"
    }
  }
}
{
  "mcpServers": {
    "buywhere": {
      "type": "http",
      "url": "https://api.buywhere.ai/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_BUYWHERE_API_KEY",
        "X-Buywhere-Market": "SG"
      }
    }
  }
}
Manual-only setup:
claude mcp add line-bot --env CHANNEL_ACCESS_TOKEN=YOUR_CHANNEL_ACCESS_TOKEN -- npx -y @line/line-bot-mcp-server
Manual-only setup:
claude mcp add telegram-mcp --env TELEGRAM_API_ID=YOUR_TELEGRAM_API_ID --env TELEGRAM_API_HASH=YOUR_TELEGRAM_API_HASH --env TELEGRAM_SESSION_STRING=YOUR_TELEGRAM_SESSION_STRING --env TELEGRAM_EXPOSED_TOOLS=read-only -- uv --directory PATH_TO_TELEGRAM_MCP_CHECKOUT run main.py
Citations
ClaimUnclaimedUnclaimedUnclaimedUnclaimed
Open 4 picks in the interactive comparison tool

Signals

Loading live community signals…

More like this, weekly

A short, calm digest of reviewed Claude resources. Unsubscribe any time.