home / mcp / nextcloud mcp server
Nextcloud MCP Server: Connect AI assistants to your Nextcloud instance with 34 comprehensive tools for Notes, Calendar, Contacts, Tables, and WebDAV file operations. Full TypeScript implementation with Smithery deployment support.
Configuration
View docs{
"mcpServers": {
"hithereiamaliff-mcp-nextcloud": {
"url": "https://mcp.techmavie.digital/nextcloud/mcp",
"headers": {
"NEXTCLOUD_HOST": "https://your.nextcloud.instance.com",
"NEXTCLOUD_PASSWORD": "your_app_password",
"NEXTCLOUD_USERNAME": "your_username"
}
}
}
}You run a Nextcloud MCP (Model Context Protocol) server that lets large language models interact with your Nextcloud data through Notes, Calendar, Tables, WebDAV file operations, and Contacts. It enables automated workflows and conversational actions across your cloud data, powered by a modular set of tools and a dedicated MCP endpoint for secure, scalable access.
You connect an MCP client to the Nextcloud MCP server endpoint to perform tasks across your Nextcloud apps. Use the hosted endpoint for quick access or run a self-hosted instance on your own VPS for full control. The server exposes a set of tools that your MCP client can invoke to manage notes, calendar events, contacts, tables, and WebDAV files.
Prerequisites: Node.js 18+ and access to a Nextcloud instance. You will typically use npm or Docker to run the MCP server.
# Install globally (recommended for quick access)
npm install -g mcp-nextcloud
# Or install locally in your project
npm install mcp-nextcloudRun the MCP server directly after installation. If installed globally, you can start it with the following command. If installed locally, you can run it via npx or npm scripts.
# If installed globally
mcp-nextcloud
# If installed locally
npx mcp-nextcloud
# Or via npm script
npm exec mcp-nextcloudEnvironment setup: Create a .env file with your Nextcloud credentials. Use an App Password rather than your main login password for security.
NEXTCLOUD_HOST=https://your.nextcloud.instance.com
NEXTCLOUD_USERNAME=your_nextcloud_username
NEXTCLOUD_PASSWORD=your_nextcloud_app_passwordIf you prefer to run a self-hosted VPS instance, you can deploy using Docker or run the server directly after building.
# Docker-based VPS deployment (recommended for VPS)
docker compose up -d --build
# Or build and start directly (local development)
npm run build
npm run start:httpClient configuration example (in your MCP client) points to the hosted endpoint or your self-hosted URL. You will configure the server with your Nextcloud host and credentials in your MCP client settings.
Security: Use a dedicated Nextcloud App Password for authentication. Do not reuse your main login password. Keep credentials in a secure environment and avoid embedding them in client configurations. You can supply credentials via environment variables (for local deployments) or via secure configuration interfaces when deploying withSmithery.
Environment variables you may use in a local setup include NEXTCLOUD_HOST, NEXTCLOUD_USERNAME, and NEXTCLOUD_PASSWORD. If you run through the hosted endpoint, credentials can be provided via the MCP client configuration or through the URL query parameters in the endpoint URL.
Common issues and fixes include verifying that your Nextcloud apps (Notes, Calendar, Contacts, Tables) are installed and enabled, ensuring the app password has the necessary permissions, and confirming the Nextcloud host URL is correct and reachable.
If you encounter timeouts or performance issues, consider using a local deployment with a smaller scope first, then scale up. For root directory searches within WebDAV, enable quick search and limit the scope of your queries to improve responsiveness.
The solution supports both hosted usage via a dedicated MCP URL and self-hosted VPS deployment. You can test locally with Smithery for cloud testing and deploy to Smithery cloud if you need cloud-hosted execution. The hosted endpoint is Share-ready and requires no installation on your part for quick experimentation, while the VPS path gives you full control over the runtime and environment.
npm install -g mcp-nextcloudnpm install mcp-nextcloud.env file with NEXTCLOUD_HOST, NEXTCLOUD_USERNAME, NEXTCLOUD_PASSWORDmcp-nextcloud (global) or npx mcp-nextcloud (local)docker compose up -d --build or build and start locally with npm run build and npm run start:httpThe server exposes a comprehensive set of tools across five core areas to automate Nextcloud interactions. You can leverage these tools from your MCP client to create, read, update, delete, and search within Notes, manage Calendar events, work with Contacts, manipulate Tables, and perform advanced WebDAV file operations.
Create a new note with a title, content, and category
Update an existing note by ID with optional title, content, or category
Append content to an existing note with a clear separator
Search notes by title or content with result filtering
Delete a note by ID
List all calendars available to the user
Create a calendar event with summary, description, dates, and location
List events from a calendar with optional date filtering
Get detailed information about a specific event
Update any aspect of an existing event
Delete a calendar event
List all available addressbooks for the user
Create a new addressbook with display name and description
Delete an addressbook by ID
List all contacts in a specific addressbook
Create a new contact with full name, emails, phones, addresses, and organizations
Delete a contact from an addressbook
List all tables available to the user
Get the schema/structure of a specific table including columns
Read all rows from a table
Insert a new row into a table with key-value data
Update an existing row in a table
Delete a row from a table
Unified search across filenames, content, and metadata for WebDAV files
List files and directories in a Nextcloud path
Read file content from Nextcloud
Create or update files in Nextcloud with content
Create new directories in Nextcloud
Delete files or directories from Nextcloud
Verify server connectivity and list all available tools