nextcloud-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LOG_LEVEL | No | Log verbosity | INFO |
| NEXTCLOUD_URL | No | Nextcloud base URL | https://nextcloud.helmforge.me |
| NEXTCLOUD_CONTAINER | No | Docker container name | nextcloud |
| NEXTCLOUD_ADMIN_USER | No | Admin username | admin |
| NEXTCLOUD_VAULT_ADDR | No | Vault address | |
| NEXTCLOUD_VAULT_TOKEN | No | Vault token | |
| NEXTCLOUD_ADMIN_PASSWORD | No | Admin app password | |
| OTEL_EXPORTER_OTLP_ENDPOINT | No | OTLP trace endpoint |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| occ_statusA | Return Nextcloud version, maintenance state, and instance ID. |
| maintenance_modeA | Get or set maintenance mode. Omit enable to query current state; pass True/False to change it. |
| app_manageA | List all apps or enable/disable a specific app by name. |
| config_getB | Read a system or per-app config value. app_name required when scope='app'. |
| config_setA | Write a system or per-app config value. Incorrect values can break Nextcloud — prefer config_get before changing. |
| files_scanB | Scan the filesystem and update the file cache. Provide path (e.g. 'alice/files/Documents') or set all_users=True. |
| files_cleanupA | Remove orphaned file cache entries. |
| db_add_missing_indicesA | Add missing database indices. Safe to run at any time; recommended after upgrades. |
| db_convert_bigintB | Convert filecache IDs to bigint. Required after large installs or major upgrades. |
| background_jobsA | Query background job mode ('mode') or trigger a worker run ('run'). 'run' executes one pass of the background job queue. |
| upgrade_checkB | Check for available Nextcloud core or app updates. |
| security_checkB | Run Nextcloud security advisory check against known CVEs. |
| fulltextsearch_indexA | Rebuild the full-text search index (OpenSearch). Set reset=True to wipe the index before reindexing. |
| external_storage_listA | List configured external storage mounts as JSON. |
| notify_push_selftestB | Run the notify_push self-test to verify push notification connectivity. |
| log_tailA | Return the last N lines of nextcloud.log. |
| system_checkB | Run an overall Nextcloud system health check. |
| user_listB | List Nextcloud users. Optionally filter by search string. |
| user_createC | Create a new Nextcloud user account. |
| user_disableB | Enable or disable a Nextcloud user. disable=True to disable, False to re-enable. |
| group_createC | Create a new Nextcloud user group. |
| group_add_memberC | Add a user to an existing Nextcloud group. |
| app_password_createA | Generate an app password for a user via occ. Returns the password to the caller — never stored or logged by this server. Store it securely (e.g. Vault) immediately after receiving it. |
| dav_listB | List files/directories at a WebDAV path for the given user. Returns raw WebDAV XML (PROPFIND response). |
| dav_getA | Download a file. Returns base64-encoded content. |
| dav_putA | Upload a file. content_b64 must be base64-encoded bytes. Creates the file if it does not exist, overwrites if it does. |
| dav_moveC | Move or rename a file or directory within the user's WebDAV space. |
| dav_deleteC | Delete a file or directory from the user's WebDAV space. |
| share_createA | Create a share via OCS. Authenticated as the admin user. For user/group shares (type 0/1), provide share_with. expire_date format: YYYY-MM-DD. |
| share_listB | List shares. Optionally filter by file path. |
| share_deleteB | Delete a share by its ID. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 31 tools
Each tool targets a distinct resource and action (e.g., user_create, dav_get, share_list), with no overlapping purposes. Even combined tools like app_manage are clearly described and separate from others.
Most tools follow a resource_action pattern with underscores (user_create, config_get), but a few like background_jobs and occ_status are noun-based, causing minor inconsistency. Overall readable and predictable.
With 31 tools, the count exceeds the 25+ threshold and feels heavy for a single server. While Nextcloud is a complex system, many tools could be consolidated or are too granular.
The set covers major areas (users, groups, shares, DAV, apps, config, maintenance) but lacks delete operations for users/groups and update for shares. External storage is only listable, leaving notable gaps.