Compare commits

...

1 Commits

Author SHA1 Message Date
Chris Coutinho 949fb7124b fix(notes): Remove note contents from responses to reduce token usage 2025-08-31 11:55:15 +02:00
2 changed files with 18 additions and 7 deletions
+8 -3
View File
@@ -48,13 +48,16 @@ class NotesSettings(BaseModel):
class CreateNoteResponse(IdResponse):
"""Response model for note creation."""
note: Note = Field(description="The created note")
title: str = Field(description="The created note title")
category: str = Field(description="The created note category")
class UpdateNoteResponse(BaseResponse):
"""Response model for note updates."""
note: Note = Field(description="The updated note")
id: int = Field(description="The updated note ID")
title: str = Field(description="The updated note title")
category: str = Field(description="The updated note category")
class DeleteNoteResponse(StatusResponse):
@@ -66,7 +69,9 @@ class DeleteNoteResponse(StatusResponse):
class AppendContentResponse(BaseResponse):
"""Response model for appending content to a note."""
note: Note = Field(description="The updated note after appending content")
id: int = Field(description="The updated note ID")
title: str = Field(description="The updated note title")
category: str = Field(description="The updated note category")
class SearchNotesResponse(BaseResponse):
+10 -4
View File
@@ -90,7 +90,9 @@ def configure_notes_tools(mcp: FastMCP):
category=category,
)
note = Note(**note_data)
return CreateNoteResponse(id=note.id, note=note)
return CreateNoteResponse(
id=note.id, title=note.title, category=note.category
)
except HTTPStatusError as e:
if e.response.status_code == 403:
return ErrorResponse(
@@ -128,7 +130,9 @@ def configure_notes_tools(mcp: FastMCP):
category=category,
)
note = Note(**note_data)
return UpdateNoteResponse(note=note)
return UpdateNoteResponse(
id=note.id, title=note.title, category=note.category
)
except HTTPStatusError as e:
if e.response.status_code == 404:
return ErrorResponse(error=f"Note {note_id} not found")
@@ -151,7 +155,7 @@ def configure_notes_tools(mcp: FastMCP):
async def nc_notes_append_content(
note_id: int, content: str, ctx: Context
) -> AppendContentResponse | ErrorResponse:
"""Append content to an existing note with a clear separator"""
"""Append content to an existing note with a clear separator. The tool automatically adds separators between existing and new content - do not include separators in your content."""
logger.info("Appending content to note %s", note_id)
client: NextcloudClient = ctx.request_context.lifespan_context.client
try:
@@ -159,7 +163,9 @@ def configure_notes_tools(mcp: FastMCP):
note_id=note_id, content=content
)
note = Note(**note_data)
return AppendContentResponse(note=note)
return AppendContentResponse(
id=note.id, title=note.title, category=note.category
)
except HTTPStatusError as e:
if e.response.status_code == 404:
return ErrorResponse(error=f"Note {note_id} not found")