You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Free-text query parameter on search_records — the server builds an OR ilike domain over the model's searchable text fields (identifier columns like name, ref, email first; capped at 5) and ANDs it with any explicit domain. Falls back to name when field metadata is unavailable. The response reports query_fields_used. Agents no longer hand-craft fuzzy-match domains.
Interactive setup wizard — uvx odoo-mcp --setup prompts for connection details, tests them against the live Odoo, writes an owner-only (0600) config file the server auto-discovers (default ~/.config/odoo/config.json), and prints ready-to-paste client snippets for Claude Code, Cursor, and Claude Desktop.
docs/comparison.md — an honest per-project feature comparison of Odoo MCP bridges (setup, write safety, transports, multi-instance, diagnostics, testing), including when another bridge fits better.
Changed
Internal refactor: extracted pure helpers from server.py (3,053 → ~2,550 lines) into tool_helpers.py, schema_cache.py, access_helpers.py, and write_policy.py. All names remain importable from odoo_mcp.server (guarded by a parity test); no behavior change.
Compatibility
Tool count stays 27; query is optional and additive. No breaking changes.
Verified: 497 tests, real Odoo 19 Docker smoke (XML-RPC + JSON-2, restricted user) before release.