Provides comprehensive CRUD operations across Nextcloud apps including Notes, Calendar, Contacts, Files (WebDAV), Deck, Cookbook, Tables, and sharing functionality. Features 90+ tools for managing notes, events, todos, contacts, files, boards, recipes, and more, with optional experimental semantic search capabilities.
Nextcloud MCP Server
A production-ready MCP server that connects AI assistants to your Nextcloud instance.
Enable Large Language Models like Claude, GPT, and Gemini to interact with your Nextcloud data through a secure API. Create notes, manage calendars, organize contacts, work with files, and more - all through natural language conversations.
This is a dedicated standalone MCP server designed for external MCP clients like Claude Code and IDEs. It runs independently of Nextcloud (Docker, VM, Kubernetes, or local) and provides deep CRUD operations across Nextcloud apps.
Looking for AI features inside Nextcloud? Nextcloud also provides Context Agent, which powers the Assistant app and runs as an ExApp inside Nextcloud. See docs/comparison-context-agent.md for a detailed comparison of use cases.
Quick Start
The fastest way to get started is via Smithery - no Docker or self-hosting required:
Visit the Smithery marketplace page
Click "Deploy" and configure:
Nextcloud URL: Your Nextcloud instance (e.g.,
https://cloud.example.com)Username: Your Nextcloud username
App Password: Generate one in Nextcloud → Settings → Security → Devices & sessions
Docker (Self-Hosted)
For full features including semantic search, run with Docker:
Next Steps:
Connect your MCP client (Claude Desktop, IDEs,
mcp dev, etc.)See docs/installation.md for other deployment options (local, Kubernetes)
Key Features
90+ MCP Tools - Comprehensive API coverage across 8 Nextcloud apps
MCP Resources - Structured data URIs for browsing Nextcloud data
Semantic Search (Experimental) - Optional vector-powered search for Notes, Files, News items, and Deck cards (requires Qdrant + Ollama)
Document Processing - OCR and text extraction from PDFs, DOCX, images with progress notifications
Flexible Deployment - Docker, Kubernetes (Helm), VM, or local installation
Production-Ready Auth - Basic Auth with app passwords (recommended) or OAuth2/OIDC (experimental)
Multiple Transports - SSE, HTTP, and streamable-http support
Supported Apps
App | Tools | Capabilities |
Notes | 7 | Full CRUD, keyword search, semantic search |
Calendar | 20+ | Events, todos (tasks), recurring events, attendees, availability |
Contacts | 8 | Full CardDAV support, address books |
Files (WebDAV) | 12 | Filesystem access, OCR/document processing |
Deck | 15 | Boards, stacks, cards, labels, assignments |
Cookbook | 13 | Recipe management, URL import (schema.org) |
Tables | 5 | Row operations on Nextcloud Tables |
Sharing | 10+ | Create and manage shares |
Semantic Search | 2+ | Vector search for Notes, Files, News items, and Deck cards (experimental, opt-in, requires infrastructure) |
Want to see another Nextcloud app supported? Open an issue or contribute a pull request!
Authentication
OAuth2/OIDC is experimental and requires a manual patch to the user_oidc app:
Required patch: Bearer token support (issue #1221)
Impact: Without the patch, most app-specific APIs fail with 401 errors
Recommendation: Use Basic Auth for production until upstream patches are merged
See docs/oauth-upstream-status.md for patch status and workarounds.
Recommended: Basic Auth with app-specific passwords provides secure, production-ready authentication. See docs/authentication.md for setup details and OAuth configuration.
Authentication Modes
The server supports three authentication modes:
Single-User Mode (BasicAuth):
One set of credentials shared by all MCP clients
Simple setup: username + app password in environment variables
All clients access Nextcloud as the same user
Best for: Personal use, development, single-user deployments
Multi-User Mode (OAuth):
Each MCP client authenticates separately with their own Nextcloud account
Per-user scopes and permissions (clients only see tools they're authorized for)
More secure: tokens expire, credentials never shared with server
Best for: Teams, multi-user deployments, production environments with multiple users
Hybrid Mode (Multi-User BasicAuth + OAuth):
MCP clients use BasicAuth (simple, stateless)
Admin operations use OAuth (webhooks, background sync)
Best for: Nextcloud deployments with admin-managed webhooks and semantic search
Requires:
ENABLE_MULTI_USER_BASIC_AUTH=true+ENABLE_OFFLINE_ACCESS=true
See docs/authentication.md for detailed setup instructions.
Semantic Search
The server provides an experimental RAG pipeline to enable Semantic Search that enables MCP clients to find information in Nextcloud based on meaning rather than just keywords. Instead of matching "machine learning" only when those exact words appear, it understands that "neural networks," "AI models," and "deep learning" are semantically related concepts.
Example:
Keyword search: Query "car" only finds notes containing "car"
Semantic search: Query "car" also finds notes about "automobile," "vehicle," "sedan," "transportation"
This enables natural language queries and helps discover related content across your Nextcloud notes.
Semantic Search is experimental and opt-in:
Disabled by default (
ENABLE_SEMANTIC_SEARCH=false)Currently supports Notes app only (multi-app support planned)
Requires additional infrastructure: vector database + embedding service
Answer generation (
nc_semantic_search_answer) requires MCP client sampling support
See docs/semantic-search-architecture.md for architecture details and docs/configuration.md for setup instructions.
Documentation
Getting Started
Installation - Docker, Kubernetes, local, or VM deployment
Configuration - Environment variables and advanced options
Authentication - Basic Auth vs OAuth2/OIDC setup
Running the Server - Start, manage, and troubleshoot
Features
App Documentation - Notes, Calendar, Contacts, WebDAV, Deck, Cookbook, Tables
Document Processing - OCR and text extraction setup
Semantic Search Architecture - Experimental vector search (Notes, Files, News items, Deck cards; opt-in)
Vector Sync UI Guide - Browser interface for semantic search visualization and testing
Advanced Topics
OAuth Architecture - How OAuth works (experimental)
OAuth Quick Start - 5-minute OAuth setup
OAuth Setup Guide - Detailed OAuth configuration
Troubleshooting - Common issues and solutions
Comparison with Context Agent - When to use each approach
Examples
Create a Note
Import Recipes
Schedule Meetings
Manage Files
Semantic Search (Experimental, Opt-in)
Note: For AI-generated answers with citations, use nc_semantic_search_answer (requires MCP client with sampling support).
Contributing
Contributions are welcome!
Report bugs or request features: GitHub Issues
Submit improvements: Pull Requests
Development guidelines: CLAUDE.md
Security
This project takes security seriously:
Production-ready Basic Auth with app-specific passwords
OAuth2/OIDC support (experimental, requires upstream patches)
Per-user access tokens
No credential storage in OAuth mode
Regular security assessments
Found a security issue? Please report it privately to the maintainers.
License
This project is licensed under the AGPL-3.0 License. See LICENSE for details.