qod-ppm-odoo-mcp
Servidor MCP para el plugin de Odoo QOD PPM.
Expone los botones, asistentes y transiciones de flujo de trabajo del plugin como herramientas MCP: aquellas cosas que un servidor CRUD genérico de Odoo no puede expresar.
Diseño
Este servidor es intencionalmente ligero. No reimplementa el CRUD de Odoo.
Ejecútelo junto a un MCP de Odoo genérico (por ejemplo, ivnvxd/mcp-server-odoo):
Necesidad | Uso |
Crear/leer/actualizar/eliminar portafolios, programas, proyectos, tareas, riesgos, ... | MCP de Odoo genérico ( |
Transición de estado de flujo de trabajo (enviar, aprobar, lograr, cerrar, ...) | Este servidor |
Ejecutar un asistente (informe de estado, rechazo de CR, exportación de presupuesto, ...) | Este servidor |
Reglas de dominio (movimiento en matriz P×I con validación, ...) | Este servidor |
En pocas palabras: si hay un botón en la interfaz de usuario de Odoo que hace algo no trivial al hacer clic, es una herramienta aquí. El CRUD envuelve campos; esto envuelve botones.
Related MCP server: mcp-server-odoo
Instalación
pip install qod-ppm-odoo-mcpO desde el código fuente:
git clone https://github.com/wethti/qod-ppm-odoo-mcp
cd qod-ppm-odoo-mcp
pip install -e .Configuración
Cree un usuario de servicio en Odoo y asígnele los grupos de PPM que necesite (group_ppm_admin o alternativas con alcance). Genere una clave API desde la página de preferencias del usuario. Luego configure:
export ODOO_URL="https://your-odoo.example.com"
export ODOO_DB="your_db_name"
export ODOO_USERNAME="ppm-service@example.com"
export ODOO_API_KEY="…" # preferred
# or ODOO_PASSWORD="…"Se incluye un archivo .env.example.
Ejecución
stdio (predeterminado) — para Claude Desktop / Claude Code / cualquier cosa que inicie un servidor MCP como subproceso:
qod-ppm-mcpHTTP con streaming — para acceso remoto (otro VPS, un host de agente, etc.):
export QOD_PPM_MCP_TRANSPORT=http
export QOD_PPM_MCP_HOST=0.0.0.0
export QOD_PPM_MCP_PORT=8765
qod-ppm-mcpColoque un proxy inverso con TLS + autenticación delante si se expone a Internet.
Configuración de Claude Code / Claude Desktop
Agregue a ~/.claude.json (Claude Code) o claude_desktop_config.json:
{
"mcpServers": {
"qod-ppm": {
"command": "qod-ppm-mcp",
"env": {
"ODOO_URL": "https://your-odoo.example.com",
"ODOO_DB": "your_db_name",
"ODOO_USERNAME": "ppm-service@example.com",
"ODOO_API_KEY": "…"
}
},
"odoo": {
"command": "uvx",
"args": ["mcp-server-odoo"],
"env": {
"ODOO_URL": "https://your-odoo.example.com",
"ODOO_DB": "your_db_name",
"ODOO_USERNAME": "ppm-service@example.com",
"ODOO_API_KEY": "…"
}
}
}
}Ambos servidores apuntan al mismo Odoo. Claude ve las herramientas con el espacio de nombres mcp__qod-ppm__* (acciones de flujo de trabajo) y mcp__odoo__* (CRUD genérico).
Referencia de herramientas
Llame a ppm_list_action_tools para obtener la lista actual en tiempo de ejecución. Grupos:
Hitos (ppm.milestone)
ppm_milestone_start/achieve/miss/cancel/reopen
Informes de estado (ppm.status.report + asistente)
ppm_status_report_generate(project_id, period?, commentary?)— ejecuta el asistente, rellena automáticamente RAG/presupuesto/riesgos/hitos, crea el informeppm_status_report_publish(report_id)ppm_status_report_reset_draft(report_id)ppm_status_report_print_url(report_id)— devuelve la acción de PDF
Solicitudes de cambio (ppm.change.request + asistente de rechazo)
ppm_change_request_submit/start_review/approve/reset_draftppm_change_request_reject(cr_id, reason)— ejecuta el asistente de rechazo
Riesgos (ppm.risk)
Flujo de trabajo:
ppm_risk_start_analysis/start_mitigation/start_monitoring/mark_occurred/close/reopenppm_risk_move_in_matrix(risk_id, probability, impact)— la probabilidad y el impacto son números enteros del 1 al 5; el servidor recalcula la puntuación y el nivel
Incidencias (riesgos marcados como issue_type)
ppm_issue_assign/start/resolve/escalate
Asignaciones de roles (ppm.role.assignment)
ppm_role_activate/approve_and_activate/revoke/reset_draft(cada uno sincroniza el grupo de seguridad de Odoo)
Exportaciones (asistentes → XLSX)
ppm_export_budget(project_id?, portfolio_id?, date_from?, date_to?, category_id?, include_closed?)ppm_export_risks(project_id?, portfolio_id?, risk_level?, include_closed?)ppm_export_resources(project_id?, employee_id?, department_id?, date_from?, date_to?, include_cancelled?)
Los tres devuelven una ir.actions.act_url que apunta a /web/content/<id>?download=true.
Proyectos de tarjeta de cliente
ppm_create_project_from_template(partner_id, template_id, project_name)
Introspección
ppm_ping()— autenticación + conteos básicosppm_list_action_tools()— lista de herramientas autodescriptiva
Compatibilidad
Odoo 18.0 Community / Enterprise
Módulos QOD PPM:
qod_ppm_core,qod_ppm_budget,qod_ppm_change_request,qod_ppm_client_card_projects,qod_ppm_dashboard,qod_ppm_resource,qod_ppm_risk,qod_ppm_roles,qod_ppm_roles_crm,qod_ppm_roles_mrp,qod_ppm_scoring,qod_ppm_status,qod_ppm_task_status
Licencia
LGPL-3.0-or-later — coincidiendo con los módulos QOD PPM.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
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/wethti/qod-ppm-odoo-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
