diff --git a/mcp_server_main.py b/mcp_server_main.py index 69c2443..bf11d2c 100644 --- a/mcp_server_main.py +++ b/mcp_server_main.py @@ -1889,18 +1889,6 @@ def get_preview_text(markdown_content: str, skip_chars: int = 100, preview_chars return preview.strip() -# Pydantic models for ChatGPT Deep Research compatibility -class SearchResultItem(BaseModel): - """Individual search result item for Deep Research.""" - id: str = Field(..., description="Document identifier") - title: str = Field(..., description="Document title with metadata") - text: str = Field(..., description="Document preview text") - url: str = Field(..., description="Document URL") - -class SearchResponse(BaseModel): - """Search response wrapper for Deep Research.""" - results: List[SearchResultItem] = Field(..., description="List of search results") - @app.tool( description="DO NOT USE unless you are ChatGPT Deep Research. Search Turkish courts (Turkish keywords only). Supports: +term (must have), -term (exclude), \"exact phrase\", term1 OR term2", annotations={ @@ -1911,7 +1899,7 @@ class SearchResponse(BaseModel): ) async def search( query: str = Field(..., description="Turkish search query") -) -> SearchResponse: +) -> Dict[str, Any]: """ Bedesten API search tool for ChatGPT Deep Research compatibility. @@ -2025,29 +2013,33 @@ async def search( """ logger.info(f"ChatGPT Deep Research search completed. Found {len(results)} results via Bedesten API.") - return SearchResponse(results=[ - SearchResultItem( - id=item["id"], - title=item["title"], - text=item["text"], - url=item["url"] - ) - for item in results - ]) + return { + "results": [ + { + "id": item["id"], + "title": item["title"], + "text": item["text"], + "url": item["url"] + } + for item in results + ] + } except Exception as e: logger.exception("Error in ChatGPT Deep Research search tool") # Return partial results if any were found if results: - return SearchResponse(results=[ - SearchResultItem( - id=item["id"], - title=item["title"], - text=item["text"], - url=item["url"] - ) - for item in results - ]) + return { + "results": [ + { + "id": item["id"], + "title": item["title"], + "text": item["text"], + "url": item["url"] + } + for item in results + ] + } raise @app.tool(