New Your team’s decisions, in one playbook every coding agent works from. Never answer your agent twice

Odoo Claude MCP

246 tools. 120 can modify or destroy data without limits.

25 destructive tools with no built-in limits. Policy required.

Last updated:

120 can modify or destroy data
126 read-only
246 tools total

Community server · catalogue entry checked 02/10/2026

How to control Odoo Claude MCP ↓

What Odoo Claude MCP exposes to your agents

Read (126) Write / Execute (94) Destructive / Financial (25)
Critical Risk

The most dangerous Odoo Claude MCP tools

120 of Odoo Claude MCP's 246 tools can modify, destroy, or commit something on every call — and an agent calls them with no built-in limits.

How to control Odoo Claude MCP

PolicyLayer is an MCP gateway — it sits between your AI agents and Odoo Claude MCP, and nothing reaches the server without passing your rules. These are the rules we recommend:

Deny destructive operations
{
  "cf_dns_delete": {
    "deny_if": [
      {
        "conditions": [],
        "on_deny": "Blocked by default. Requires approval."
      }
    ]
  }
}

Destructive tools should never be available to autonomous agents without human approval.

Rate limit write operations
{
  "cf_dns_create": {
    "limits": [
      {
        "counter": "cf_dns_create_per_hour",
        "window": "hour",
        "max": 30,
        "scope": "grant"
      }
    ]
  }
}

Prevents bulk unintended modifications from agents caught in loops.

Cap read operations
{
  "ai_collection_info": {
    "limits": [
      {
        "counter": "ai_collection_info_per_minute",
        "window": "minute",
        "max": 60,
        "scope": "grant"
      }
    ]
  }
}

Controls API costs and prevents retry loops from exhausting upstream rate limits.

  1. Create a free account and register Odoo Claude MCP — nothing to install.
  2. Add these rules — paste them, or build them visually. Tune the limits to your setup.
  3. Point your MCP client (Claude, Cursor, anything) at your gateway URL.
ENFORCE POLICY ON ODOO CLAUDE →

Instant setup, no code required.

All 246 Odoo Claude MCP tools

