diff --git a/bedesten_mcp_module/models.py b/bedesten_mcp_module/models.py index cca2b9b..6c6c24d 100644 --- a/bedesten_mcp_module/models.py +++ b/bedesten_mcp_module/models.py @@ -21,7 +21,7 @@ class BedestenSearchData(BaseModel): pageSize: int = Field(..., description="Results per page (1-10)") pageNumber: int = Field(..., description="Page number (1-indexed)") itemTypeList: List[str] = Field(..., description="Court type filter (YARGITAYKARARI/DANISTAYKARAR/YERELHUKUK/ISTINAFHUKUK/KYB)") - phrase: str = Field(..., description="Search phrase (use \"exact phrase\" for precise matching)") + phrase: str = Field(..., description="Search phrase. Supports: 'word', \"exact phrase\", +required, -exclude, AND/OR/NOT operators. No wildcards or regex.") birimAdi: BirimAdiEnum = Field("ALL", description=""" Chamber filter (optional). Abbreviated values with Turkish names: • Yargıtay: H1-H23 (1-23. Hukuk Dairesi), C1-C23 (1-23. Ceza Dairesi), HGK (Hukuk Genel Kurulu), CGK (Ceza Genel Kurulu), BGK (Büyük Genel Kurulu), HBK (Hukuk Daireleri Başkanlar Kurulu), CBK (Ceza Daireleri Başkanlar Kurulu) diff --git a/mcp_server_main.py b/mcp_server_main.py index a2dffa5..204256e 100644 --- a/mcp_server_main.py +++ b/mcp_server_main.py @@ -1773,17 +1773,15 @@ async def get_rekabet_kurumu_document( } ) async def search_bedesten_unified( - phrase: str = Field(..., description="""Search query in Turkish. WORKING EXAMPLES: + phrase: str = Field(..., description="""Search query in Turkish. SUPPORTED OPERATORS: • Simple: "mülkiyet hakkı" (finds both words) • Exact phrase: "\"mülkiyet hakkı\"" (finds exact phrase) • Required term: "+mülkiyet hakkı" (must contain mülkiyet) • Exclude term: "mülkiyet -kira" (contains mülkiyet but not kira) -• Wildcard: "mülk*" (mülkiyet, mülk, etc.) -• Fuzzy: "mülkiyet~" (similar spelling variations) -• Multiple terms: "mülkiyet AND hak" (both terms required) -• Either term: "mülkiyet OR tapu" (either term acceptable) -• Proximity: "\"mülkiyet hakkı\"~5" (words within 5 positions) -• Regex: "/mülk.*/" (pattern matching) +• Boolean AND: "mülkiyet AND hak" (both terms required) +• Boolean OR: "mülkiyet OR tapu" (either term acceptable) +• Boolean NOT: "mülkiyet NOT satış" (contains mülkiyet but not satış) +NOTE: Wildcards (*,?), regex patterns (/regex/), fuzzy search (~), and proximity search are NOT supported. For best results, use exact phrases with quotes for legal terms."""), court_types: List[BedestenCourtTypeEnum] = Field( default=["YARGITAYKARARI", "DANISTAYKARAR"],