diff --git a/mcp-server/src/legal_mcp/court_fetch_service/mavat_client.py b/mcp-server/src/legal_mcp/court_fetch_service/mavat_client.py index 18d2ac9..809ceaa 100644 --- a/mcp-server/src/legal_mcp/court_fetch_service/mavat_client.py +++ b/mcp-server/src/legal_mcp/court_fetch_service/mavat_client.py @@ -122,11 +122,17 @@ def _parse_sv4(sv4: dict, plan_number: str, source_url: str) -> dict: pd = sv4.get("planDetails") if isinstance(sv4, dict) else None pd = pd if isinstance(pd, dict) else {} - display_name = _s(pd.get("E_NAME")) + number = _s(pd.get("NUMB")) or plan_number + # display_name is the clean citation surface form — "תכנית ". mavat's + # E_NAME is a long descriptive title (the plan's substance), which belongs in + # purpose, NOT in the name block-ט cites. Keep E_NAME only as a purpose + # fallback so its content isn't lost when GOALS is empty. + e_name = _s(pd.get("E_NAME")) + display_name = f"תכנית {number}" if number else e_name auth = _s(pd.get("AUTH")) subtype = _s(pd.get("ENTITY_SUBTYPE")) plan_type = f"{auth} ({subtype})" if auth and subtype else (auth or subtype) - purpose = _s(pd.get("GOALS")) + purpose = _s(pd.get("GOALS")) or e_name gazette_date, yalkut_number, yalkut_page = "", "", "" rows = sv4.get("rsInternet") if isinstance(sv4, dict) else None @@ -160,7 +166,7 @@ def _parse_sv4(sv4: dict, plan_number: str, source_url: str) -> dict: break return { - "plan_number": _s(pd.get("NUMB")) or plan_number, + "plan_number": number, "display_name": display_name, "plan_type": plan_type, "purpose": purpose,