8d6639bc4c
Adds a new MCP tool `search_decisive_appraisals` that queries the Ministry of Justice public registry (~30K published decisions) by block (גוש), plot (חלקה), appraiser name, committee, decision/publicity date ranges, or free text — and returns metadata + direct PDF URLs. Implementation notes: - New `nadlan_mcp/govil/` package, parallel to `nadlan_mcp/govmap/`, for gov.il APIs that are not Govmap. Pydantic v2 models match the upstream PascalCase response via aliases. - Upstream sits behind an F5 WAF that rejects standard `requests`; uses `curl_cffi` with Chrome 120 impersonation to traverse it. - Static `x-client-id` header (issued to the gov.il SPA, public, visible in any DevTools session) is required by the gateway — without it every call returns a generic 500. - 14 unit tests cover model parsing, body shape, pagination, and the 500-is-fatal contract (configuration error, not retryable). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
22 lines
555 B
Python
22 lines
555 B
Python
"""
|
|
Israeli government open API (gov.il) clients.
|
|
|
|
This package provides clients for gov.il public APIs distinct from Govmap —
|
|
notably the Ministry of Justice "Decisive Appraiser" search service that
|
|
exposes published decisions of certified property appraisers.
|
|
"""
|
|
|
|
from .client import DecisiveAppraiserClient
|
|
from .models import (
|
|
AppraisalDecision,
|
|
AppraisalDocument,
|
|
DecisiveAppraiserSearchResponse,
|
|
)
|
|
|
|
__all__ = [
|
|
"DecisiveAppraiserClient",
|
|
"AppraisalDecision",
|
|
"AppraisalDocument",
|
|
"DecisiveAppraiserSearchResponse",
|
|
]
|