by cbcoutinho
Enables Large Language Models to perform CRUD operations and browse data across multiple Nextcloud apps such as Notes, Calendar, Files (WebDAV), Contacts, Deck, and Tables.
The server acts as a bridge between LLMs (e.g., GPT, Gemini, Claude) and a Nextcloud instance, exposing tools for creating, reading, updating, and deleting resources within supported Nextcloud apps.
.env file (or any env file) with NEXTCLOUD_HOST, NEXTCLOUD_USERNAME, and NEXTCLOUD_PASSWORD.uv sync and start the server:
uv run python -m nextcloud_mcp_server.app --host 0.0.0.0 --port 8080
Use --enable-app to limit which Nextcloud apps are exposed.ghcr.io/cbcoutinho/nextcloud-mcp-server and launch:
docker run -p 8000:8000 --env-file .env ghcr.io/cbcoutinho/nextcloud-mcp-server:latest \
--transport streamable-http
uv run mcp dev (MCP Inspector) to explore tools and resources via a browser.streamable-http (recommended) and legacy SSE.--enable-app to reduce footprint or restrict functionality.nc://capabilities, notes://settings) for LLM discovery.Q: Which transport should I use?
A: streamable-http is the recommended modern transport. SSE is kept only for backward compatibility.
Q: Can I run the server without Docker?
A: Yes. Clone the repo, install Python 3.11+, run uv sync, and start the server with the CLI.
Q: How do I limit the exposed apps?
A: Use the --enable-app flag multiple times (e.g., --enable-app notes --enable-app calendar).
Q: Do I need a special Nextcloud account? A: Use any account that has an App Password generated in the Nextcloud security settings. Dedicated app passwords improve security.
Q: Is there support for Tasks? A: Tasks integration is not started yet (tracked in issue #73).
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.
[!NOTE] 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.
The fastest way to get started is via Smithery - no Docker or self-hosting required:
https://cloud.example.com)[!NOTE] Smithery runs in stateless mode without semantic search. For full features, use Docker or see ADR-016.
For full features including semantic search, run with Docker:
# 1. Create a minimal configuration
cat > .env << EOF
NEXTCLOUD_HOST=https://your.nextcloud.instance.com
NEXTCLOUD_USERNAME=your_username
NEXTCLOUD_PASSWORD=your_app_password
EOF
# 2. Start the server
docker run -p 127.0.0.1:8000:8000 --env-file .env --rm \
ghcr.io/cbcoutinho/nextcloud-mcp-server:latest
# 3. Test the connection
curl http://127.0.0.1:8000/health/ready
# 4. Connect to the endpoint
http://127.0.0.1:8000/sse
# Or with --transport streamable-http
http://127.0.0.1:8000/mcp
Next Steps:
mcp dev, etc.)| 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 (experimental, opt-in, requires infrastructure) |
Want to see another Nextcloud app supported? Open an issue or contribute a pull request!
[!IMPORTANT] OAuth2/OIDC is experimental and requires a manual patch to the
user_oidcapp:
- 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.
The server supports two authentication modes:
Single-User Mode (BasicAuth):
Multi-User Mode (OAuth):
See docs/authentication.md for detailed setup instructions.
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:
This enables natural language queries and helps discover related content across your Nextcloud notes.
[!NOTE] Semantic Search is experimental and opt-in:
- Disabled by default (
VECTOR_SYNC_ENABLED=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 supportSee docs/semantic-search-architecture.md for architecture details and docs/configuration.md for setup instructions.
AI: "Create a note called 'Meeting Notes' with today's agenda"
→ Uses nc_notes_create_note tool
AI: "Import the recipe from https://www.example.com/recipe/chocolate-cake"
→ Uses nc_cookbook_import_recipe tool with schema.org metadata extraction
AI: "Schedule a team meeting for next Tuesday at 2pm"
→ Uses nc_calendar_create_event tool
AI: "Create a folder called 'Project X' and move all PDFs there"
→ Uses nc_webdav_create_directory and nc_webdav_move tools
AI: "Find notes related to machine learning concepts"
→ Uses nc_semantic_search to find semantically similar notes (requires Qdrant + Ollama setup)
Note: For AI-generated answers with citations, use nc_semantic_search_answer (requires MCP client with sampling support).
Contributions are welcome!
This project takes security seriously:
Found a security issue? Please report it privately to the maintainers.
This project is licensed under the AGPL-3.0 License. See LICENSE for details.
Please log in to share your review and rating for this MCP.
Explore related MCPs that share similar capabilities and solve comparable challenges
by activepieces
A self‑hosted, open‑source platform that provides a no‑code builder for creating, versioning, and running AI‑driven automation workflows. Pieces are TypeScript‑based plugins that become MCP servers, allowing direct consumption by large language models.
by Skyvern-AI
Automates browser‑based workflows by leveraging large language models and computer‑vision techniques, turning natural‑language prompts into fully functional web interactions without writing custom scripts.
by ahujasid
Enables Claude AI to control Blender for prompt‑assisted 3D modeling, scene creation, and manipulation via a socket‑based Model Context Protocol server.
by PipedreamHQ
Connect APIs quickly with a free, hosted integration platform that enables event‑driven automations across 1,000+ services and supports custom code in Node.js, Python, Go, or Bash.
by elie222
Organizes email inbox, drafts replies in the user's tone, tracks follow‑ups, and provides analytics to achieve inbox zero quickly.
by grab
Enables Cursor AI to read and programmatically modify Figma designs through a Model Context Protocol integration.
by CursorTouch
Enables AI agents to control the Windows operating system, performing file navigation, application launching, UI interaction, QA testing, and other automation tasks through a lightweight server.
by ahujasid
Enables Claude AI to control Ableton Live in real time, allowing AI‑driven creation, editing, and playback of tracks, clips, instruments, and effects through a socket‑based server.
by leonardsellem
Provides tools and resources to enable AI assistants to manage and execute n8n workflows via natural language commands.