OdooSurface MCP
Provides user-equivalent Odoo access for AI agents, enabling actions such as creating, updating, archiving records, executing actions, posting messages, scheduling activities, and managing pages, all bounded by the authenticated user's permissions.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@OdooSurface MCPlist all leave requests pending approval"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
OdooSurface MCP
User-equivalent Odoo access for AI agents — what the authenticated user can do in their browser, nothing more.
Prerequisites
Node.js 18+ (ships with
npx— no extra install needed)A running Odoo instance (17.0+, CE or EE)
An MCP-compatible client (VS Code, Claude Desktop, Claude Code, Cursor, …)
Related MCP server: MCP Server for Odoo
Configure your MCP client
Add this to your MCP client config (e.g. Claude Desktop claude_desktop_config.json):
{
"mcpServers": {
"odoo-surface": {
"command": "npx",
"args": ["-y", "@suco/odoo-surface-mcp@latest"],
"env": {
"ODOO_URL": "http://localhost:8069",
"ODOO_DB": "your_database",
"ODOO_USER": "admin",
"ODOO_PASSWORD": "admin"
}
}
}
}Restart your MCP client after saving. npx downloads and runs the package automatically — no further install steps.
Authentication
Option A — .env file (keep credentials out of MCP config)
Instead of putting credentials in your MCP client JSON, create a .env file in the directory where you run the MCP:
ODOO_URL=http://localhost:8069
ODOO_DB=your_database
ODOO_USER=admin
ODOO_PASSWORD=your_passwordRemove the env block from the MCP client config — the .env file is loaded automatically.
Option B — API Key (recommended, no password stored)
Since Odoo 14+, users can generate personal API keys that act as a password replacement. Each user generates their own key from their own account — there is no admin-side menu for this.
Log in as the user the MCP will authenticate as
Click the user avatar (top-right) → Preferences
Go to the Account Security tab
Under API Keys → click New API Key
Enter your password when prompted, give the key a name, copy the generated key
Use it as
ODOO_PASSWORD— the actual account password is never stored
ODOO_URL=http://localhost:8069
ODOO_DB=your_database
ODOO_USER=admin
ODOO_PASSWORD=your_api_key_hereAPI keys can be revoked individually from the same screen without changing the account password.
Advanced Configuration
Multiple Odoo instances
Technical users commonly work with more than one Odoo instance (local dev, staging, production). Each instance gets its own named entry in the MCP config — they run as independent processes with fully isolated credentials. The AI client exposes them as separate tool namespaces.
{
"mcpServers": {
"odoo-local": {
"command": "npx",
"args": ["-y", "@suco/odoo-surface-mcp@latest"],
"env": {
"ODOO_URL": "http://localhost:8069",
"ODOO_DB": "dev",
"ODOO_USER": "admin",
"ODOO_PASSWORD": "dev_api_key"
}
},
"odoo-production": {
"command": "npx",
"args": ["-y", "@suco/odoo-surface-mcp@latest"],
"env": {
"ODOO_URL": "https://mycompany.odoo.com",
"ODOO_DB": "prod",
"ODOO_USER": "admin",
"ODOO_PASSWORD": "prod_api_key"
}
}
}
}Note: The
.envfile approach (Option A) does not work for multi-instance setups — both processes share the same working directory and would load the same file. Use theenvblock per entry instead.
Debug mode
Registers additional tools: ping, echo, inspect_view, inspect_action, inspect_fields, dump_cache, clear_cache, restart_mcp.
"args": ["-y", "@suco/odoo-surface-mcp@latest", "--debug"]Tools
Layer | Tools |
Guidance |
|
Discovery |
|
Planning |
|
Supporting |
|
Intent |
|
Architecture
Core Contract
The agent may only do what the authenticated user can do in their browser. Scope is bounded by the user's menus, views, and ACL — nothing more. Tool verbs express functional intent (publish, confirm) rather than raw ORM operations. Discovery is lazy: the agent resolves only what the current prompt requires.
Layered Tool Surface
Layer | Role | When invoked |
0 — Guidance | Canonical recipes (skills, workflows) the agent consults before any multi-step operation. Pure documentation, no side effects. | Before planning |
1 — Discovery | Establishes the bounded universe of models and reachable relations for the current user. | At intent resolution |
2 — Planning Bridge | Answers "what is live on this specific record right now" — record-state-aware actions. | Once a record is identified |
3 — Supporting | Read-only data fetchers used silently to fill gaps in the agent's plan. | Throughout planning |
4 — Intent | Mutating actions that fulfill the user's request — bounded by the user's UI permissions. | Final execution |
Planning Loop
User prompt
├── Discovery — what models/relations does this user have?
├── (optional) — locate the specific record
├── Planning Bridge — what is live on that record right now?
├── Guidance — consult skills/workflows for multi-step recipes
└── Intent — execute the mutation(s)Skills and workflows are authored in skills/ and workflows/ as markdown with YAML
frontmatter; they are exposed as Layer 0 tools at runtime.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityDmaintenanceEnables AI assistants to interact with Odoo ERP systems through XML-RPC communication. Provides access to Odoo models, records, methods, and data structures for comprehensive ERP integration.Last updated2MIT
- -license-quality-maintenanceEnables AI assistants to interact with Odoo ERP systems through natural language to search records, create entries, update data, and manage business operations. Supports secure authentication and configurable access controls for production environments.Last updated
- Alicense-qualityBmaintenanceEnables AI assistants to interact with Odoo ERP systems through natural language, allowing users to search, create, update, and manage business records like customers, products, and invoices across any Odoo instance.Last updated1Mozilla Public 2.0
- Alicense-qualityDmaintenanceEnables AI assistants to fully interact with Odoo ERP instances over XML-RPC, supporting read and write operations on any model without requiring Odoo module installation.Last updated4AGPL 3.0
Related MCP Connectors
Runtime permission, approval, and audit layer for AI agent tool execution.
SaaS intelligence for AI agents. 5 unified tools cover 1,000+ services with 91-96% token savings.
Persistent memory and knowledge management for AI agents with semantic search and 50+ tools.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/solutionsunity/odoo-surface-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server