Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 6c4f071d2b |
@@ -1,3 +1,9 @@
|
||||
## v0.8.1 (2025-08-30)
|
||||
|
||||
### Fix
|
||||
|
||||
- **model**: Serialize timestamps in RFC3339 format
|
||||
|
||||
## v0.8.0 (2025-08-30)
|
||||
|
||||
### Feat
|
||||
|
||||
@@ -48,16 +48,13 @@ class NotesSettings(BaseModel):
|
||||
class CreateNoteResponse(IdResponse):
|
||||
"""Response model for note creation."""
|
||||
|
||||
title: str = Field(description="The created note title")
|
||||
category: str = Field(description="The created note category")
|
||||
note: Note = Field(description="The created note")
|
||||
|
||||
|
||||
class UpdateNoteResponse(BaseResponse):
|
||||
"""Response model for note updates."""
|
||||
|
||||
id: int = Field(description="The updated note ID")
|
||||
title: str = Field(description="The updated note title")
|
||||
category: str = Field(description="The updated note category")
|
||||
note: Note = Field(description="The updated note")
|
||||
|
||||
|
||||
class DeleteNoteResponse(StatusResponse):
|
||||
@@ -69,9 +66,7 @@ class DeleteNoteResponse(StatusResponse):
|
||||
class AppendContentResponse(BaseResponse):
|
||||
"""Response model for appending content to a 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")
|
||||
note: Note = Field(description="The updated note after appending content")
|
||||
|
||||
|
||||
class SearchNotesResponse(BaseResponse):
|
||||
|
||||
@@ -90,9 +90,7 @@ def configure_notes_tools(mcp: FastMCP):
|
||||
category=category,
|
||||
)
|
||||
note = Note(**note_data)
|
||||
return CreateNoteResponse(
|
||||
id=note.id, title=note.title, category=note.category
|
||||
)
|
||||
return CreateNoteResponse(id=note.id, note=note)
|
||||
except HTTPStatusError as e:
|
||||
if e.response.status_code == 403:
|
||||
return ErrorResponse(
|
||||
@@ -130,9 +128,7 @@ def configure_notes_tools(mcp: FastMCP):
|
||||
category=category,
|
||||
)
|
||||
note = Note(**note_data)
|
||||
return UpdateNoteResponse(
|
||||
id=note.id, title=note.title, category=note.category
|
||||
)
|
||||
return UpdateNoteResponse(note=note)
|
||||
except HTTPStatusError as e:
|
||||
if e.response.status_code == 404:
|
||||
return ErrorResponse(error=f"Note {note_id} not found")
|
||||
@@ -155,7 +151,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. The tool automatically adds separators between existing and new content - do not include separators in your content."""
|
||||
"""Append content to an existing note with a clear separator"""
|
||||
logger.info("Appending content to note %s", note_id)
|
||||
client: NextcloudClient = ctx.request_context.lifespan_context.client
|
||||
try:
|
||||
@@ -163,9 +159,7 @@ def configure_notes_tools(mcp: FastMCP):
|
||||
note_id=note_id, content=content
|
||||
)
|
||||
note = Note(**note_data)
|
||||
return AppendContentResponse(
|
||||
id=note.id, title=note.title, category=note.category
|
||||
)
|
||||
return AppendContentResponse(note=note)
|
||||
except HTTPStatusError as e:
|
||||
if e.response.status_code == 404:
|
||||
return ErrorResponse(error=f"Note {note_id} not found")
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
[project]
|
||||
name = "nextcloud-mcp-server"
|
||||
version = "0.8.0"
|
||||
version = "0.8.1"
|
||||
description = ""
|
||||
authors = [
|
||||
{name = "Chris Coutinho",email = "chris@coutinho.io"}
|
||||
|
||||
Reference in New Issue
Block a user