diff --git a/server/odoo_mcp.py b/server/odoo_mcp.py index 28dc4c6..71cbc31 100644 --- a/server/odoo_mcp.py +++ b/server/odoo_mcp.py @@ -389,8 +389,12 @@ def list_task_stages(project_id: int = None) -> list: @mcp.tool() def search_helpdesk_tickets(query: str = "", stage: str = "", team: str = "", + created_after: str = "", created_before: str = "", limit: int = 20) -> list: - """Search helpdesk tickets by name, stage, or team.""" + """Search helpdesk tickets by name, stage, or team. + created_after and created_before accept datetime strings in 'YYYY-MM-DD' or + 'YYYY-MM-DD HH:MM:SS' format to filter by creation date. + Example: created_after='2026-03-29' returns tickets created in the last 24 hours.""" domain = [] if query: domain.append(["name", "ilike", query]) @@ -398,9 +402,13 @@ def search_helpdesk_tickets(query: str = "", stage: str = "", team: str = "", domain.append(["stage_id.name", "ilike", stage]) if team: domain.append(["team_id.name", "ilike", team]) + if created_after: + domain.append(["create_date", ">=", created_after]) + if created_before: + domain.append(["create_date", "<=", created_before]) return _search_read("helpdesk.ticket", domain, ["id", "name", "partner_id", "stage_id", "team_id", - "user_id", "priority", "create_date", "date_deadline"], + "user_id", "priority", "create_date"], limit=limit, order="create_date desc") @mcp.tool() @@ -408,7 +416,7 @@ def get_helpdesk_ticket(ticket_id: int) -> dict: """Get full details of a helpdesk ticket by ID.""" r = _read("helpdesk.ticket", [ticket_id], ["id", "name", "partner_id", "stage_id", "team_id", "user_id", - "priority", "description", "create_date", "date_deadline", + "priority", "description", "create_date", "date_last_stage_update", "kanban_state", "tag_ids"]) return r[0] if r else {}