DESTRUCTIVE 25 tools
Destructive cf_dns_delete Delete a DNS record. Destructive cf_tunnel_route_remove Remove ingress rule by hostname + delete its CNAME record. Destructive ee_unlink Remove symlinks for EE modules from addons path. Destructive google_calendar_delete_event Delete a calendar event. Destructive memory_delete Delete a memory file from personal or shared storage. Destructive module_deploy_rollback ADMIN: restore the pre-deploy backup of a module on a Destructive odoo_disconnect Remove an Odoo connection. Destructive odoo_fp_remove_action Remove a tax action map entry from a fiscal position (l10n_bg_tax_admin). Destructive odoo_stock_initial_delete Delete wrong opening stock balances — cascade-removes stock.move (is_inventory=TRUE) Destructive odoo_stock_mo_delete_draft Safely DELETE a draft or cancelled mrp.production with cascade (raw stock.moves, Destructive odoo_unlink Delete records by IDs. Destructive odoo_web_logout Destroy web session and logout. Destructive odoo_website_remove_snippet Remove a snippet block from a target HTML field. Locates via snippet_xpath Destructive provision_revoke_api_key ADMIN ONLY: Revoke an issued API key by key_id. Destructive s3_bucket_delete Delete an S3 bucket. Set force=true to delete all objects first. Destructive s3_object_delete Delete a single object from a bucket. Destructive s3_objects_delete_prefix Delete all objects under a prefix in one bucket. Returns count. Destructive secrets_revoke ADMIN: mark a secret revoked (audit). Destructive session_handoff_cancel Cancel an offer you created (offerer only). Destructive session_link_revoke Revoke a session link by id (owner or admin). Destructive session_revoke Revoke one MCP session (admin, or your own): marks the row Destructive telegram_agent_unenroll Stop agentic handling for a chat. Destructive telegram_sub_remove Remove a chat from a principal Destructive tenant_restore ADMIN: restore a tenant dump to a STAGING db by default Destructive user_connection_delete Delete a personal connection.
EXECUTE 52 tools
Execute ai_invoice_pipeline_run Execute the full registered step pipeline for one move+attachment. Execute ai_invoice_plugins_reload Reload plugin steps from the plugins directory (default Execute ai_pipeline_run Execute an Odoo-defined pipeline (ai.pipeline.step records for the Execute ai_pipeline_step_execute Execute a single ai.pipeline.step by name via Odoo RPC. Execute ai_tokenize_collection Tokenize ALL records of a model via the registry entry. Heavy operation — Execute ee_clone Clone Odoo Enterprise repository with GitHub token authentication. Execute ee_deploy Deploy EE from buffer to target (rsync). Buffered mode only. Execute ee_link Create symlink for specific EE modules in the Odoo addons path (selective install). Execute ee_update Git pull Enterprise repository. Execute fleet_rollback ADMIN: redeploy a stack Execute fleet_upgrade ADMIN: canary-upgrade ONE stack to a target image tag. Execute git_remote Run git commands on a remote server via SSH. Execute github_api Call GitHub REST API directly. Uses the GitHub token from local_profile.json. Execute google_auth Authenticate with Google OAuth2 for Gmail and Calendar access. Execute google_gmail_send Send an email or reply to an existing message. Execute identify_verify_totp Second step of name-identify for a TOTP-protected profile. After Execute mcp_drop_elevation End the current elevation window early. Logs to audit. Execute mcp_elevate Grant YOUR CURRENT SESSION temporary admin rights (does not Execute module_deploy ADMIN: deploy an Odoo addon to a target — rsync the Execute oca_changelog Generate CHANGELOG from newsfragments using oca-towncrier. Execute oca_clone_all Clone all OCA repositories for a branch using oca-clone-everything. Execute oca_clone_repo Clone a specific OCA repository by name. Execute oca_deploy Deploy OCA repos from buffer to target (rsync). Only in buffered mode. Execute oca_fix_website Fix website URL in addon manifests using oca-fix-manifest-website. Execute oca_gen_icon Generate default OCA icon for addon(s) using oca-gen-addon-icon. Execute oca_gen_readme Generate README for an OCA addon using oca-gen-addon-readme. Execute oca_gen_requirements Generate requirements.txt from addon external_dependencies using oca-gen-external-dependencies. Execute oca_link Create symlink for OCA addon module in the Odoo addons path. Execute oca_migrate Migrate OCA repos to a new Odoo version branch using oca-migrate-branch. Execute oca_update Git pull all OCA repos in the working directory (recursive). Execute odoo_execute Execute any model method via execute_kw. Execute odoo_sql_query Execute a raw PostgreSQL query against the Odoo database with Execute odoo_stock_initial_import Import opening stock balances (initial inventory) via direct SQL INSERT, bypassing Execute odoo_stock_initial_opening_journal Book the opening-balance journal entry for a previous SQL-inserted initial stock Execute odoo_timesheet_timer Drive Odoo Execute odoo_translate_context_aware Translate Odoo records using Claude with rich domain context for natural, Execute odoo_web_call Call any Odoo model method via web session (JSON-RPC /web/dataset/call_kw). Execute odoo_web_login Login to Odoo web interface with user/password. Creates a persistent Execute odoo_web_request Raw HTTP request to any Odoo controller URL via web session. Execute open_connection_manager Open the Connection Manager GUI (desktop app). Execute proxy_call Forward a tool call to an internal MCP sub-service. Execute proxy_refresh Re-discover tools from all internal MCP sub-services. Execute secrets_rotate ADMIN: generate a new secret of a kind for a stack and Execute session_link_provision Mint a pre-authenticated session link (URL) for a headless Execute ssh_execute Execute a command on a remote server via SSH. Execute supervisor_rebuild supervisor_rebuild Execute supervisor_run ADMIN: run the supervisor in a given mode via Portainer Execute telegram_auth Authenticate with Telegram. Two-step process: Execute telegram_create_group Create a Telegram supergroup FROM YOUR ACCOUNT (Bot API cannot create groups), Execute telegram_send_file Send a file/document to a Telegram chat. The file must live under the Execute telegram_send_message Send a Telegram message. Chat can be @username, phone, or numeric ID. Execute tenant_refresh Re-discover tools for a single tenant (or the active one if name
WRITE 42 tools
Write cf_dns_create Create DNS record. ttl=1 means Auto. Write cf_dns_update Patch a DNS record. Pass any of: type, name, content, proxied, ttl. Write cf_tunnel_config_put Replace the full ingress config. Last entry must be {'service': 'http_status:404'}. Write cf_tunnel_route_add Add (or replace) one ingress rule + create CNAME record. Write client_onboard ADMIN: onboard a new client in one command — provision Write google_calendar_create_event Create a new calendar event. Write google_calendar_update_event Update an existing calendar event. Only provided fields are changed. Write identify_totp_disable Disable TOTP two-factor for YOUR current identified profile (removes the stored secret). Write memory_pull Pull shared memory file(s) into your personal storage. Write memory_share Share personal memory file(s) — copies to shared storage Write memory_write Write/update a memory file. Saves to personal storage by default. Write migrate_assess ADMIN: assess a tenant version migration (e.g. Odoo Write migrate_history ADMIN: list past migration assessments. Read-only. Write oca_gen_table Generate addons table in repo README.md using oca-gen-addons-table. Write odoo_attachment_upload Upload a file as an ir.attachment on an Odoo record. Write odoo_cert_refresh Re-fetch the peer SSL certificate for a connection and overwrite Write odoo_connect Add/update an Odoo connection. Auth via password or API key. Write odoo_create Create one or more records. Returns list of new IDs. Write odoo_fp_configure Add or update a tax action map entry for a fiscal position (l10n_bg_tax_admin). Write odoo_message_post Post a message or internal note on any Odoo record (chatter). Write odoo_stock_close_unaccounted_value Create an Inventory Valuation journal entry (Dr stock valuation / Cr GRNI/stock-input) Write odoo_stock_product_flip_to_storable Flip a product from consumable (is_storable=false) to storable (is_storable=true) Write odoo_translate_field Write translations for a simple translate=True field (Char/Text/Selection). Write odoo_translate_html Write/read translations for translate=html_translate / translate=xml_translate Write odoo_website_add_snippet Insert a snippet into a target HTML field. Fetches the snippet template Write odoo_website_update_snippet Update an existing snippet on a target HTML field. Locates the snippet Write odoo_write Update existing records. Write provision_issue_api_key ADMIN ONLY: Issue a new API key for a client to call Write s3_bucket_create Create a new bucket on the configured S3 endpoint. Write secrets_register ADMIN: record (or generate) a secret for a stack. Write session_handoff_offer Offer your working session to another principal Write telegram_agent_create_quote Create a DRAFT sale.order in the scenario Write telegram_agent_enroll Enroll a Telegram chat for agentic handling with a scenario. Write telegram_agent_set_scenario Replace the scenario for an enrolled chat. Write telegram_configure Set Telegram API credentials (api_id and api_hash from my.telegram.org). Write telegram_download_media Download media/document from a Telegram message into the MCP download root Write telegram_sub_add Subscribe a principal Write tenant_use Set the active tenant. Discovers and caches its tools (if not Write tg_listen_activate Return a precise runbook for THIS (local) Claude to Write tg_listen_send_code Return the exact tgctl command to complete a pending Write user_connection_activate Activate one of your personal connections as the working connection. Write user_connection_add Add/update a personal Odoo connection (saved per-user).
READ 126 tools
Read ai_collection_info Return info about the per-database Qdrant collection: vector size, Read ai_invoice_extract Extract structured invoice data from an Odoo attachment via Anthropic Read ai_invoice_pipeline_steps List currently registered pipeline steps with sequence, description, Read ai_invoice_pipeline_summary Dashboard aggregation: counts of vendor bill moves by next_step Read ai_invoice_scan_pending List vendor-bill drafts that have an attachment and no successful Read ai_invoice_stack_inspect Cross-layer snapshot for a single account.move: Odoo state + Read ai_list_documents List ai.composite.document records (tokenized records tracked by Odoo). Read ai_pipeline_steps_list List ai.pipeline.step records in Odoo for a given pipeline name. Read ai_search_similar Semantic search across tokenized Odoo records. Embeds the query with the Read ai_tokenize_record Tokenize a single Odoo record: build composite document, embed via Read ai_usage_budget_status Current month Read ai_usage_log_export Export billing ledger rows as CSV for a tenant + date range. Read ai_usage_log_query Query the AI usage billing ledger. Filter by tenant, state, source, Read ai_usage_log_stats Dashboard KPIs for the billing ledger: totals, per-model breakdown, Read backup_history ADMIN: list backup/restore ops. Read-only. Read backup_list ADMIN: list backups (optionally per target). Read-only. Read cf_dns_list List DNS records in a zone. Read cf_tunnel_config_get Get the current ingress/config of a tunnel. Read cf_tunnel_list List cloudflared tunnels in an account. Read cf_zones_list List zones (optional filter by name). Read client_onboard_status ADMIN: read-only onboarding state for a slug/VAT Read contabo_account_info Return the authenticated customer's profile (name, contact, address, tenants). Read contabo_instances_list List VPS instances on the account (name, IP, status, plan). Read contabo_object_storage_get Get one Object Storage instance in full detail. Read contabo_object_storage_stats Get usage stats (GB used, object count, etc) for an Object Storage instance. Read contabo_object_storages_list List Object Storage instances (subscriptions) on the account. Read ee_depends Show full dependency tree of an EE module (CE + EE deps). Read ee_license_status Read Enterprise license status from an Odoo instance (expiration, code, reason). Read ee_modules List all Enterprise modules with category, license, depends. Filter by category, country, or keyword. Read ee_oca_conflicts Detect conflicts between Enterprise and OCA modules: name collisions, model overlaps. Read ee_oca_recommend For a module that exists in both EE and OCA — compare and recommend which to use. Read ee_search Search Enterprise modules by name, summary, or dependency. Read ee_token_check Validate GitHub token — check access to odoo/enterprise private repo. Read fleet_list ADMIN: inventory of all deployed MCP stacks — name, Read fleet_status ADMIN: deep status of one stack — current image tag, Read google_auth_status Check Google authentication status. Read google_calendar_events List upcoming calendar events. Supports time range and text search. Read google_calendar_list List all available Google calendars. Read google_gmail_labels List all Gmail labels (folders). Read google_gmail_read Read a specific Gmail message by ID. Returns full body, headers, and labels. Read google_gmail_search Search Gmail messages. Uses Gmail search syntax Read health_scan ADMIN: probe every deployed stack, classify Read identify Identify yourself to load your personal settings and connections. Read identify_totp_enroll Arm authenticator-app two-factor (TOTP) for YOUR current identified Read identify_totp_status Report whether YOUR current profile has TOTP two-factor enrolled. Read identify_with_token Bind THIS MCP session to the principal behind a session-link Read mcp_elevation_status Return whether the server is currently elevated, and remaining TTL. Read mcp_terminal_get_config Generate a password-protected ZIP archive with the Claude Read memory_list List memory files. Shows personal files (for current user) and shared files. Read memory_read Read a memory file by filename. Searches personal first, then shared. Read module_deploy_history ADMIN: list past deploy/rollback ops (optionally per target). Read module_deploy_status ADMIN: read-only runtime gate for a module on a target Read oca_search Search for a module across all cloned OCA repos by name or keyword. Read oca_status Show git status of all OCA repos (branch, clean, behind, modules count). Read odoo_attachment_download Download an ir.attachment from Odoo by ID. Read odoo_cert_info Return the pinned SSL certificate details (issuer, subject, Read odoo_connections List all configured Odoo connections. Read odoo_fields_get Get field definitions for an Odoo model. Returns field names, types, labels, and attributes. Read odoo_fp_details Get detailed fiscal position with all tax action map entries (l10n_bg_tax_admin). Read odoo_fp_list List fiscal positions with tax action map summary (l10n_bg_tax_admin). Read odoo_fp_types Get available selection values for fiscal position configuration (l10n_bg_tax_admin). Read odoo_get_field_translations Read current translations for a translatable field on a record. Read odoo_list_models List available Odoo models (ir.model). Optionally filter by name pattern. Read odoo_list_translatable_fields List all translatable fields on an Odoo model. Returns per-field: Read odoo_module_info Get detailed information about an Odoo module: Odoo RPC state + Read odoo_read Read specific records by IDs. Read odoo_record_backup Read full field snapshot of one or more records (any model) and return as a JSON Read odoo_report Generate a PDF report for records. Returns base64-encoded PDF. Read odoo_search Search for record IDs matching a domain filter. Read odoo_search_count Count records matching a domain. Read odoo_search_read Search and read records in one call. Most common operation. Read odoo_timesheet_from_memory Scan progress memory files for a week, propose missing account.analytic.line Read odoo_timesheet_weekly_report Read-only weekly timesheet summary for an employee. Returns per-day and per-project Read odoo_version Get Odoo server version info. Read odoo_web_export Export records to structured data via web session (Odoo export_data). Read odoo_web_read Search and read records via web session (frontend web_search_read format). Read odoo_web_report Download PDF report via web session. Returns base64-encoded PDF. Read odoo_website_list_page_snippets List snippets currently embedded in a target HTML field. Target can be Read odoo_website_list_snippets List available Odoo website snippet templates (ir.ui.view records with Read provision_list_api_keys ADMIN ONLY: List active provisioning API keys (without hashes). Read proxy_discover List available tools on an internal MCP sub-service. Read public_access_barcode Generate barcode image via /report/barcode/{type}/{value}. Read public_access_download Download attachment/binary content by ID via /web/content/{id}. Public route. Read public_access_export_csv Export Odoo list data as CSV via web session. Read public_access_export_xlsx Export Odoo list data as XLSX file via web session. Returns base64. Read public_access_image Download image field from record via /web/image/{model}/{id}/{field}. Read public_access_portal_home Get portal home page content via web session (/my/home). Read public_access_portal_invoices Get list of portal invoices (/my/invoices). Returns HTML page content. Read public_access_portal_orders Get list of portal sale orders (/my/orders). Returns HTML page content. Read public_access_portal_purchases Get list of portal purchase orders (/my/purchase). Read public_access_portal_tickets Get list of portal helpdesk tickets (/my/tickets). Read public_access_report_html Render report as HTML via web session. Read public_access_report_pdf Download PDF report via web session. Route: /report/pdf/{report_name}/{doc_ids}. Read public_access_report_xlsx Download XLSX report via OCA reporting-engine (/report/xlsx/{name}/{ids}). Read public_access_shop Get website shop product listing (/shop). Returns HTML. Read public_access_sitemap Download sitemap.xml from Odoo website. Read s3_bucket_stats Return object_count + total_bytes + oldest/newest object key for a bucket. Read s3_buckets_list List all S3 buckets for the configured account on the target endpoint. Read s3_object_get Download an object (text). Binary or >max_bytes objects return metadata only. Read s3_objects_list List objects in a bucket (prefix-filtered, page size-capped). Read secrets_list ADMIN: list registered per-stack secrets (id, stack, Read session_handoff_accept Accept a handoff addressed to you. Materializes the Read session_handoff_status Show a handoff (by id) or list pending handoffs Read session_link_list List your active session links (id, connection, label, created, Read session_link_rotate Rotate a session link Read session_list List MCP session-store rows. Regular callers see their own Read stack_health ADMIN: deep health of one stack (state + /health + MCP Read supervisor_history ADMIN: list past supervisor ops (optionally per target). Read supervisor_sidecar_status ADMIN: read-only check whether the alias Read supervisor_status ADMIN: read-only status of a stack Read supervisor_targets List SSH-capable hosts (connections.json entries with an ssh block). Read telegram_agent_get_scenario Get the full scenario for an enrolled chat. Read telegram_agent_list List enrolled chats with their mode/persona/skills. Read telegram_agent_product_lookup Search products for an enrolled chat, returning ONLY the scenario Read telegram_agent_route Classify the conversation direction for an enrolled chat and return the Read telegram_auth_status Check Telegram authentication status. Read telegram_get_dialogs List recent Telegram chats (users, groups, channels). Read telegram_get_messages Read messages from a Telegram chat. Chat can be @username, phone, or numeric ID. Read telegram_search_contacts Search Telegram contacts by name or username. Read telegram_sub_list List a principal Read tenant_backup ADMIN: back up a tenant — pg_dump (-Fc) + filestore Read tenant_current Return the currently active tenant (or null) and its tool count. Read tenant_list List all configured remote v2.x tenants with health/cache status. Read tg_listen_status_howto Return the commands to inspect listener/session state. Read user_connection_list List your personal connections. Read who_am_i Show current user identity and active connection.

Related servers

Other MCP servers with similar tools — same risk classification, starter policies for each.

Questions about Odoo Claude MCP

Can an AI agent delete data through the Odoo Claude MCP server? +

Yes. The Odoo Claude MCP server exposes 25 destructive tools including cf_dns_delete, cf_tunnel_route_remove, ee_unlink. These permanently remove resources with no undo. PolicyLayer blocks destructive tools by default so they never reach the upstream server.

How do I prevent bulk modifications through Odoo Claude MCP? +

The Odoo Claude MCP server has 42 write tools including cf_dns_create, cf_dns_update, cf_tunnel_config_put. Set a rate limit in your policy -- for example, 10 calls per hour prevents an agent from making more than 10 modifications per hour. PolicyLayer enforces this at the gateway, before calls reach Odoo Claude MCP.

How many tools does the Odoo Claude MCP server expose? +

246 tools across 4 categories: Destructive, Execute, Read, Write. 126 are read-only. 120 can modify, create, or delete data.

How do I enforce a policy on Odoo Claude MCP? +

Register the Odoo Claude MCP server in PolicyLayer, apply the suggested rules above (adjust the limits to your use case), and point your AI client at the PolicyLayer proxy URL instead of the server directly. Your agents keep the same tools; PolicyLayer evaluates every call against policy before it executes. Nothing to install, live in minutes.

Enforce policy on every Odoo Claude MCP tool call.

Deterministic rules across all 246 Odoo Claude MCP tools. Per-identity grants. Full audit log. Live in minutes. Nothing to install.

Instant setup, no code required.

246 Odoo Claude MCP tools catalogued and risk-classified — across an index of 46,500+ MCP servers.

// WHERE THIS COMES FROM

These policies come from Odoo Claude's registry record.

The record behind this page: verified identity, auth posture, risk grade, every tool classified, recommended policy — re-checked continuously.

Teams ship this data inside their own products. See what a licence covers →

// GET IN TOUCH

Have a question or want to learn more? Send us a message.

Message sent.

We'll get back to you soon.