odoo-mpm-plugin

MPM Odoo ERP plugin for Claude Cowork — connects to mpmedia.odoo.com via XML-RPC with proxy-aware transport.

Version: 0.4.1 Author: Message Point Media Repo: https://git.mpm.to/mpm/odoo-mpm-plugin CoWork Project: CW-003 — Odoo V19 MCP Bridge


Overview

This plugin bridges Claude Cowork to MPM's Odoo ERP instance at mpmedia.odoo.com. It runs a local MCP server (odoo-mpm) via uv that exposes read/write access across 13 modules: Products, Knowledge (with Templates), Contacts, Sales, CRM, Project (full CRUD + milestones + subtasks + chatter + followers + stages + checklists), Helpdesk, Purchase, Inventory, Employees, eLearning, Task Checklists (Cybrosys), and Utilities.

Credentials are personal — each user authenticates with their own Odoo API key, stored securely in the OS keystore (macOS Keychain / Windows Credential Manager / Linux Secret Service). Keys are never written to disk.


Skills

Skill What It Does
odoo Full read/write access to MPM's Odoo instance. Triggers on: "in Odoo", "our products", "the knowledge base", "find a contact", "sales order", "opportunity", "project tasks", "helpdesk ticket", "purchase order", "stock", "inventory", "employee", "create a task", "update the ticket", "cancel quotation", "archive", "mark lost", "bulk update", "how many records", "stage id for", "lost reasons", "course", "training", "elearning", "lesson", "slide", "quiz", "enroll", "create project", "archive project", "milestone", "subtask", "add follower", "post a note", "task chatter", "create stage", "checklist", "archive task"

Tools Reference

Module Tools
Credentials setup_odoo_credentials, clear_odoo_credentials
Products search_products, get_product, get_product_stock
Knowledge search_knowledge_articles, get_knowledge_article, create_knowledge_article, update_knowledge_article
Knowledge Templates search_knowledge_templates, get_knowledge_template, list_knowledge_template_categories
Contacts search_contacts, get_contact, create_contact
Sales search_sales_orders, get_sales_order, create_sales_order, cancel_sale_orders, cancel_and_archive_quotations
CRM search_crm_leads, get_crm_lead, create_crm_lead, update_crm_lead, list_crm_stages, mark_crm_lead_lost, list_crm_lost_reasons
Project — Core list_projects, get_project, search_tasks, get_task, create_task, update_task, list_task_stages
Project — CRUD create_project (supports parent_id for sub-projects), update_project, archive_project
Project — Milestones list_milestones, create_milestone, update_milestone
Project — Task Chatter post_task_message, get_task_messages
Project — Subtasks get_task_subtasks, create_subtask
Project — Lifecycle archive_task
Project — Followers add_task_follower, remove_task_follower
Project — Stages create_task_stage, update_task_stage
Project — Drive Link link_drive_document_to_project
Project — Checklists list_checklist_templates, get_task_checklists, add_checklist_to_task, update_checklist_item
Helpdesk search_helpdesk_tickets, get_helpdesk_ticket, create_helpdesk_ticket, update_helpdesk_ticket, list_helpdesk_teams
Purchase search_purchase_orders, get_purchase_order
Inventory search_inventory, get_stock_moves, list_internal_locations
Employees search_employees, get_employee, list_departments
eLearning — Courses search_courses, get_course, create_course, update_course, publish_course
eLearning — Slides list_course_slides, get_slide, create_slide, update_slide, publish_slide, reorder_slides
eLearning — Quiz get_quiz_questions, add_quiz_question, generate_quiz
eLearning — Enrollment get_course_enrollment, enroll_in_course, bulk_enroll, send_course_invitation
eLearning — Media set_course_cover, set_slide_cover, link_drive_document, add_course_resource
Utilities odoo_search, odoo_get_record, odoo_search_read, get_record_count, bulk_update_records, archive_records, get_stage_ids, call_odoo_method

Task Checklists (Cybrosys projects_task_checklists v19.0.1.0.0)

Models: task.checklist (templates), checklist.item (template items), checklist.item.line (per-task instances). State values: todo / in_progress / done / cancel — no is_done field. update_checklist_item uses Odoo action methods so task progress % and chatter update automatically. Primary use case: phase acceptance criteria on Odoo Implementation project tasks.

link_drive_document_to_project attaches a Google Drive URL to a project.project record as an ir.attachment (type=url). Appears in the project's Attachments panel.

Projects Module (v0.4.1 / v0.4.0)

create_project now accepts parent_id (int) to create sub-projects within a programme hierarchy.


Setup Instructions

Full install guide: MPM Odoo Plugin — Install Guide

Quick summary:

  1. Install the plugin — Claude Desktop: Settings → Plugins → Add Plugin → paste https://git.mpm.to/mpm/odoo-mpm-plugin. Or double-click the .plugin file from the CW-003 Drive folder.
  2. Verify uv is installed — Run which uv in terminal. If missing — Mac/Linux: curl -LsSf https://astral.sh/uv/install.sh | sh.
  3. Restart Claude Desktop — Quit and relaunch.
  4. Generate a personal Odoo API key — Odoo → Avatar → My Profile → Account Security → API Keys → New API Key → set expiration to No Limit.
  5. Connect — In CoWork, type "Set up my Odoo credentials".
  6. Verify — Ask Claude: "List my Odoo projects".

Connection Details

Field Value
Instance mpmedia.odoo.com
Database mpmedia-odoo-sh-main-13285275
Transport stdio via uv
Auth Personal API key in OS keystore (odoo-mpm service)
MCP server name odoo-mpm

Changelog

v0.4.1 (2026-05-29)

  • create_project now accepts parent_id for sub-project hierarchy
  • New tool: link_drive_document_to_project — attach Drive URL to project.project as ir.attachment
  • New Cybrosys checklist tools (4): list_checklist_templates, get_task_checklists, add_checklist_to_task, update_checklist_item
  • Built against actual Cybrosys module source (task.checklist / checklist.item / checklist.item.line)
  • 97 total tools

v0.4.0 (2026-05-28)

  • Full Projects module (15 new tools): create_project, update_project, archive_project, list_milestones, create_milestone, update_milestone, post_task_message, get_task_messages, get_task_subtasks, create_subtask, archive_task, add_task_follower, remove_task_follower, create_task_stage, update_task_stage
  • SKILL.md description trimmed to ≤100 words (plugin validator hard limit — documented)
  • 92 total tools

v0.3.0 (2026-05-28)

  • eLearning module (22 new tools): Courses, Slides, Quiz, Enrollment, Media

v0.2.0 (2026-05-28)

  • Sales cancellation safety guard, bulk utilities, CRM lost reasons, Knowledge Templates

v0.1.3 (2026-05-18)

  • Knowledge article icon support

v0.1.2 (2026-05-05)

  • Initial CoWork registration

Requirements

  • uv — Python package and environment manager
  • mcp[cli] — installed automatically by uv on first run
  • keyring — installed automatically by uv on first run

Troubleshooting

Symptom Fix
MCP server won't start Confirm uv is installed: which uv
"Credentials not configured" Run setup_odoo_credentials
Authentication failed Rotate Odoo API key; run clear_odoo_credentials then setup_odoo_credentials
Keychain prompt on first use Normal — allow it
cancel_sale_orders refused Check order state — only draft/sent allowed
Plugin validation failed Check SKILL.md description word count — must be ≤100 words
S
Description
MPM Odoo ERP plugin for Claude Cowork — connects to mpmedia.odoo.com via XML-RPC with proxy-aware transport
Readme 192 KiB
Languages
Python 100%