All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
2.2.0 - 2026-04-12
- Ported workforce tooling from OdooClaw into standalone server:
- attendance/time flows (
odoo_check_in,odoo_check_out,odoo_find_attendance,odoo_find_missing_timesheets,odoo_suggest_timesheet_from_attendance) - personal productivity flows (
odoo_get_my_today_summary,odoo_find_my_tasks,odoo_update_task_status,odoo_log_task_timesheet,odoo_notify_pending_actions) - expense flows (
odoo_create_expense_report,odoo_submit_expense_report,odoo_approve_expense)
- attendance/time flows (
- Ported advanced accounting tools:
- bank reconciliation (
odoo_find_unreconciled_bank_lines,odoo_suggest_bank_reconciliation,odoo_reconcile_bank_line) - AR/AP and close checks (
odoo_register_invoice_payment,odoo_get_ar_ap_aging,odoo_run_period_close_checks) - journal and tax utilities (
odoo_create_journal_entry,odoo_post_journal_entry,odoo_get_tax_summary) - bill validation/automation (
odoo_validate_vendor_bill_duplicate,odoo_suggest_expense_account_and_taxes,odoo_create_vendor_bill_from_ocr_validated)
- bank reconciliation (
- Ported full view/report migration tool suite (21 tools), including scan/propose/validate/preview/test/apply/rollback/assist/visualize/batch-assist flows.
- Added new domain services:
services/workforce_service.pyservices/accounting_service.pyservices/view_migration_service.py
- Expanded model allowlist to cover workforce, advanced accounting, and migration-critical models.
- Expanded schema layer (
schemas/business.py,schemas/__init__.py) to include workforce, advanced accounting, and migration request models. - Expanded server wiring (
server.py) to expose the full migrated tool surface. - Updated metadata/versioning to
2.2.0and aligned package/registry descriptors with the new 85-tool surface.
- Updated security test expectation for allowlist denial to use a model that remains intentionally blocked after allowlist expansion.
2.1.0 - 2026-04-11
- Renamed PyPI package from
odoo-mcptoodooclaw-mcp(backward-compatible aliases preserved) - Added
guard_model_accessandaudit_actionto all 9 service-calling tools (calendar, sales, CRM, inventory, HR, invoice) observability/logging.pynow readsLOG_LEVELenvironment variable instead of hardcodingINFO- Fixed
sender_idparameter bugs ininvoice_service.register_payment,sales_service.create_sale_order,sales_service.confirm_sale_order - Removed stale
sender_id=kwargs frominvoice_servicecall_kw calls _clamp_limitnow treatslimit <= 0asDEFAULT_SEARCH_LIMITto prevent accidental full-table dumps
- Guard wiring tests verifying tools reject disallowed models
odooclaw-mcpas primary CLI entry point- Docker image published to
ghcr.io/nicolasramos/odooclaw-mcp - CI workflow with automated PyPI and ghcr.io publishing on tags
2.0.0 - 2026-04-06
- Removed dependency on custom
/odooclaw/call_kw_as_userendpoint - Server now works with ANY standard Odoo 18 instance without custom modules
- All RPC operations execute as the authenticated session user
- Simplified
OdooClient.call_kw()to use only standard Odoo JSON-RPC endpoints - Kept
sender_idin tool payloads as optional audit/context metadata for backward compatibility - Updated security model documentation to reflect standard Odoo authentication
- Changed title from "Conectando Claude con Odoo" to "Conectando LLMs con Odoo"
- Cleaned up residual dependencies (reduced from 50+ to 11 packages):
- langchain-core, langchain-openai, langgraph
- pandas, numpy, numpy-financial
- openpyxl, pypdf, pdf2image, pytesseract
- schwifty, xlrd
- Fixed Dockerfile to install from source instead of non-existent PyPI package
- Fixed mypy overrides to remove langchain/langgraph references
- Removed all AI assistant references from documentation
- Updated documentation to clarify that server uses standard Odoo endpoints only
- Added security best practices section for production deployments
- Emphasized need for dedicated Odoo user with minimal permissions
- Updated README.md to remove custom endpoint references
- Updated DEPLOYMENT.md with standard Odoo endpoint information
- Added security best practices for production use
- Updated all references to use generic "LLMs" instead of specific AI models
If you were using version 1.x:
-
Update your dependencies:
pip install --upgrade odooclaw-mcp==2.0.0
-
Remove custom Odoo modules:
- You no longer need the
mail_bot_odooclawmodule - The server now uses standard Odoo JSON-RPC endpoints
- You no longer need the
-
Update your configuration:
- The same
.envconfiguration works - Create a dedicated Odoo user with appropriate permissions
- The same
-
No code changes needed:
- All MCP tools work exactly the same
- Security is now enforced through Odoo's native ACL instead
Benefits of upgrading:
- Works with any standard Odoo 18 instance
- Fewer dependencies (faster install, smaller footprint)
- Simpler architecture (less to maintain)
- Better documentation
- No custom modules required
1.0.0 - 2026-04-03
- Initial release of Odoo MCP Server
- 6-layer architecture (Core, Security, Observability, Schemas, Tools, Services)
- 38 MCP tools for Odoo operations
- 14 domain services for business logic
- 5 dynamic MCP resources
- Native Odoo security delegation via
/odooclaw/call_kw_as_user - Model allowlist with 18 approved models
- Field denylist for protected fields
- Complete security guards (model access, write fields, unlink, actions)
- Structured logging and performance metrics
- Audit trail for all operations
- Data redaction for sensitive values
- Comprehensive test suite (6 test files + E2E runner)
- Full Odoo 18 compatibility (customer_rank, supplier_rank, payment_state)
- Multi-company support
- Type-safe Pydantic validation
- Documentation (README, Architecture, Deployment, QA Runbook)
- Configuration templates (.env.example, pyproject.toml)
- Development tools (pytest, black, ruff, mypy)
- Native Odoo ACL delegation
- Model allowlist enforcement
- Field-level write protection
- Complete unlink blocking
- Workflow action validation
- Sensitive data redaction
- Audit logging
- Comprehensive README with installation and usage
- Architecture documentation
- Deployment guide
- QA Runbook (515 lines)
- API documentation for all 38 tools
- Configuration examples
- Unit tests for core functionality
- Integration tests for business logic
- E2E test runner with real Odoo instance
- Security tests
- Coverage reporting (>80% target)