Releases: cloud-py-api/nc_mcp_server
v0.6.0
What's New
Tasks tools (7 new tools)
CalDAV-based task management: list_task_lists, get_tasks, get_task, create_task, update_task, complete_task, delete_task. Full VTODO lifecycle with ETag-based optimistic locking.
Unified Search tools (2 new tools)
Cross-app search via Nextcloud's Unified Search API: list_search_providers, unified_search. Searches across 18+ providers (files, calendar, contacts, talk, mail, notes, etc.) with cursor-based pagination and provider-specific filters.
Bug fixes
- Fix WebDAV multi-status propstat handling — iterate all propstat elements and pick the one with HTTP 200 status, instead of blindly taking the first (which could be a 404 for missing properties). Affects 7 modules.
- Use exact UID matching (
match-type="equals") in CalDAV calendar-query filters for calendar and tasks. - Preserve date-only semantics for VTODO due/start fields.
Stats
- 97 tools, 687 tests
v0.5.0
New Tools (26 new, 88 total)
Calendar (6 tools) — CalDAV
list_calendars,get_events,get_event,create_event,update_event,delete_event- Date range filtering, recurrence rules, categories, ETag concurrency control
Contacts (6 tools) — CardDAV
list_addressbooks,get_contacts,get_contact,create_contact,update_contact,delete_contact- Multi-value email/phone, structured names, vCard 3.0, ETag concurrency control
Collectives (11 tools) — REST
list_collectives,get_collective_pages,get_collective_page,create_collective,create_collective_pagetrash_collective,delete_collective,trash_collective_page,delete_collective_page,restore_collective,restore_collective_page
App Management (4 tools) — OCS
list_apps,get_app_info,enable_app,disable_app
Trashbin
delete_trash_item— permanently delete a single item from trash (previously onlyempty_trashexisted)
Improvements
- Pagination everywhere — all list tools now support
limit/offsetand return{"data", "pagination"}(#35, #36) - Compact JSON — dropped
indent=2from responses, saving ~30% tokens per tool call (#34) - User-permission tests — non-admin error handling validation across all tools (#32)
- README rewrite — full tool reference for all 88 tools across 18 Nextcloud apps (#39)
Full Changelog: v0.4.0...v0.5.0
v0.4.0
What's Changed
Performance
- Session cookie caching — avoids bcrypt password hashing on every request (~6x faster for regular passwords) (#27)
- App password support — skip session caching when
NEXTCLOUD_MCP_APP_PASSWORD=trueis set, since app passwords are already fast (#29) - Automatic session recovery — transparently re-authenticates on session expiry (401)
CI
- Integration tests now use app passwords for speed, session cache tests run in parallel separate job
- Added dependabot for weekly grouped CI action updates
- Loglevel reduced to WARNING in CI to reduce disk I/O
Other
- Repository renamed from
nc-mcp-servertonc_mcp_server - New config:
NEXTCLOUD_MCP_APP_PASSWORDenv var (optional, for skipping session cache with app passwords)
Full Changelog: v0.3.0...v0.4.0
v0.3.0
New tools (19)
- System Tags: list_tags, get_file_tags, create_tag, assign_tag, unassign_tag, delete_tag
- Files Sharing: list_shares, get_share, create_share, update_share, delete_share
- Announcement Center: list_announcements, create_announcement, delete_announcement
- Files Trashbin: list_trash, restore_trash_item, empty_trash
- Files Versions: list_versions, restore_version
Improvements
- OCS error message extraction — surface Nextcloud error messages instead of generic HTTP codes
- Automatic retry on HTTP 429/503 with exponential backoff
- URL-encoding for trashbin DAV paths (handles special characters in filenames)
- Annotation corrections — update_share and restore_trash_item now use correct MCP ToolAnnotations
Stats
- 55 tools (was 36)
- 462 tests (was 291)
Full changelog: v0.2.0...v0.3.0
v0.2.0
New tools (7)
- search_files — WebDAV SEARCH with name/mimetype/path filters and pagination
- get_user_status / set_user_status / clear_user_status — user presence status
- create_user / delete_user — user management (admin)
- copy_file — WebDAV COPY
Improvements
- MCP ToolAnnotations on all 36 tools (
readOnlyHint,destructiveHint,idempotentHint) - get_file returns native ImageContent for PNG, JPEG, GIF, WebP, BMP, SVG — Claude can see images directly
- Structured JSON pagination for all paginated tools
- Full README rewrite with all 36 tools documented
- Claude Code usage example
- 21 new ruff lint rule sets
Breaking changes
NextcloudClient.dav_get()now returnstuple[bytes, str](content, content_type) instead ofbytes
Stats
- 36 tools (was 30)
- 291 tests (was 250)
Full changelog: v0.1.0...v0.2.0
v0.1.0 — Initial Release
First release of nc-mcp-server
An MCP server that exposes Nextcloud APIs as tools for AI assistants.
Tools (29 total)
Files — list_directory, get_file, upload_file, create_directory, delete_file, move_file
Users — get_current_user, list_users, get_user
Notifications — list_notifications, dismiss_notification, dismiss_all_notifications
Talk — list_conversations, get_conversation, get_messages, get_participants, send_message, create_conversation, delete_message, leave_conversation
Talk Polls — get_poll, create_poll, vote_poll, close_poll
Activity — get_activity
Comments — list_comments, add_comment, edit_comment, delete_comment
Features
- Permission model:
read,write,destructivelevels - 235 integration tests against real Nextcloud instances
- Supports Nextcloud 32 and 33
- Python 3.12, 3.13, 3.14