mcp-odoo
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., "@mcp-odoolist my tasks in progress"
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.
MCP Odoo - Model Context Protocol para Odoo
MCP server que permite interacturar con Odoo desde cualquier IDE compatible con MCP (OpenCode, Cursor, Claude Desktop, etc.)
Características
🔐 Login con credenciales propias - Cada usuario usa sus credenciales de Odoo
📋 Gestión de tareas - Lista tus tareas, filtra por proyecto y estado
🧾 Detalle enriquecido - Ve etiquetas, prioridad legible y descripcion de cada ticket
⏱️ Timesheets - Carga horas trabajadas
🔀 Ramas GitLab - Ver ramas asociadas a cada tarea
🔄 Genérico - Funciona con cualquier instancia de Odoo 17+
Related MCP server: odoo-mcp-server
Instalación
git clone https://github.com/Igabr13l/mcp-odoo.git
cd mcp-odoo
npm installConfiguración por IDE
OpenCode
Agregar en opencode.json de tu workspace:
{
"mcp": {
"odoo": {
"type": "local",
"command": ["node", "/ruta/absoluta/a/mcp-odoo/src/index.js"],
"enabled": true
}
}
}Cursor / Claude Desktop
Agregar en cursor.json o claude_desktop_config.json:
{
"mcpServers": {
"odoo": {
"command": "node",
"args": ["/ruta/absoluta/a/mcp-odoo/src/index.js"]
}
}
}VS Code (con extension MCP)
En settings.json:
{
"mcpServers": {
"odoo": {
"command": "node",
"args": ["C:\\ruta\\a\\mcp-odoo\\src\\index.js"]
}
}
}Windsurf
En ~/.windsurf/config.json o en el archivo de configuración del proyecto:
{
"mcp": {
"odoo": {
"type": "local",
"command": ["node", "/ruta/a/mcp-odoo/src/index.js"]
}
}
}Uso
1. Login (obligatorio)
Primero, iniciá sesión con tus credenciales de Odoo:
odoo_login({
url: "https://odoo.tuempresa.com",
db: "nombre_db",
login: "tu@email.com",
password: "tu_password"
})2. Herramientas disponibles
Herramienta | Descripción |
| Muestra el usuario actual conectado |
| Lista todos los proyectos activos |
| Lista los proyectos donde tenés tickets asignados |
| Lista tus tareas (opcional: project_id, state) |
| Lista tickets con filtros (mine, project_id, state, search, limit), prioridad y etiquetas |
| Detalle de una tarea con asignados, etiquetas, prioridad, descripcion y metricas |
| Lee mensajes y notas internas del chatter; oculta secretos por defecto |
| Lista adjuntos, imágenes y videos con sus metadatos |
| Devuelve imágenes adjuntas como contenido visual MCP |
| Extrae fotogramas representativos de videos adjuntos |
| Tablero personal agrupado por etapas reales de Odoo |
| Verifica ramas y referencias de MR directamente en GitLab |
| Edita asignados, descripción y estado/etapa de una tarea |
| Ramas GitLab vinculadas a una tarea |
| Carga horas en una tarea |
| Lista tus horas cargadas con filtros por fecha/proyecto/tarea |
3. Ejemplos de uso
Ver mis tareas en progreso
odoo_get_my_tasks({ state: "in_progress" })Ver tareas de un proyecto específico
odoo_get_my_tasks({ project_id: 7, state: "in_progress" })Ver mis proyectos (donde tengo tickets)
odoo_get_my_projects({})Ver tickets con filtros
odoo_get_tickets({ mine: true, state: "to_do", search: "whatsapp", limit: 50 })Ver detalle de una tarea con ramas GitLab
odoo_get_task_detail({ task_id: 9646 })Leer mensajes, notas y adjuntos
odoo_get_ticket_messages({ task_id: 9646, include_system: false })
odoo_get_ticket_attachments({ task_id: 9646 })
odoo_get_ticket_images({ task_id: 9646, limit: 5 })
odoo_get_ticket_video_frames({ task_id: 9646, frames: 4 })Los videos se listan con nombre, tipo MIME, tamaño y URL cuando Odoo guarda una. MCP no define contenido de video nativo, por lo que el servidor no carga el binario del video en el contexto. API keys, tokens y passwords se enmascaran por defecto en descripciones y mensajes.
La extracción de fotogramas requiere ffmpeg y ffprobe instalados localmente.
Ver tablero y estado GitLab
odoo_get_my_board({ project_id: 7 })
odoo_get_gitlab_status({ task_id: 11244 })La creación de una fila GitLab, una rama o un merge request requiere
confirm: true. Las operaciones son idempotentes cuando Odoo ya tiene el
recurso registrado. El MCP crea merge requests, pero no los fusiona: el merge
debe respetar pipelines, conflictos y aprobaciones de GitLab.
Editar una tarea (asignados, descripción y estado)
odoo_update_task({
task_id: 9646,
assignee_user_ids: [16],
description: "Actualizar validaciones de WhatsApp",
state: "in_progress"
})También podés usar stage_id o stage_name en vez de state.
Ver ramas GitLab de una tarea
odoo_get_task_gitlab_branches({ task_id: 9646 })Cargar horas
odoo_create_timesheet({
task_id: 9646,
project_id: 7,
date: "2026-03-01",
hours: 2,
description: "Implementación de feature X"
})Ver horas cargadas un día específico
odoo_get_my_timesheets({ date: "2026-02-27" })Ver horas cargadas en un rango de fechas
odoo_get_my_timesheets({ date_from: "2026-02-01", date_to: "2026-02-28" })Ver horas de un proyecto específico
odoo_get_my_timesheets({ project_id: 7, date_from: "2026-02-01", date_to: "2026-02-28" })Configuración de Variables de Entorno
Podés configurar valores por defecto:
export ODOO_URL="https://odoo.tuempresa.com"
export ODOO_DB="nombre_db"Pero seguís necesitando hacer login con tu usuario y password.
La sesión es única por proceso y se reutiliza durante toda la ejecución. El MCP
no reautentica periódicamente: Odoo valida las credenciales en cada operación
execute_kw. Si varias herramientas arrancan al mismo tiempo sin un uid
persistido, comparten un único intento de autenticación.
El timeout HTTP por defecto es de 15 segundos. Puede configurarse entre 1 y 120
segundos con ODOO_REQUEST_TIMEOUT_MS.
La sesión persistida se guarda con permisos 0600 y contiene las credenciales
necesarias para JSON-RPC. Puede cambiarse su ubicación con ODOO_SESSION_FILE.
La verificación remota de GitLab permite gitlab.solunika.com por defecto. Para
otras instalaciones, configurá una lista separada por comas en
ODOO_GITLAB_ALLOWED_HOSTS.
Licencia
MIT
This server cannot be installed
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
- AlicenseBqualityDmaintenanceEnables conversational interaction with Odoo to manage timesheets, expenses, contacts, and invoices through an MCP-compatible assistant. It provides comprehensive tools for searching records, managing HR tasks, and tracking project costs via the Odoo API.383MIT
- Alicense-qualityCmaintenanceEnables interaction with Odoo ERP systems for product, customer, order, invoice, and payment management using MCP tools.5MIT
- Flicense-qualityCmaintenanceEnables query and management of Zentao bugs, tasks, projects, and iterations directly from MCP-compatible IDEs like Cursor or Claude Desktop.
- Flicense-qualityCmaintenanceFull-featured MCP connector for Odoo ERP via XML-RPC, enabling natural language interaction with CRM, sales, inventory, and other Odoo modules.
Related MCP Connectors
A MCP server built for developers enabling Git based project management with project and personal…
An MCP server that let you interact with Cycloid.io Internal Development Portal and Platform
WakaTime MCP.
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/Igabr13l/mcp-odoo'
If you have feedback or need assistance with the MCP directory API, please join our Discord server