MCP Server for Odoo · by KSRO Labs

Give Claude Full Access to Your Live Odoo

A native Odoo module that exposes your Odoo instance as an MCP server. Claude can search records, create data, run analytics, and build dashboards — all governed by your existing Odoo user permissions.

OAuth 2.134 toolsOdoo 19Direct connectionNo code required
MCP Server for Odoo — Claude connected to Odoo

From install to first answer in under 5 minutes

No bridge scripts, no middleware, no API keys in .env files. Claude talks directly to your Odoo over HTTPS using OAuth 2.1.

01
Install the module
Search “MCP Server for Odoo” in the Odoo App Store and click Install. Go to Settings → MCP Server and enable the toggle. The module registers a license and starts serving the MCP endpoint at /mcp.
02
Connect Claude
In Claude.ai, open Settings → Connectors → Add custom connector. Enter your Odoo URL (e.g. https://your-odoo.example.com/mcp). Claude redirects you to an OAuth 2.1 login page on your Odoo — log in and click Authorize.
03
Ask in plain English
Claude now has access to 34 tools that can read and write to your Odoo. Ask anything: “Show me overdue invoices”, “Create a customer for Acme Corp”, “What’s our top product by revenue?” — Claude handles it.

KSRO Labs is never in the data path. Every request goes directly from Claude to your Odoo.

You
Type a prompt in Claude
Claude
Calls your Odoo via HTTPS
Your Odoo
POST /mcp — processes request
Odoo DB
Enforces user permissions

KSRO Labs never touches your Odoo data. The only data that reaches KSRO Labs servers is a one-time license registration ping on install — containing only your Odoo database UUID, base URL, and company name. No business records, no MCP requests, no OAuth tokens are ever forwarded to KSRO Labs.

34 tools across read and write operations

Every tool is governed by your Odoo user's existing roles and record rules. Claude can only do what your account is permitted to do.

search_records
Search any Odoo model with domain filters, fields, limit, and offset
get_record
Fetch a single record by ID with specified fields
list_models
List all available Odoo models with labels and descriptions
describe_model
Inspect field definitions, types, and relations for any model
aggregate_records
Run groupby aggregations — sum, count, avg — on any model
pivot
Build pivot tables across two dimensions with a measure
timeseries
Aggregate records over time (day / week / month / quarter / year)
cohort
Cohort retention analysis across any date field
topn
Rank records by a numeric field and return top-N results
funnel
Multi-stage funnel analysis across sequential domain filters
export_dataset
Export records to CSV, JSON, or structured table format
batch_search
Execute multiple search_records calls in a single request
analytics_list_dashboards
List all analytics dashboards and their metadata
analytics_get_dashboard_data
Fetch the full data payload for a specific dashboard
list_portal_pages
List all portal pages created via the module
get_portal_schema
Fetch the content schema and metadata for a portal page
get_job_status
Get the current status of a background job
get_job_result
Fetch the result of a completed background job
generate_module_spec
Generate a structured spec for a custom Odoo module before building

Your Odoo permissions enforce every action

The MCP Server delegates all access control to Odoo. Claude can only access what your Odoo user account is allowed to access — nothing more.

OAuth 2.1 authentication

Claude authenticates to your Odoo using the OAuth 2.1 authorization code flow. No passwords are shared. No API keys are emailed. The token is stored in your Odoo database, not on any KSRO Labs server.

scope: mcp

A single mcp OAuth scope is requested. It grants access to all tools permitted by your Odoo user's roles. There is no separate read-only scope — access is controlled by Odoo's existing permission system.

Zero third-party intermediary

Every MCP request travels directly from Anthropic's Claude to your Odoo instance. KSRO Labs does not operate a relay, proxy, or logging server in this path.

The only data that reaches KSRO Labs is the one-time license registration on module install: your Odoo database UUID, base URL, and company name. No business records are ever forwarded.

Odoo roles fully enforced

Claude inherits the exact permissions of the Odoo user that authorized the connector. Odoo's access rules, record rules, and field-level security all apply to every MCP request — automatically.

To restrict Claude's access (e.g. read-only for a specific user), create a dedicated Odoo user with the appropriate role before authorizing the connector.

HTTPS required

Your Odoo instance must be reachable over HTTPS from the public internet for Claude to connect. Self-signed certificates are not supported. Odoo.com SaaS and Odoo.sh instances are HTTPS by default.

On-premise instances behind a corporate firewall or VPN are not supported unless the /mcp endpoint is publicly accessible.

Full access scope summary
What Claude can access
  • All Odoo models your user can read
  • All records your user has access to
  • Create/update/delete where your user is permitted
  • Analytics dashboards you own
  • Portal pages created by the module
What Claude cannot access
  • Records restricted by Odoo record rules
  • Fields hidden by field-level security
  • Models your user has no read access to
  • Other users' private data (unless your role grants it)
  • Odoo server configuration or file system
What KSRO Labs stores
  • Odoo database UUID (for license)
  • Odoo base URL (for license)
  • Company name (for license display)
  • Odoo version (for compatibility tracking)
  • Nothing else — ever

Common questions