What is the difference between MCP and a REST API?
A REST API is a collection of raw HTTP endpoints. You call a URL, pass parameters, and get data back. REST APIs are excellent for predictable, programmatic integrations between systems — syncing records, triggering webhooks, and machine-to-machine data exchange. But REST was designed for developers writing code, not for AI agents that need to reason about what tools are available and how to use them.
MCP (Model Context Protocol) is a standardised protocol that AI agents speak natively. Rather than requiring a developer to write custom glue code for every model and every action, MCP exposes a structured capability manifest — a list of tools, their parameters, and their descriptions — that any MCP-compatible AI client can query automatically at runtime.
The practical difference: with a REST API, you write the integration. With MCP, the AI agent discovers the integration itself.
The REST API problem for AI agents
If you have tried to connect an AI agent to Odoo via REST or JSON-RPC, you have likely encountered these pain points:
You must write custom wrappers for every Odoo model and action. Need sales orders? Write a wrapper. Need inventory? Write another. This is ongoing developer work as requirements change.
Agents don't auto-discover tools. You must manually document every endpoint and inject that documentation into the agent's system prompt — and keep it in sync as Odoo evolves.
Authentication is manual and coarse. Odoo's JSON-RPC ties auth to a user session. Building scoped, per-agent API keys with model-level restrictions requires significant custom engineering.
There is no built-in audit trail for AI actions. If an agent creates or modifies a record, you have no automatic way to attribute that change to the AI agent rather than a human user.
Developer time is massive. Connecting a single AI agent to a handful of Odoo models via REST typically takes days to a week of engineering work — and the same again for each new agent or model.
How MCP solves these problems
The KSROlabs MCP Server addresses every REST pain point with a protocol designed for AI agents:
Automatic tool discovery
AI agents query the MCP Server at startup and receive a full manifest of available tools, parameters, and descriptions. No documentation to write or maintain.
Governed, scoped access
Each API key is scoped to specific Odoo models and fields. The AI agent can only access what you explicitly allow — enforced by Odoo's native access control layer.
Built-in audit logging
Every action taken through the MCP Server is logged in Odoo's audit trail with timestamp, model, payload, and the API key used. No custom logging to build.
Works with any MCP client
Connect Claude, GPT-4o, Gemini, or any custom agent — with zero custom integration code. The MCP protocol is the bridge; your AI client handles the rest.
Comparison table
| Feature | MCP Server | Custom REST API | Odoo JSON-RPC |
|---|---|---|---|
| Setup time | Install module, create API key, connect client | Write wrappers for every endpoint you need | Available out-of-the-box but requires manual auth wiring |
| Tool discovery | Automatic — agents query available tools at runtime | Manual — you must document and code each endpoint | None — agents must know the method names in advance |
| Permission enforcement | Inherited from Odoo access control, per-key model/field scope | Manual — you implement and maintain it yourself | Tied to Odoo user session, coarse-grained |
| Audit logging | Built-in — every AI action logged in Odoo | None by default — you build your own logging | None specific to AI actions |
| Compatible clients | Any MCP client (Claude, GPT-4o, Gemini, custom agents) | Any HTTP client — broad but requires custom glue code | Odoo-specific clients and custom integrations only |
| Schema awareness | Full — agents see field types, descriptions, and relationships | None unless you build and maintain OpenAPI specs | Partial via fields_get() but not agent-friendly |
| Rate limiting | Per-key rate limits configurable in Odoo settings | Server-level only unless you build middleware | No built-in rate limiting |
| Odoo version support | Odoo 16, 17, 18 (Community & Enterprise) | All versions — varies by implementation | All Odoo versions |
When would you still use REST?
MCP is the right choice for AI agent access, but REST APIs remain the right choice for several other integration patterns:
External system webhooks — when an external platform (a payment gateway, e-commerce platform, or CRM) needs to push data into Odoo on a trigger event, webhooks over REST are the standard approach.
Machine-to-machine sync — recurring scheduled jobs that move records between Odoo and another system (ERP, WMS, 3PL) are well-served by REST. No AI reasoning involved.
No AI agent access needed — if your integration is purely programmatic and there is no AI model in the loop, REST is simpler and has broader tooling support.
The KSROlabs Webhooks & REST API module is purpose-built for these machine-to-machine scenarios.
The verdict: use MCP for AI, REST for machine-to-machine
If you are connecting an AI agent — Claude, GPT-4o, Gemini, or a custom LLM-powered assistant — to Odoo, use MCP. The protocol was designed for exactly this use case: auto-discovery, scoped access, governed actions, and audit logging, without weeks of custom engineering.
If you are syncing data between Odoo and another system on a schedule, or receiving events from an external platform, use REST. Webhooks and REST APIs are the right tool for deterministic, code-driven integrations.
The two approaches are complementary. Many KSROlabs customers run both — MCP for their AI-powered workflows and the Webhooks & REST API module for their system integrations.
Frequently asked questions
Can I use both MCP and REST API for Odoo?
Yes — they are complementary, not mutually exclusive. The KSROlabs MCP Server is designed for AI agent access, while the Webhooks & REST API module handles machine-to-machine sync and external system integrations. Many customers run both, routing AI traffic through MCP and system integrations through REST.
Is MCP more secure than a REST API?
MCP and REST can both be secured properly, but MCP has structural advantages for AI workloads. The KSROlabs MCP Server inherits Odoo's native access controls, enforces per-key model and field allowlists, and logs every AI action in Odoo's audit trail — security features that you would have to build manually on top of a custom REST API.
Do all AI models support MCP?
MCP support is growing rapidly. Claude (Anthropic), GPT-4o (OpenAI), and Gemini (Google) all support MCP-based tool use. Any model that supports structured tool/function calling can be used with the KSROlabs MCP Server via an MCP client library. Check the MCP ecosystem documentation for the latest client support list.
What Odoo versions support the MCP Server?
The KSROlabs MCP Server for Odoo supports Odoo 16.0, 17.0, and 18.0 — both Community and Enterprise editions. Self-hosted instances and Odoo.sh are both supported. Odoo Online (odoo.com SaaS) does not allow custom module installation.
How hard is it to switch from REST to MCP?
If you are currently using Odoo's JSON-RPC or a custom REST layer for AI agent access, switching to MCP is straightforward. Install the KSROlabs MCP Server module, configure an API key with the same model access your REST integration had, and update your AI client to connect via MCP. Most teams complete the migration in a single day.