diff --git a/nextcloud_mcp_server/auth/viz_routes.py b/nextcloud_mcp_server/auth/viz_routes.py index 1599073..56edf48 100644 --- a/nextcloud_mcp_server/auth/viz_routes.py +++ b/nextcloud_mcp_server/auth/viz_routes.py @@ -235,7 +235,7 @@ async def vector_visualization_search(request: Request) -> JSONResponse: must_conditions = [ FieldCondition( key="doc_id", - match=MatchValue(value=str(result.id)), + match=MatchValue(value=result.id), ), FieldCondition( key="user_id", @@ -524,6 +524,8 @@ async def chunk_context_endpoint(request: Request) -> JSONResponse: start = int(start_str) end = int(end_str) + # Convert doc_id to int (all document types use int IDs) + doc_id_int = int(doc_id) # Get authenticated Nextcloud client from nextcloud_mcp_server.auth.userinfo_routes import ( @@ -536,7 +538,7 @@ async def chunk_context_endpoint(request: Request) -> JSONResponse: chunk_context = await get_chunk_with_context( nc_client=nc_client, user_id=request.user.display_name, # User ID from auth - doc_id=doc_id, + doc_id=doc_id_int, doc_type=doc_type, chunk_start=start, chunk_end=end, diff --git a/nextcloud_mcp_server/models/semantic.py b/nextcloud_mcp_server/models/semantic.py index e6cea54..2a1941b 100644 --- a/nextcloud_mcp_server/models/semantic.py +++ b/nextcloud_mcp_server/models/semantic.py @@ -10,7 +10,7 @@ from .base import BaseResponse class SemanticSearchResult(BaseModel): """Model for semantic search results with additional metadata.""" - id: int = Field(description="Document ID") + id: int = Field(description="Document ID (int for all document types)") doc_type: str = Field( description="Document type (note, calendar_event, deck_card, etc.)" ) diff --git a/nextcloud_mcp_server/search/algorithms.py b/nextcloud_mcp_server/search/algorithms.py index 416d0d7..932a92b 100644 --- a/nextcloud_mcp_server/search/algorithms.py +++ b/nextcloud_mcp_server/search/algorithms.py @@ -123,7 +123,7 @@ class SearchResult: """A single search result with metadata and score. Attributes: - id: Document ID + id: Document ID (int for all document types) doc_type: Document type (note, file, calendar, contact, etc.) title: Document title excerpt: Content excerpt showing match context