Skip to content

Releases: cloud-py-api/nc_mcp_server

v0.6.0

12 Apr 13:47

Choose a tag to compare

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

07 Apr 14:20

Choose a tag to compare

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_page
  • trash_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 only empty_trash existed)

Improvements

  • Pagination everywhere — all list tools now support limit/offset and return {"data", "pagination"} (#35, #36)
  • Compact JSON — dropped indent=2 from 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

29 Mar 17:38

Choose a tag to compare

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=true is 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-server to nc_mcp_server
  • New config: NEXTCLOUD_MCP_APP_PASSWORD env var (optional, for skipping session cache with app passwords)

Full Changelog: v0.3.0...v0.4.0

v0.3.0

27 Mar 18:27

Choose a tag to compare

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

25 Mar 15:46
5c344e2

Choose a tag to compare

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 returns tuple[bytes, str] (content, content_type) instead of bytes

Stats

  • 36 tools (was 30)
  • 291 tests (was 250)

Full changelog: v0.1.0...v0.2.0

v0.1.0 — Initial Release

24 Mar 14:10
693d546

Choose a tag to compare

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, destructive levels
  • 235 integration tests against real Nextcloud instances
  • Supports Nextcloud 32 and 33
  • Python 3.12, 3.13, 3.14