odoo_mcp
Provides tools for interacting with a self-hosted Odoo instance, enabling agents to list, retrieve, and update tasks, post messages to task chatter, and manage timesheet entries.
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., "@odoo_mcpwhat tasks are due this week?"
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.
Odoo MCP server for OpenCode
This workspace ships a local stdio MCP server (odoo_mcp) that exposes your
self-hosted Odoo project tasks, chatter, and timesheets as nine typed tools an
agent can call directly. The same repository still contains the original
odoo_tasks.py CLI — unchanged behaviorally — which shares the service layer
with the MCP server.
Prerequisites
Python 3.10+ (workspace developed against 3.12)
uv on PATH (
pip install uvif missing)
Install everything once:
uv syncRelated MCP server: MCP Server for Odoo
Credentials (environment variables)
Variable | Purpose | Default |
| Base URL of your Odoo instance |
|
| Database name |
|
| Your login email | required |
| Password or external API key | required |
ODOO_URL must be an absolute HTTPS URL so credentials are never sent over
cleartext HTTP.
An API key is strongly recommended over a password (Odoo: Preferences →
Account Security → New API Key): it is revocable and cannot be used for web
login. Copy .env.example to .env, fill it in, and load it into your shell,
or set the variables however you manage secrets. The MCP server and CLI helper
both auto-load a workspace-root .env when it is present; environment
variables already set by OpenCode or the shell take precedence. Never commit
.env.
Interpolation caveat: opencode.json uses {env:VAR} placeholders. If a
variable is missing when OpenCode starts, it becomes an empty string, and
every tool call will fail with a clear error naming the missing variable(s)
(Missing required environment variables: ODOO_USERNAME, ...) instead of
sending bad credentials anywhere. Values are never echoed to logs or results.
Registering with OpenCode
opencode.json in this workspace already contains:
{
"mcp": {
"odoo": {
"type": "local",
"command": ["uv", "run", "python", "-m", "odoo_mcp"],
"environment": { "...": "{env:ODOO_*} placeholders" },
"enabled": true
}
}
}OpenCode loads config at startup — after changing credentials or this file, quit and restart OpenCode for them to take effect. The server is spawned once per session over stdio; nothing listens on any network port.
Tools
Mutating tools execute immediately by default; every one accepts a
dry_run=true flag that returns a preview without writing anything.
Tool | What it does |
| Tasks assigned to you; filter by project, stage, state, due dates |
| Full detail of one task (planned/logged hours included) |
| Set name/description/priority/deadline/hours/state/stage; |
| Post to a task's chatter (followers get notified) |
| Valid workflow state codes on this server + which are terminal |
| Task stage ids/names for filtering |
| Your timesheet entries; filter by task or recent days |
| Log hours on a task (date defaults to today) |
| Change hours/date/description/task of an entry |
State codes vary per Odoo build — call get_task_states first rather than
guessing; invalid states are rejected with the list of valid ones.
Verifying the install
uv sync # deps resolve
uv run pytest tests -q # protocol + service suites
uv run python -m unittest discover -s tests -v # CLI characterization suite
uv run python odoo_tasks.py --help # legacy CLI still intactThe stdio handshake itself is covered by tests/test_stdio_smoke.py.
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
- -licenseNot gradedqualityNot gradedmaintenanceEnables 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.
- AlicenseNot gradedqualityCmaintenanceEnables 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.1Mozilla Public 2.0
- AlicenseAqualityBmaintenanceEnables AI agents to interact with Odoo ERP as the authenticated user, with tools for discovery, planning, and mutations bounded by user permissions.34372MIT
- FlicenseNot gradedqualityBmaintenanceEnables ChatGPT to interact with Odoo by providing tools for repository management, git operations, Odoo.sh management, Odoo RPC, browser screenshots, and approval workflows.
Related MCP Connectors
Odoo ERP for AI agents: hosted OAuth endpoint, gated writes, one endpoint for every instance.
Task manager your agent can fully operate: boards, tasks, sprints, roles, worklogs, day planner.
Manage projects, tasks, time tracking, and team collaboration through natural language.
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/hazem-gs/odoo-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server