# AIquila — Nextcloud MCP Server (oci · ghcr.io/elgorro/aiquila-mcp:0.4.11)

Nextcloud MCP server — files, calendar, contacts, mail, maps, notes, tasks & 120+ more tools

- Trust score: 36/100 (low)
- Change this week: 0
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-20

## Components

- remote · `{hostname}`: 0/100, [markdown](https://verifymcp.io/servers/elgorro-aiquila-mcp/https-hostname-mcp.md), [page](https://verifymcp.io/servers/elgorro-aiquila-mcp/https-hostname-mcp)
- npm · `aiquila-mcp`: 90/100, [markdown](https://verifymcp.io/servers/elgorro-aiquila-mcp/aiquila-mcp.md), [page](https://verifymcp.io/servers/elgorro-aiquila-mcp/aiquila-mcp)
- oci · `ghcr.io/elgorro/aiquila-mcp:0.4.11`: 36/100 (this document), [markdown](https://verifymcp.io/servers/elgorro-aiquila-mcp/ghcr-io-elgorro-aiquila-mcp-0-4-11.md), [page](https://verifymcp.io/servers/elgorro-aiquila-mcp/ghcr-io-elgorro-aiquila-mcp-0-4-11)

## Channel facts

- Registry: `oci`
- Package: `ghcr.io/elgorro/aiquila-mcp:0.4.11`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-09-20.

- **Supply Chain Security**: 0/100
  - Malware scan not yet available for this package.
  - Known CVEs could not be checked: this artifact ships no SBOM, so there is no dependency list to read. Publishing one would let us assess it.
  - Install-script risk not yet assessed.
  - Dependency health could not be checked: this artifact ships no SBOM, so there is no dependency list to read. Publishing one would let us assess it.
- **Provenance & Transparency**: 19/100
  - Repository check failed: the declared repository URL redirects; it must resolve directly.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 6 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 82/100
  - AI-judged instruction clarity (excellent).
  - Tool/resource definitions use about 20947 tokens (~66/item across 316 items; 316 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 99/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 96% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - All 52 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.
  - An AI judge read all 316 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**Unverified: 2 categories.** Categories scored 0 because we could not verify them: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### How do I install the AIquila — Nextcloud MCP Server server?

AIquila — Nextcloud MCP Server runs locally as a container image, launched with docker run --rm -i ghcr.io/elgorro/aiquila-mcp:0.4.11. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add elgorro-aiquila-mcp -- docker run --rm -i ghcr.io/elgorro/aiquila-mcp:0.4.11
```

### Cursor

```json
{
  "mcpServers": {
    "elgorro-aiquila-mcp": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/elgorro/aiquila-mcp:0.4.11"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "elgorro-aiquila-mcp": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/elgorro/aiquila-mcp:0.4.11"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add elgorro-aiquila-mcp -- docker run --rm -i ghcr.io/elgorro/aiquila-mcp:0.4.11
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "elgorro-aiquila-mcp": {
      "type": "local",
      "command": [
        "docker",
        "run",
        "--rm",
        "-i",
        "ghcr.io/elgorro/aiquila-mcp:0.4.11"
      ],
      "enabled": true
    }
  }
}
```

### Hermes

```yaml
mcp_servers:
  elgorro-aiquila-mcp:
    command: "docker"
    args: ["run", "--rm", "-i", "ghcr.io/elgorro/aiquila-mcp:0.4.11"]
```

### Netclaw

```json
{
  "McpServers": {
    "elgorro-aiquila-mcp": {
      "Transport": "stdio",
      "Command": "docker",
      "Arguments": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/elgorro/aiquila-mcp:0.4.11"
      ]
    }
  }
}
```

### Other

```json
{
  "mcpServers": {
    "elgorro-aiquila-mcp": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/elgorro/aiquila-mcp:0.4.11"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-09-13 (score 36)

First indexed and scored.

## MCP tools (316)

### `list_files` (~34 tokens)

List Files

List files and folders in a Nextcloud directory

Input parameters:

- `path` (string): The directory path to list (default: '/')

### `read_file` (~31 tokens)

Read File

Read the contents of a file from Nextcloud

Input parameters:

- `path` (string, required): The file path in Nextcloud

### `write_file` (~61 tokens)

Write File

Create or update a file in Nextcloud. File size is limited (default 1 GB, configurable via MCP_MAX_FILE_SIZE).

Input parameters:

- `content` (string, required): The content to write to the file
- `path` (string, required): The file path in Nextcloud

### `create_folder` (~30 tokens)

Create Folder

Create a folder in Nextcloud

Input parameters:

- `path` (string, required): The folder path to create in Nextcloud

### `delete` (~36 tokens)

Delete File or Folder

Delete a file or folder from Nextcloud

Input parameters:

- `path` (string, required): The path in Nextcloud (e.g., '/Documents/file.txt')

### `move_file` (~61 tokens)

Move File

Move or rename a file or folder in Nextcloud

Input parameters:

- `destination` (string, required): The destination path
- `overwrite` (boolean): Whether to overwrite if the destination already exists
- `source` (string, required): The source path of the file or folder to move

### `copy_file` (~62 tokens)

Copy File

Copy a file or folder in Nextcloud

Input parameters:

- `destination` (string, required): The destination path for the copy
- `overwrite` (boolean): Whether to overwrite if the destination already exists
- `source` (string, required): The source path of the file or folder to copy

### `get_file_info` (~54 tokens)

Get File Info

Get detailed file metadata from Nextcloud (name, size, mime type, modified date, permissions, etc.)

Input parameters:

- `path` (string, required): The file or folder path in Nextcloud (e.g., '/Documents/report.pdf')

### `search_files` (~69 tokens)

Search Files

Search for files in Nextcloud by name pattern and/or mime type

Input parameters:

- `mime` (string): Filter by mime type prefix (e.g., 'image/', 'text/plain')
- `path` (string): Base directory to search in
- `query` (string, required): Search query (file name pattern)

### `get_file_content` (~62 tokens)

Get File Content

Read file content from Nextcloud with mime type info. Returns text for text files, base64 for binary files (images, PDFs, etc.). Images are returned as MCP image content for Claude vision.

Input parameters:

- `path` (string, required): The file path in Nextcloud

### `analyze_image` (~147 tokens)

Analyze Image

Analyze one or more images stored in Nextcloud using Claude vision. Ask questions about image content, extract text (OCR), describe visuals, compare images, or analyse documents. Supports up to 20 images for multi-image comparison.

Input parameters:

- `path` (string): Single image file path in Nextcloud (e.g., '/Photos/receipt.jpg'). Use 'paths' for multiple images.
- `paths` (array): Multiple image file paths for comparison (max 20). E.g., ['/Photos/before.jpg', '/Photos/after.jpg']
- `prompt` (string, required): What to ask about the image(s) (e.g., "What text is in this image?", "Compare these images")

### `bulk_file_operations` (~47 tokens)

Bulk File Operations

Execute multiple file operations (move, copy, delete) sequentially in a single call. Returns per-item results.

Input parameters:

- `operations` (array, required): Array of file operations to execute sequentially

### `create_archive` (~100 tokens)

Create Archive

Create a zip archive in Nextcloud from one or more files and/or folders. Runs server-side; not bound by MCP file-size limits.

Input parameters:

- `destination` (string, required): Path for the resulting .zip file (e.g., '/Documents/backup.zip')
- `overwrite` (boolean): Whether to overwrite the destination if it already exists
- `sources` (array, required): Paths of files/folders to include (e.g., ['/Documents/a.txt', '/Photos'])

### `extract_archive` (~79 tokens)

Extract Archive

Extract a zip archive in Nextcloud into a destination folder. Runs server-side.

Input parameters:

- `archive` (string, required): Path to the .zip file (e.g., '/Documents/backup.zip')
- `destination` (string, required): Folder to extract into (e.g., '/Documents/restored')
- `overwrite` (boolean): Whether to overwrite entries that already exist

### `list_archive` (~44 tokens)

List Archive Contents

List the contents of a zip archive in Nextcloud without extracting it.

Input parameters:

- `archive` (string, required): Path to the .zip file (e.g., '/Documents/backup.zip')

### `system_status` (~22 tokens)

System Status

Get Nextcloud system status including version, installation path, and configuration

### `run_setup_checks` (~32 tokens)

Run Setup Checks

Run Nextcloud setup checks to verify system configuration (security, performance, PHP modules, etc.). Requires admin privileges

### `get_local_time` (~45 tokens)

Get Local Time

Get the current local time and timezone of the MCP server. Call this to establish a time reference before creating or listing calendar events, or to resolve scheduling ambiguities with the user.

### `list_apps` (~51 tokens)

List Apps

List all installed Nextcloud apps with their enabled/disabled status. Requires admin privileges

Input parameters:

- `filter` (string): Filter apps by status: "all", "enabled", or "disabled" (default: all)

### `get_app_info` (~46 tokens)

Get App Info

Get detailed information about a specific Nextcloud app. Requires admin privileges

Input parameters:

- `appId` (string, required): The app ID (e.g., "tasks", "deck", "photos")

### `enable_app` (~44 tokens)

Enable App

Enable a disabled Nextcloud app. Requires admin privileges

Input parameters:

- `appId` (string, required): The app ID to enable (e.g., "tasks", "deck", "photos")

### `disable_app` (~51 tokens)

Disable App

Disable an enabled Nextcloud app (preserves data but removes functionality). Requires admin privileges

Input parameters:

- `appId` (string, required): The app ID to disable (e.g., "tasks", "deck", "photos")

### `install_app` (~61 tokens)

Install App

Install a Nextcloud app from the App Store via occ app:install

Input parameters:

- `appId` (string, required): App ID to install (e.g. "tasks", "calendar", "mail")
- `keepDisabled` (boolean): Install but keep the app disabled

### `uninstall_app` (~50 tokens)

Uninstall App

Remove a Nextcloud app via occ app:remove

Input parameters:

- `appId` (string, required): App ID to remove (e.g. "tasks")
- `keepData` (boolean): Keep app data after removal

### `get_file_tags` (~46 tokens)

Get File Tags

Get the personal tags assigned to a file or folder in Nextcloud

Input parameters:

- `path` (string, required): The file or folder path in Nextcloud (e.g., '/Photos/test.png')

### `set_file_tags` (~83 tokens)

Set File Tags

Set personal tags on a file or folder in Nextcloud. Replaces all existing personal tags. Use an empty array to clear all tags.

Input parameters:

- `path` (string, required): The file or folder path in Nextcloud (e.g., '/Photos/test.png')
- `tags` (array, required): Array of tag names to set (e.g., ['Wallpapers', 'Nature'])

### `list_system_tags` (~38 tokens)

List System Tags

List all available system tags in Nextcloud with their IDs, names, and properties. Use this to find tag IDs before assigning them to files.

### `create_system_tag` (~75 tokens)

Create System Tag

Create a new system tag in Nextcloud. Returns the created tag info.

Input parameters:

- `name` (string, required): The name for the new system tag
- `userAssignable` (boolean): Whether users can assign this tag (default: true)
- `userVisible` (boolean): Whether the tag is visible to users (default: true)

### `assign_system_tag` (~60 tokens)

Assign System Tag

Assign a system tag to a file by file ID and tag ID. Use get_file_info to obtain the file ID.

Input parameters:

- `fileId` (number, required): The Nextcloud file ID
- `tagId` (number, required): The system tag ID to assign

### `remove_system_tag` (~50 tokens)

Remove System Tag

Remove a system tag from a file by file ID and tag ID

Input parameters:

- `fileId` (number, required): The Nextcloud file ID
- `tagId` (number, required): The system tag ID to remove

### `unified_search` (~124 tokens)

Unified Search

Search across all Nextcloud apps (files, calendar, contacts, mail, notes, etc.) using Unified Search. Optionally filter by a specific provider ID. Without a provider, searches the top providers in parallel.

Input parameters:

- `cursor` (string): Pagination cursor returned from a previous search
- `limit` (number): Maximum results per provider (default: 5)
- `provider` (string): Search a specific provider by ID (e.g. "files", "calendar", "contacts"). Omit to search across all providers.
- `query` (string, required): The search query

### `list_search_providers` (~33 tokens)

List Search Providers

List all available Unified Search providers in Nextcloud. Use this to discover provider IDs for targeted searches with unified_search.

### `list_users` (~60 tokens)

List Users

List all users in the Nextcloud instance. Requires admin or sub-admin privileges

Input parameters:

- `limit` (number): Maximum number of users to return
- `offset` (number): Offset for pagination
- `search` (string): Search/filter string for user IDs

### `get_user_info` (~49 tokens)

Get User Info

Get detailed information about a specific Nextcloud user. Non-admin users can only query their own user ID

Input parameters:

- `userId` (string, required): The user ID (login name) to get information about

### `enable_user` (~37 tokens)

Enable User

Enable a disabled Nextcloud user account. Requires admin privileges

Input parameters:

- `userId` (string, required): The user ID (login name) to enable

### `disable_user` (~43 tokens)

Disable User

Disable a Nextcloud user account (prevents login but preserves data). Requires admin privileges

Input parameters:

- `userId` (string, required): The user ID (login name) to disable

### `list_groups` (~60 tokens)

List Groups

List all groups in the Nextcloud instance. Requires admin or sub-admin privileges

Input parameters:

- `limit` (number): Maximum number of groups to return
- `offset` (number): Offset for pagination
- `search` (string): Search/filter string for group names

### `get_group_info` (~44 tokens)

Get Group Info

Get detailed information about a specific Nextcloud group. Requires admin or sub-admin privileges

Input parameters:

- `groupId` (string, required): The group ID (name) to get information about

### `add_user_to_group` (~62 tokens)

Add User to Group

Add a Nextcloud user to a group. Requires admin privileges

Input parameters:

- `groupId` (string, required): The group ID (name) to add the user to
- `userId` (string, required): The user ID (login name) to add to the group

### `remove_user_from_group` (~62 tokens)

Remove User from Group

Remove a Nextcloud user from a group. Requires admin privileges

Input parameters:

- `groupId` (string, required): The group ID (name) to remove the user from
- `userId` (string, required): The user ID (login name) to remove from the group

### `list_shares` (~72 tokens)

List Shares

List file shares in Nextcloud (for diagnostics and security auditing)

Input parameters:

- `path` (string): Filter shares for a specific file/folder path
- `reshares` (boolean): Include reshares (default: false)
- `subfiles` (boolean): Show shares for all files in a folder (requires path)

### `create_share` (~189 tokens)

Create Share

Create a file or folder share in Nextcloud

Input parameters:

- `expireDate` (string): Expiration date (YYYY-MM-DD)
- `hideDownload` (boolean): Hide download button for public link shares
- `label` (string): Label for public link shares
- `note` (string): Note to the share recipient
- `password` (string): Password-protect the share
- `path` (string, required): File or folder path to share
- `permissions` (number): Permission bitmask: 1=read, 2=update, 4=create, 8=delete, 16=share
- `shareType` (number, required): Share type: 0=user, 1=group, 3=public link, 4=email, 6=federated
- `shareWith` (string): Recipient (required for user/group/email/federated; omit for public link)

### `update_share` (~129 tokens)

Update Share

Update an existing share in Nextcloud

Input parameters:

- `expireDate` (string): Expiration date (YYYY-MM-DD)
- `hideDownload` (boolean): Hide download button for public link shares
- `label` (string): Label for public link shares
- `note` (string): Note to the share recipient
- `password` (string): Password-protect the share
- `permissions` (number): Permission bitmask: 1=read, 2=update, 4=create, 8=delete, 16=share
- `shareId` (number, required): The share ID to update

### `delete_share` (~28 tokens)

Delete Share

Delete a share in Nextcloud

Input parameters:

- `shareId` (number, required): The share ID to delete

### `get_share` (~32 tokens)

Get Share

Get detailed information about a specific share by its ID

Input parameters:

- `shareId` (number, required): The share ID to retrieve

### `list_shares_with_me` (~22 tokens)

List Shares With Me

List all files and folders shared with the current user

### `search_sharees` (~115 tokens)

Search Share Recipients

Search for valid share recipients (users, groups, emails, federated users, circles, rooms)

Input parameters:

- `itemType` (string): Item type (default: file)
- `search` (string, required): Search query for recipient name/email
- `shareTypes` (array): Share types to include: 0=user, 1=group, 3=public, 4=email, 6=federated, 7=circle, 10=room (default: [0,1,3,4,6])

### `list_pending_shares` (~24 tokens)

List Pending Shares

List pending federated/remote shares waiting to be accepted or declined

### `accept_pending_share` (~32 tokens)

Accept Pending Share

Accept a pending federated/remote share

Input parameters:

- `shareId` (number, required): The pending share ID to accept

### `decline_pending_share` (~33 tokens)

Decline Pending Share

Decline a pending federated/remote share

Input parameters:

- `shareId` (number, required): The pending share ID to decline

### `get_out_of_office` (~47 tokens)

Get Out-of-Office Status

Get a user's current out-of-office / absence status (NC 28+)

Input parameters:

- `userId` (string): User ID to check (defaults to the configured Nextcloud user)

### `set_out_of_office` (~134 tokens)

Set Out-of-Office Status

Set an out-of-office / absence period with status message (NC 28+)

Input parameters:

- `firstDay` (string, required): First day of absence (YYYY-MM-DD)
- `lastDay` (string, required): Last day of absence (YYYY-MM-DD)
- `message` (string, required): Detailed absence message shown to others
- `replacementUserId` (string): User ID of the replacement/delegate during absence
- `status` (string, required): Short status label (e.g. "Vacation", "Sick leave")
- `userId` (string): User ID to set absence for (defaults to the configured Nextcloud user)

### `clear_out_of_office` (~48 tokens)

Clear Out-of-Office Status

Clear a user's out-of-office / absence status (NC 28+)

Input parameters:

- `userId` (string): User ID to clear absence for (defaults to the configured Nextcloud user)

### `list_trash` (~18 tokens)

List Trash

List files in the trash / recycle bin

### `restore_from_trash` (~51 tokens)

Restore from Trash

Restore a file from the trash to its original location (use the Key from list_trash)

Input parameters:

- `trashKey` (string, required): The trash item key (from the Key field in list_trash output)

### `empty_trash` (~22 tokens)

Empty Trash

Permanently delete all files in the trash (cannot be undone)

### `list_file_versions` (~45 tokens)

List File Versions

List previous versions of a file (use get_file_info to find the fileId)

Input parameters:

- `fileId` (number, required): The Nextcloud internal file ID (from get_file_info)

### `restore_file_version` (~58 tokens)

Restore File Version

Restore a previous version of a file (creates a new current version from the old one)

Input parameters:

- `fileId` (number, required): The Nextcloud internal file ID
- `versionId` (string, required): The version identifier (from list_file_versions output)

### `aiquila_show_config` (~16 tokens)

Show AIquila Configuration

Show current AIquila configuration

### `aiquila_configure` (~108 tokens)

Configure AIquila

Configure AIquila settings (API key, model, tokens, timeout)

Input parameters:

- `apiKey` (string): Anthropic API key
- `maxTokens` (number): Maximum tokens for responses (default: 4096)
- `model` (string): Claude model to use (e.g., 'claude-fable-5', 'claude-opus-5', 'claude-sonnet-5')
- `timeout` (number): Request timeout in seconds (default: 60)

### `aiquila_test` (~34 tokens)

Test AIquila Claude Integration

Test AIquila Claude API integration with a simple prompt

Input parameters:

- `prompt` (string): Test prompt to send to Claude API

### `check_core_integrity` (~25 tokens)

Check Core Integrity

Verify Nextcloud core system integrity by checking file signatures against the official release

### `check_app_integrity` (~52 tokens)

Check App Integrity

Verify integrity of a specific Nextcloud app by checking file signatures against its official release

Input parameters:

- `appId` (string, required): The app ID to check (e.g., "tasks", "deck", "photos")

### `run_occ` (~215 tokens)

Run OCC Command

Execute an allowlisted Nextcloud OCC command on the server and return the output. Only commands in the allowlist may be run (configurable via MCP_OCC_ALLOWLIST env var). Allowed by default: status, app:list, app:check-code, config:app:get, setupchecks, integrity:check-core, integrity:check-app, user:list, user:info, group:list, maintenance:mode, maintenance:mimetype:update-db, db:add-missing-indices, db:add-missing-columns, db:add-missing-primary-keys, files:scan, files:cleanup, trashbin:cleanup, update:check, notification:generate, theming:config.

Input parameters:

- `args` (array): Optional arguments for the command (e.g., ["--shipped=false", "--output=json"])
- `command` (string, required): The OCC command to execute (e.g., "app:list", "config:list", "setupchecks")
- `timeout` (number): Timeout in seconds (default: 120, max: 600)

### `list_projects` (~29 tokens)

List Projects

List all AIquila projects for the current user. Projects bundle files/directories with an optional system prompt.

### `create_project` (~68 tokens)

Create Project

Create a new AIquila project. Projects bundle files/directories with an optional system prompt that gets injected into conversations.

Input parameters:

- `description` (string): Project description
- `systemPrompt` (string): System prompt to inject into conversations using this project
- `title` (string, required): Project title (required)

### `get_project` (~31 tokens)

Get Project

Get details of an AIquila project including its file/directory paths.

Input parameters:

- `id` (number, required): Project ID

### `update_project` (~65 tokens)

Update Project

Update an AIquila project. Only provided fields are updated.

Input parameters:

- `description` (string): New project description
- `id` (number, required): Project ID
- `systemPrompt` (string): New system prompt for conversations using this project
- `title` (string): New project title

### `delete_project` (~35 tokens)

Delete Project

Delete an AIquila project. Associated paths are removed and conversations referencing it are unlinked.

Input parameters:

- `id` (number, required): Project ID

### `add_project_path` (~61 tokens)

Add Project Path

Add a file or directory path to an AIquila project.

Input parameters:

- `id` (number, required): Project ID
- `path` (string, required): File or directory path to add
- `pathType` (string): Type of path: "file" or "directory"

### `remove_project_path` (~42 tokens)

Remove Project Path

Remove a file or directory path from an AIquila project.

Input parameters:

- `id` (number, required): Project ID
- `pathId` (number, required): Path ID to remove

### `list_coworkers` (~33 tokens)

List Coworkers

List the current user's coworkers (persistent scheduled AI tasks) with their status, provider, schedule and last run.

### `list_coworker_templates` (~39 tokens)

List Coworker Templates

List built-in coworker templates (e.g. image classification via Claude vision or Mistral Pixtral) and available task types.

### `get_coworker` (~38 tokens)

Get Coworker

Get a single coworker by ID, including its schedule and last run status.

Input parameters:

- `id` (number, required): Coworker ID

### `create_coworker` (~242 tokens)

Create Coworker

Create a coworker. Provide templateId to start from a built-in template (e.g. "classify-images-claude" or "classify-images-mistral"), and/or explicit fields to configure a custom one. Fields override template defaults.

Input parameters:

- `cronSchedule` (string): 5-field cron, e.g. "0 3 * * *"
- `inputPath` (string): Folder to process, e.g. "/Photos"
- `isActive` (boolean): Whether the coworker is enabled
- `maxTags` (number): Max tags per image (vision:classify)
- `model` (string): Model id to run with; omit to use the provider's default
- `provider` (string): Provider id: "anthropic", "mistral", "deepseek", "hetzner" or "local"
- `recursive` (boolean): Include sub-folders
- `taskType` (string): Task type id, e.g. "vision:classify"
- `templateId` (string): Built-in template id (see list_coworker_templates)
- `title` (string)

### `update_coworker` (~115 tokens)

Update Coworker

Update a coworker's configuration (title, provider, input folder, schedule, options).

Input parameters:

- `cronSchedule` (string)
- `id` (number, required): Coworker ID
- `inputPath` (string)
- `maxTags` (number)
- `model` (string): Model id; omit to use the provider's default
- `provider` (string): Provider id; "" unpins so the coworker follows the owner setting
- `recursive` (boolean)
- `title` (string)

### `delete_coworker` (~31 tokens)

Delete Coworker

Delete a coworker and its run history.

Input parameters:

- `id` (number, required): Coworker ID

### `enable_coworker` (~33 tokens)

Enable Coworker

Enable a coworker so it runs on its schedule.

Input parameters:

- `id` (number, required): Coworker ID

### `disable_coworker` (~34 tokens)

Disable Coworker

Disable a coworker so it stops running on its schedule.

Input parameters:

- `id` (number, required): Coworker ID

### `pause_coworker` (~32 tokens)

Pause Coworker

Temporarily pause a coworker without disabling it.

Input parameters:

- `id` (number, required): Coworker ID

### `resume_coworker` (~28 tokens)

Resume Coworker

Resume a paused coworker.

Input parameters:

- `id` (number, required): Coworker ID

### `run_coworker` (~37 tokens)

Run Coworker

Run a coworker immediately (synchronously) and return the run result.

Input parameters:

- `id` (number, required): Coworker ID

### `get_coworker_runs` (~54 tokens)

Get Coworker Runs

Get recent run history (progress, status, summary) for a coworker.

Input parameters:

- `id` (number, required): Coworker ID
- `limit` (number): Max runs to return (default 20)

### `list_calendars` (~34 tokens)

List Calendars

List all calendars available to the current user, including their supported component types (events, tasks, journals) and metadata.

### `list_events` (~173 tokens)

List Calendar Events

List events from a Nextcloud calendar within an optional time range. Returns event details including time, location, attendees, recurrence, and UIDs.

Input parameters:

- `calendarName` (string, required): The calendar name. Use list_calendars to find available calendar names.
- `from` (string): Start of time range (ISO 8601, e.g. 2026-04-12 or 2026-04-12T09:00:00Z). Defaults to today.
- `limit` (number): Maximum number of events to return (default: 50)
- `to` (string): End of time range (ISO 8601, e.g. 2026-04-12 or 2026-04-12T09:00:00Z). Defaults to 30 days from now.

### `get_event` (~64 tokens)

Get Calendar Event

Get detailed information about a single calendar event by its UID, including full description, attendees, and recurrence rules.

Input parameters:

- `calendarName` (string, required): The calendar name. Use list_calendars to find available calendar names.
- `uid` (string, required): The UID of the event

### `create_event` (~421 tokens)

Create Calendar Event

Create a new calendar event in Nextcloud with date/time, location, description, attendees, and optional recurrence.

Input parameters:

- `accessClass` (string): Event visibility classification
- `alarm` (number): Single reminder in minutes before the event (e.g. 15 for 15 min before). For multiple reminders use alarms[].
- `alarms` (array): Multiple reminders in minutes before the event (e.g. [1440, 60] for 1 day and 1 hour before). Combined with alarm if both are set.
- `attendees` (array): List of attendees
- `calendarName` (string, required): The calendar name. Use list_calendars to find available calendar names.
- `categories` (array): Tags/categories
- `description` (string): Event description
- `dtend` (string): End date/time. For all-day events, this is the exclusive end date (day after last day). If omitted, defaults to 1 hour after start (timed) or next day (all-day).
- `dtstart` (string, required): Start date/time in YYYYMMDD (all-day) or YYYYMMDDTHHmmssZ (timed) format
- `location` (string): Event location
- `rrule` (string): Recurrence rule (e.g. 'FREQ=WEEKLY;BYDAY=MO,WE,FR' or 'FREQ=MONTHLY;COUNT=12')
- `status` (string): Event status (default: CONFIRMED)
- `summary` (string, required): The event title
- `transp` (string): Time transparency for free/busy (OPAQUE = busy, TRANSPARENT = free)
- `tzid` (string): IANA time zone (e.g. "Europe/Berlin"). When set, a VTIMEZONE block is emitted and dtstart/dtend use TZID instead of UTC. Required for reliable iOS Calendar and Thunderbird CalDAV sync of timed events…

### `update_event` (~351 tokens)

Update Calendar Event

Update an existing calendar event's fields by UID. Uses CalDAV ETag-based optimistic concurrency.

Input parameters:

- `accessClass` (string): New classification
- `alarm` (number|null): Single reminder in minutes before the event, or null to remove all existing alarms. For multiple reminders use alarms[].
- `alarms` (array): Multiple reminders in minutes before the event (e.g. [1440, 60]). Replaces existing alarms; combined with alarm if both are set.
- `attendees`: Replace attendees list, or null to remove all attendees
- `calendarName` (string, required): The calendar name. Use list_calendars to find available calendar names.
- `categories` (array): Replace all tags with these
- `description` (string|null): New description, or null to remove
- `dtend` (string|null): New end date/time, or null to remove
- `dtstart` (string): New start date/time (YYYYMMDD or YYYYMMDDTHHmmssZ)
- `location` (string|null): New location, or null to remove
- `rrule` (string|null): New recurrence rule, or null to remove
- `status` (string): New status
- `summary` (string): New event title
- `transp` (string): New transparency
- `tzid` (string): IANA time zone (e.g. "Europe/Berlin") for the updated dtstart/dtend. When set, a VTIMEZONE block is added (if missing) and DTSTART/DTEND use TZID instead of UTC. Required for iOS/Thunderbird CalDAV s…
- `uid` (string, required): The UID of the event to update

### `delete_event` (~59 tokens)

Delete Calendar Event

Delete a calendar event from Nextcloud by UID. This action is irreversible.

Input parameters:

- `calendarName` (string, required): The calendar name. Use list_calendars to find available calendar names.
- `uid` (string, required): The UID of the event to delete

### `list_task_lists` (~18 tokens)

List Task Lists

List all task lists in Nextcloud Tasks

### `list_tasks` (~62 tokens)

List Tasks

List tasks from a Nextcloud Tasks calendar. Returns task details including status, priority, dates, tags, and UIDs.

Input parameters:

- `calendarName` (string): The calendar/task list name (default: 'tasks')
- `status` (string): Filter tasks by status

### `create_task` (~241 tokens)

Create Task

Create a new task in Nextcloud Tasks with optional due date, start date, tags, location, and subtask relationships.

Input parameters:

- `calendarName` (string): The calendar name (default: 'tasks')
- `categories` (array): Tags/categories (e.g. ['work', 'urgent'])
- `classification` (string): Task visibility classification
- `description` (string): Detailed description of the task
- `dtstart` (string): Start date in YYYYMMDD or YYYYMMDDTHHmmssZ format
- `due` (string): Due date in YYYYMMDD or YYYYMMDDTHHmmssZ format (e.g. '20240315' or '20240315T140000Z')
- `location` (string): Location string
- `percentComplete` (number): Completion percentage (0-100)
- `priority` (number): Task priority (0=undefined, 1=highest, 5=medium, 9=lowest)
- `relatedTo` (string): Parent task UID (creates a subtask relationship)
- `summary` (string, required): The task summary/title
- `url` (string): Custom URL reference

### `update_task` (~240 tokens)

Update Task

Update an existing task's fields by UID. Uses CalDAV ETag-based optimistic concurrency.

Input parameters:

- `calendarName` (string): The calendar name (default: 'tasks')
- `categories` (array): Replace all tags with these
- `classification` (string): New classification
- `description` (string): New description
- `dtstart` (string|null): New start date, or null to remove
- `due` (string|null): New due date (YYYYMMDD or YYYYMMDDTHHmmssZ), or null to remove
- `location` (string|null): New location, or null to remove
- `percentComplete` (number): New completion percentage
- `pinned` (boolean): Pin or unpin the task
- `priority` (number): New priority (0-9, 0 removes priority)
- `relatedTo` (string|null): New parent UID, or null to remove parent
- `status` (string): New status
- `summary` (string): New task title
- `uid` (string, required): The UID of the task to update
- `url` (string|null): New URL, or null to remove

### `delete_task` (~53 tokens)

Delete Task

Delete a task from Nextcloud Tasks by UID. This action is irreversible.

Input parameters:

- `calendarName` (string): The calendar name (default: 'tasks')
- `uid` (string, required): The UID of the task to delete

### `complete_task` (~80 tokens)

Complete Task

Mark a task as completed or reopen it. Sets STATUS, PERCENT-COMPLETE, and COMPLETED date atomically.

Input parameters:

- `calendarName` (string): The calendar name (default: 'tasks')
- `completed` (boolean): true = mark completed, false = reopen (default: true)
- `uid` (string, required): The UID of the task

### `list_address_books` (~26 tokens)

List Address Books

List all address books available to the current user, including their display names and metadata.

### `list_contacts` (~94 tokens)

List Contacts

List contacts from a Nextcloud address book. Optionally search by name. Returns name, email, phone, organization, and UID for each contact.

Input parameters:

- `addressBookName` (string): The address book name (default: 'contacts')
- `limit` (number): Maximum number of contacts to return (default: 50)
- `search` (string): Search term to filter contacts by name (case-insensitive contains match)

### `get_contact` (~70 tokens)

Get Contact

Get detailed information about a single contact by its UID, including all properties like name, email, phone, address, organization, birthday, notes, and groups.

Input parameters:

- `addressBookName` (string): The address book name (default: 'contacts')
- `uid` (string, required): The UID of the contact

### `create_contact` (~217 tokens)

Create Contact

Create a new contact in a Nextcloud address book with name, email, phone, address, organization, and other properties.

Input parameters:

- `addressBookName` (string): The address book name (default: 'contacts')
- `addresses` (array): Physical addresses
- `birthday` (string): Birthday in YYYY-MM-DD or YYYYMMDD format
- `categories` (array): Groups/categories for the contact
- `emails` (array): Email addresses
- `firstName` (string): First/given name
- `fullName` (string, required): The contact's full display name (required)
- `lastName` (string): Last/family name
- `note` (string): Notes about the contact
- `org` (string): Organization name
- `phones` (array): Phone numbers
- `prefix` (string): Name prefix (e.g. Dr., Mr.)
- `suffix` (string): Name suffix (e.g. Jr., III)
- `title` (string): Job title
- `url` (string): Website URL

### `update_contact` (~245 tokens)

Update Contact

Update an existing contact's fields by UID. Uses CardDAV ETag-based optimistic concurrency. Only provided fields are changed.

Input parameters:

- `addressBookName` (string): The address book name (default: 'contacts')
- `addresses` (array): Replace all addresses with these
- `birthday` (string|null): New birthday (YYYY-MM-DD or YYYYMMDD), or null to remove
- `categories` (array): Replace all groups/categories with these
- `emails` (array): Replace all emails with these
- `firstName` (string|null): New first name, or null to clear
- `fullName` (string): New full display name
- `lastName` (string|null): New last name, or null to clear
- `note` (string|null): New notes, or null to remove
- `org` (string|null): New organization, or null to remove
- `phones` (array): Replace all phone numbers with these
- `title` (string|null): New job title, or null to remove
- `uid` (string, required): The UID of the contact to update
- `url` (string|null): New website URL, or null to remove

### `delete_contact` (~57 tokens)

Delete Contact

Delete a contact from a Nextcloud address book by UID. This action is irreversible.

Input parameters:

- `addressBookName` (string): The address book name (default: 'contacts')
- `uid` (string, required): The UID of the contact to delete

### `list_notes` (~54 tokens)

List Notes

List all notes in Nextcloud Notes. Returns id, title, category, favorite flag, and modification date.

Input parameters:

- `category` (string): Filter by category
- `search` (string): Filter notes by title (client-side)

### `get_note` (~32 tokens)

Get Note

Get the full content of a note by its ID.

Input parameters:

- `id` (integer, required): Note ID (from list_notes)

### `create_note` (~65 tokens)

Create Note

Create a new note in Nextcloud Notes.

Input parameters:

- `category` (string): Category (maps to a subfolder)
- `content` (string, required): Content of the note (Markdown)
- `favorite` (boolean): Mark as favorite
- `title` (string, required): Title of the note

### `update_note` (~73 tokens)

Update Note

Update an existing note. Provide only the fields you want to change.

Input parameters:

- `category` (string): New category
- `content` (string): New content (Markdown)
- `favorite` (boolean): Favorite flag
- `id` (integer, required): Note ID (from list_notes)
- `title` (string): New title

### `delete_note` (~28 tokens)

Delete Note

Delete a note by its ID.

Input parameters:

- `id` (integer, required): Note ID (from list_notes)

### `list_feeds` (~25 tokens)

List News Feeds

List all RSS feeds subscribed in the Nextcloud News app, with unread counts.

### `add_feed` (~59 tokens)

Add News Feed

Subscribe to a new RSS feed by URL, optionally placing it in a folder.

Input parameters:

- `folderId` (number): Folder ID to place the feed in (omit for root)
- `url` (string, required): The RSS/Atom feed URL to subscribe to

### `delete_feed` (~33 tokens)

Delete News Feed

Delete (unsubscribe from) a feed and all its items.

Input parameters:

- `feedId` (number, required): The feed ID to delete

### `move_feed` (~44 tokens)

Move News Feed

Move a feed into a different folder.

Input parameters:

- `feedId` (number, required): The feed ID to move
- `folderId` (number, required): Destination folder ID (0 for root)

### `rename_feed` (~37 tokens)

Rename News Feed

Rename a feed.

Input parameters:

- `feedId` (number, required): The feed ID to rename
- `feedTitle` (string, required): The new feed title

### `mark_feed_read` (~59 tokens)

Mark Feed as Read

Mark all items in a feed as read up to (and including) the given newest item ID.

Input parameters:

- `feedId` (number, required): The feed ID
- `newestItemId` (number, required): Mark all items with ID <= this value as read

### `list_news_folders` (~24 tokens)

List News Folders

List all folders used to organize feeds in the Nextcloud News app.

### `create_news_folder` (~31 tokens)

Create News Folder

Create a new folder for organizing feeds in the News app.

Input parameters:

- `name` (string, required): The folder name

### `rename_news_folder` (~38 tokens)

Rename News Folder

Rename a News folder.

Input parameters:

- `folderId` (number, required): The folder ID to rename
- `name` (string, required): The new folder name

### `delete_news_folder` (~32 tokens)

Delete News Folder

Delete a News folder and all feeds it contains.

Input parameters:

- `folderId` (number, required): The folder ID to delete

### `mark_news_folder_read` (~60 tokens)

Mark News Folder as Read

Mark all items in a folder as read up to (and including) the given newest item ID.

Input parameters:

- `folderId` (number, required): The folder ID
- `newestItemId` (number, required): Mark all items with ID <= this value as read

### `list_news_items` (~143 tokens)

List News Items

List news articles (items). Filter by feed, folder, starred, or all; supports pagination and read/unread filtering.

Input parameters:

- `batchSize` (number): Max items to return (default 20, -1 for all)
- `getRead` (boolean): Include already-read items (default false)
- `id` (number): Feed or folder ID when type is "feed" or "folder" (default 0)
- `offset` (number): Return items older than this item ID (pagination)
- `oldestFirst` (boolean): Return oldest items first (default newest first)
- `type` (string): Scope of items to return (default "all")

### `mark_item_read` (~28 tokens)

Mark News Item as Read

Mark a single news item as read.

Input parameters:

- `itemId` (number, required): The item ID

### `mark_item_unread` (~29 tokens)

Mark News Item as Unread

Mark a single news item as unread.

Input parameters:

- `itemId` (number, required): The item ID

### `star_item` (~28 tokens)

Star News Item

Star (favorite) a single news item.

Input parameters:

- `itemId` (number, required): The item ID

### `unstar_item` (~29 tokens)

Unstar News Item

Remove the star from a single news item.

Input parameters:

- `itemId` (number, required): The item ID

### `mark_items_read` (~34 tokens)

Mark News Items as Read

Mark multiple news items as read in one call.

Input parameters:

- `itemIds` (array, required): The item IDs to mark as read

### `list_mail_accounts` (~29 tokens)

List Mail Accounts

List all configured email accounts in Nextcloud Mail. Returns account IDs, names, and email addresses.

### `list_mailboxes` (~50 tokens)

List Mailboxes

List all mailboxes (folders) for a Nextcloud Mail account. Returns mailbox names, IDs, and unread counts.

Input parameters:

- `accountId` (number, required): The mail account ID (from list_mail_accounts)

### `mail_list_messages` (~97 tokens)

List Mail Messages

List email messages in a Nextcloud Mail mailbox. Supports pagination via cursor. Returns subject, sender, date, and message IDs.

Input parameters:

- `cursor` (number): Cursor for pagination (message ID to start after)
- `filter` (string): Filter messages (default: all)
- `limit` (number): Number of messages to return (default: 20)
- `mailboxId` (number, required): The mailbox ID (from list_mailboxes)

### `mail_read_message` (~45 tokens)

Read Mail Message

Read the full content of an email message by ID. Returns headers, body text, and attachment list.

Input parameters:

- `messageId` (number, required): The message ID (from list_messages)

### `mail_get_attachment` (~93 tokens)

Get Mail Attachment

Download an email attachment by message ID and attachment ID. Returns text for text files and calendar invites (ICS), image data for images, extracted text for PDFs (requires pdftotext). Attachment IDs are shown in mail_read_message output.

Input parameters:

- `attachmentId` (string, required): Attachment ID shown in mail_read_message (e.g. "2")
- `messageId` (number, required): Message ID (from mail_read_message)

### `mail_search_messages` (~73 tokens)

Search Mail Messages

Search email messages across all mailboxes by subject or sender. Returns matches with message IDs usable in mail_read_message. For threaded conversations all message IDs in the thread are returned.

Input parameters:

- `limit` (number): Max results (default: 10)
- `query` (string, required): Search query (matches subject and sender name)

### `mail_send_message` (~118 tokens)

Send Mail Message

Send an email message through Nextcloud Mail. Requires an account ID and recipient addresses.

Input parameters:

- `accountId` (number, required): The mail account ID to send from (from list_mail_accounts)
- `bcc` (array): BCC email addresses
- `body` (string, required): Email body content (plain text)
- `cc` (array): CC email addresses
- `isHtml` (boolean): Whether the body is HTML (default: false)
- `subject` (string, required): Email subject line
- `to` (array, required): Recipient email addresses

### `mail_delete_message` (~36 tokens)

Delete Mail Message

Delete an email message by ID. This typically moves it to trash.

Input parameters:

- `messageId` (number, required): The message ID to delete

### `mail_move_message` (~51 tokens)

Move Mail Message

Move an email message to a different mailbox/folder.

Input parameters:

- `destMailboxId` (number, required): The destination mailbox ID (from list_mailboxes)
- `messageId` (number, required): The message ID to move

### `mail_set_message_flags` (~57 tokens)

Set Mail Message Flags

Set flags on an email message (mark as read/unread, star/unstar, mark as important or junk).

Input parameters:

- `flags` (object, required): Flags to set on the message
- `messageId` (number, required): The message ID

### `deck_list_boards` (~29 tokens)

List Deck Boards

List all Deck boards. Returns id, title, owner, and label count for each board.

### `deck_get_board` (~53 tokens)

Get Deck Board

Get details of a Deck board including its labels and access control list (ACL). Use deck_list_stacks to see the columns and cards.

Input parameters:

- `boardId` (integer, required): Board ID (from deck_list_boards)

### `deck_create_board` (~50 tokens)

Create Deck Board

Create a new Deck board.

Input parameters:

- `color` (string): Hex color without # (e.g. "0800fd"). Defaults to "0800fd"
- `title` (string, required): Board title

### `deck_list_stacks` (~54 tokens)

List Deck Stacks

List all stacks (columns) of a Deck board, including the cards in each stack. This gives a full overview of the board layout.

Input parameters:

- `boardId` (integer, required): Board ID (from deck_list_boards)

### `deck_create_stack` (~58 tokens)

Create Deck Stack

Create a new stack (column) on a Deck board.

Input parameters:

- `boardId` (integer, required): Board ID (from deck_list_boards)
- `order` (integer): Position order (0-based)
- `title` (string, required): Stack title

### `deck_get_card` (~67 tokens)

Get Deck Card

Get full details of a Deck card including description, labels, and assigned users.

Input parameters:

- `boardId` (integer, required): Board ID
- `cardId` (integer, required): Card ID (from deck_list_stacks)
- `stackId` (integer, required): Stack ID (from deck_list_stacks)

### `deck_create_card` (~92 tokens)

Create Deck Card

Create a new card in a Deck stack.

Input parameters:

- `boardId` (integer, required): Board ID
- `description` (string): Card description (Markdown)
- `duedate` (string): Due date in ISO 8601 format (e.g. 2025-12-31)
- `stackId` (integer, required): Stack ID (from deck_list_stacks)
- `title` (string, required): Card title

### `deck_update_card` (~130 tokens)

Update Deck Card

Update an existing Deck card. Provide only the fields you want to change. Fetches the current card first to preserve unchanged fields.

Input parameters:

- `boardId` (integer, required): Board ID
- `cardId` (integer, required): Card ID (from deck_list_stacks)
- `description` (string): New description (Markdown)
- `done` (boolean): Mark card as done
- `duedate` (string|null): Due date (ISO 8601) or null to clear
- `stackId` (integer, required): Stack ID (from deck_list_stacks)
- `title` (string): New title

### `deck_move_card` (~102 tokens)

Move Deck Card

Move a card to a different stack (column) on the same board. This is the core kanban action for changing card status.

Input parameters:

- `boardId` (integer, required): Board ID
- `cardId` (integer, required): Card ID
- `order` (integer): Position in target stack (0 = top). Defaults to 0
- `stackId` (integer, required): Current stack ID of the card
- `targetStackId` (integer, required): Destination stack ID

### `deck_archive_card` (~62 tokens)

Archive Deck Card

Archive or unarchive a Deck card.

Input parameters:

- `archive` (boolean): true to archive, false to unarchive
- `boardId` (integer, required): Board ID
- `cardId` (integer, required): Card ID
- `stackId` (integer, required): Stack ID

### `deck_assign_label` (~74 tokens)

Assign Deck Label

Assign a label to a Deck card. Use deck_get_board to see available labels and their IDs.

Input parameters:

- `boardId` (integer, required): Board ID
- `cardId` (integer, required): Card ID
- `labelId` (integer, required): Label ID (from deck_get_board)
- `stackId` (integer, required): Stack ID

### `deck_assign_user` (~63 tokens)

Assign Deck User

Assign a user to a Deck card.

Input parameters:

- `boardId` (integer, required): Board ID
- `cardId` (integer, required): Card ID
- `stackId` (integer, required): Stack ID
- `userId` (string, required): User ID (login name) to assign

### `passman_list_vaults` (~60 tokens)

List Password Vaults

List all Passman password vaults. Returns name, guid, creation/last-access time and credential count. Note: secret values (password, username, url, etc.) are end-to-end encrypted and cannot be retrieved by this server.

### `passman_list_credentials` (~80 tokens)

List Vault Credentials

List credentials (metadata only) in a Passman vault. Returns each credential's label, id, guid and non-secret flags. Note: secret values (password, username, url, etc.) are end-to-end encrypted and cannot be retrieved by this server.

Input parameters:

- `vault_guid` (string, required): Vault GUID (from passman_list_vaults)

### `passman_get_credential_info` (~91 tokens)

Get Credential Info

Get non-secret metadata for a single Passman credential (label, id, timestamps, flags). Note: secret values (password, username, url, etc.) are end-to-end encrypted and cannot be retrieved by this server.

Input parameters:

- `credential_guid` (string, required): Credential GUID (from passman_list_credentials)
- `vault_guid` (string, required): Vault GUID (from passman_list_vaults)

### `list_recipes` (~67 tokens)

List Recipes

List all recipes in Nextcloud Cookbook. Optionally filter by name, category, or keyword.

Input parameters:

- `category` (string): Filter by recipe category
- `keyword` (string): Filter by keyword
- `search` (string): Search term to filter recipes by name (case-insensitive)

### `list_recipe_categories` (~22 tokens)

List Recipe Categories

List all unique recipe categories found across recipes in Nextcloud Cookbook.

### `get_recipe` (~42 tokens)

Get Recipe

Get full details of a recipe from Nextcloud Cookbook by its folder name.

Input parameters:

- `folderName` (string, required): The recipe folder name (as shown in list_recipes)

### `create_recipe` (~213 tokens)

Create Recipe

Create a new recipe in Nextcloud Cookbook with schema.org Recipe format.

Input parameters:

- `cookTime` (string): Cooking time in ISO 8601 duration (e.g., PT1H)
- `description` (string): Brief description
- `image` (string): Image URL
- `keywords` (string): Comma-separated keywords (e.g., 'pasta,italian')
- `name` (string, required): Recipe name
- `nutrition` (object): Nutrition information
- `prepTime` (string): Preparation time in ISO 8601 duration (e.g., PT30M)
- `recipeCategory` (string): Category (e.g., 'Easy', 'Dessert')
- `recipeIngredient` (array): List of ingredients
- `recipeInstructions` (array): Step-by-step instructions
- `recipeYield` (number): Number of servings
- `tool` (array): Kitchen tools needed
- `totalTime` (string): Total time in ISO 8601 duration
- `url` (string): Source URL

### `update_recipe` (~196 tokens)

Update Recipe

Update an existing recipe in Nextcloud Cookbook. Only provided fields are changed.

Input parameters:

- `cookTime` (string): New cook time (ISO 8601 duration)
- `description` (string): New description
- `folderName` (string, required): The recipe folder name
- `image` (string): New image URL
- `keywords` (string): New keywords
- `name` (string): New recipe name
- `nutrition` (object): Nutrition information
- `prepTime` (string): New prep time (ISO 8601 duration)
- `recipeCategory` (string): New category
- `recipeIngredient` (array): New ingredients list
- `recipeInstructions` (array): New instructions list
- `recipeYield` (number): New servings count
- `tool` (array): New tools list
- `totalTime` (string): New total time (ISO 8601 duration)
- `url` (string): New source URL

### `delete_recipe` (~44 tokens)

Delete Recipe

Delete a recipe from Nextcloud Cookbook. This removes the entire recipe folder including images. This action is irreversible.

Input parameters:

- `folderName` (string, required): The recipe folder name to delete

### `list_map_favorites` (~81 tokens)

List Map Favorites

List map favorites (saved locations/pins) from Nextcloud Maps. Optionally filter by modification time or scope to a custom map.

Input parameters:

- `myMapId` (number): ID of a custom map to scope the operation to; omit for the user's default map
- `pruneBefore` (number): Unix timestamp — only return favorites modified after this time

### `create_map_favorite` (~126 tokens)

Create Map Favorite

Create a new map favorite (saved location/pin) in Nextcloud Maps. Latitude and longitude are required.

Input parameters:

- `category` (string): Category name (e.g. 'Restaurant', 'Home')
- `comment` (string): A comment or note
- `extensions` (string): Extra data as a string
- `lat` (number, required): Latitude
- `lng` (number, required): Longitude
- `myMapId` (number): ID of a custom map to scope the operation to; omit for the user's default map
- `name` (string): Name of the location

### `update_map_favorite` (~112 tokens)

Update Map Favorite

Update an existing map favorite. Only provided fields are changed.

Input parameters:

- `category` (string): New category
- `comment` (string): New comment
- `extensions` (string): New extensions data
- `id` (number, required): Favorite ID
- `lat` (number): New latitude
- `lng` (number): New longitude
- `myMapId` (number): ID of a custom map to scope the operation to; omit for the user's default map
- `name` (string): New name

### `delete_map_favorite` (~60 tokens)

Delete Map Favorite

Delete a map favorite by its ID. This action is irreversible.

Input parameters:

- `id` (number, required): Favorite ID to delete
- `myMapId` (number): ID of a custom map to scope the operation to; omit for the user's default map

### `rename_map_favorite_category` (~80 tokens)

Rename Map Favorite Category

Rename one or more favorite categories. All favorites in the listed categories are moved to the new name.

Input parameters:

- `categories` (array, required): Existing category names to rename
- `myMapId` (number): ID of a custom map to scope the operation to; omit for the user's default map
- `newName` (string, required): New category name

### `list_shared_map_categories` (~47 tokens)

List Shared Map Categories

List favorite categories that are shared via a public link.

Input parameters:

- `myMapId` (number): ID of a custom map to scope the operation to; omit for the user's default map

### `share_map_category` (~39 tokens)

Share Map Category

Share a favorite category via a public link. The category must already contain at least one favorite.

Input parameters:

- `category` (string, required): Category name to share

### `unshare_map_category` (~32 tokens)

Unshare Map Category

Remove the public link share from a favorite category.

Input parameters:

- `category` (string, required): Category name to unshare

### `add_shared_category_to_map` (~83 tokens)

Add Shared Category To Map

Add a shared favorite category to a custom map so its favorites show up there.

Input parameters:

- `category` (string, required): Shared category name
- `myMapId` (number): ID of a custom map to scope the operation to; omit for the user's default map
- `targetMapId` (number, required): ID of the custom map to add the shared category to

### `list_map_devices` (~45 tokens)

List Map Devices

List GPS tracking devices registered in Nextcloud Maps.

Input parameters:

- `myMapId` (number): ID of a custom map to scope the operation to; omit for the user's default map

### `get_map_device_points` (~85 tokens)

Get Map Device Points

Get GPS location points for a specific device. Supports time filtering and pagination.

Input parameters:

- `id` (number, required): Device ID
- `limit` (number): Maximum number of points to return (default 10000)
- `offset` (number): Number of points to skip (default 0)
- `pruneBefore` (number): Unix timestamp — only return points after this time

### `add_map_device_point` (~109 tokens)

Add Map Device Point

Log a GPS location point for a device. The device is auto-created by user_agent if it doesn't exist.

Input parameters:

- `accuracy` (number): GPS accuracy in meters
- `altitude` (number): Altitude in meters
- `battery` (number): Battery level percentage
- `lat` (number, required): Latitude
- `lng` (number, required): Longitude
- `timestamp` (number): Unix timestamp (defaults to now)
- `user_agent` (string): Device identifier (defaults to HTTP User-Agent)

### `update_map_device` (~65 tokens)

Update Map Device

Update a device's display color and/or name. At least one must be provided.

Input parameters:

- `color` (string): New color (e.g. '#ff0000')
- `id` (number, required): Device ID
- `name` (string): New device name (user agent)

### `delete_map_device` (~36 tokens)

Delete Map Device

Delete a GPS tracking device and all its location points. This action is irreversible.

Input parameters:

- `id` (number, required): Device ID to delete

### `share_map_device` (~74 tokens)

Share Map Device

Share a GPS device via a public link, limited to a time window. Returns the share token.

Input parameters:

- `id` (number, required): Device ID to share
- `timestampFrom` (number, required): Unix timestamp — start of the shared time window
- `timestampTo` (number, required): Unix timestamp — end of the shared time window

### `list_shared_map_devices` (~52 tokens)

List Shared Map Devices

List device shares that have been added to a custom map. Requires myMapId — the default map holds no device shares.

Input parameters:

- `myMapId` (number, required): Custom map ID to list device shares from

### `remove_map_device_share` (~30 tokens)

Remove Map Device Share

Revoke a device share by its token.

Input parameters:

- `token` (string, required): Share token to revoke

### `add_shared_device_to_map` (~60 tokens)

Add Shared Device To Map

Add a shared device (by token) to a custom map so its track shows up there.

Input parameters:

- `targetMapId` (number, required): ID of the custom map to add the shared device to
- `token` (string, required): Device share token

### `list_map_tracks` (~39 tokens)

List Map Tracks

List GPS tracks (GPX/KML files) from Nextcloud Maps.

Input parameters:

- `myMapId` (number): Custom map ID to scope to

### `get_map_track` (~42 tokens)

Get Map Track

Get full details and content of a track by its ID. Returns metadata and the raw GPX/KML file content.

Input parameters:

- `id` (number, required): Track ID

### `update_map_track` (~68 tokens)

Update Map Track

Update a track's color or metadata.

Input parameters:

- `color` (string): New color (e.g. '#00ff00')
- `etag` (string): ETag for concurrency control
- `id` (number, required): Track ID
- `metadata` (string): New metadata as JSON string

### `list_map_photos` (~41 tokens)

List Map Photos

List geolocated photos (photos with GPS coordinates) from Nextcloud Maps.

Input parameters:

- `myMapId` (number): Custom map ID to scope to

### `list_map_photos_nonlocalized` (~94 tokens)

List Non-Localized Map Photos

List photos that don't have GPS coordinates. Useful for finding photos that can be placed on the map.

Input parameters:

- `limit` (number): Max photos to return (default 250)
- `myMapId` (number): Custom map ID to scope to
- `offset` (number): Pagination offset (default 0)
- `timezone` (string): Timezone string (e.g. 'Europe/Berlin')

### `place_map_photos` (~86 tokens)

Place Map Photos

Set GPS coordinates on one or more photos. Each photo path is paired with a lat/lng.

Input parameters:

- `lats` (array, required): Latitudes (parallel to paths)
- `lngs` (array, required): Longitudes (parallel to paths)
- `myMapId` (number): Custom map ID to scope to
- `paths` (array, required): File paths in Nextcloud storage

### `reset_map_photo_coords` (~47 tokens)

Reset Map Photo Coordinates

Remove GPS coordinates from one or more photos.

Input parameters:

- `myMapId` (number): Custom map ID to scope to
- `paths` (array, required): File paths in Nextcloud storage

### `get_map_photo_job_status` (~37 tokens)

Get Map Photo Job Status

Get the status of the background job that scans photos for GPS coordinates. Useful after uploading photos to see whether geolocation has finished.

### `list_map_contacts` (~51 tokens)

List Map Contacts

List address book contacts that carry a geographic address, as shown on the map.

Input parameters:

- `myMapId` (number): ID of a custom map to scope the operation to; omit for the user's default map

### `search_map_contacts` (~48 tokens)

Search Map Contacts

Search address book contacts by name, to find the bookid/uri/uid needed to place a contact on the map.

Input parameters:

- `query` (string, required): Search term matched against contact display names

### `place_map_contact` (~221 tokens)

Place Map Contact

Set a contact's geographic address and coordinates so it appears on the map. Use search_map_contacts to look up bookid, uri and uid.

Input parameters:

- `address_string` (string): Full address as a single string, used instead of the individual fields
- `attraction` (string): Point of interest name
- `bookid` (string, required): Address book ID
- `city` (string): City
- `country` (string): Country
- `house_number` (string): House number
- `lat` (number): Latitude
- `lng` (number): Longitude
- `myMapId` (number): ID of a custom map to scope the operation to; omit for the user's default map
- `postcode` (string): Postal code
- `road` (string): Street
- `state` (string): State or region
- `type` (string): Address type (e.g. 'HOME', 'WORK')
- `uid` (string, required): Contact UID
- `uri` (string, required): Contact URI (e.g. "abc123.vcf")

### `add_contact_to_map` (~76 tokens)

Add Contact To Map

Copy a contact into a custom map so it shows up as a pin on that map.

Input parameters:

- `bookid` (string, required): Address book ID
- `myMapId` (number, required): ID of the custom map to add the contact to
- `uri` (string, required): Contact URI (e.g. "abc123.vcf")

### `delete_map_contact_address` (~149 tokens)

Delete Map Contact Address

Remove an address and its coordinates from a contact, taking it off the map. The contact itself is kept. Use list_map_contacts to get the exact ADR and GEO values.

Input parameters:

- `adr` (string, required): The ADR value to remove, exactly as returned by list_map_contacts
- `bookid` (string, required): Address book ID
- `geo` (string, required): The GEO value to remove, exactly as returned by list_map_contacts
- `myMapId` (number): ID of a custom map to scope the operation to; omit for the user's default map
- `uid` (string, required): Contact UID
- `uri` (string, required): Contact URI (e.g. "abc123.vcf")

### `list_maps` (~21 tokens)

List Maps

List all custom maps created by the user in Nextcloud Maps.

### `create_map` (~33 tokens)

Create Map

Create a new custom map in Nextcloud Maps.

Input parameters:

- `name` (string): Map name (default: 'New Map')

### `update_map` (~53 tokens)

Update Map

Update a custom map's properties (e.g. rename).

Input parameters:

- `id` (number, required): Map ID
- `values` (object, required): Key-value pairs to update (e.g. { newName: 'My Trip' })

### `delete_map` (~29 tokens)

Delete Map

Delete a custom map. This action is irreversible.

Input parameters:

- `id` (number, required): Map ID to delete

### `export_map_route` (~121 tokens)

Export Map Route

Export a route or track as a GPX file to the user's Nextcloud /Maps folder.

Input parameters:

- `coords` (array, required): Ordered list of coordinates
- `myMapId` (number): Target map ID (defaults to /Maps folder)
- `name` (string, required): Route name (used as filename)
- `totDist` (number): Total distance (for metadata)
- `totTime` (number): Total time (for metadata)
- `type` (string, required): GPX structure type: 'route' (<rte>) or 'track' (<trk>)

### `export_map_favorites` (~92 tokens)

Export Map Favorites

Export favorites as a GPX file to the user's Nextcloud /Maps folder. Filter by categories and time range.

Input parameters:

- `all` (boolean): If true, filename is not prefixed with 'filtered-'
- `begin` (number): Start timestamp filter
- `categoryList` (array, required): Categories to export (e.g. ['Restaurant', 'Home'])
- `end` (number): End timestamp filter

### `import_map_favorites` (~62 tokens)

Import Map Favorites

Import favorites from a file in Nextcloud storage. Supports GPX, KML, KMZ, JSON, and GeoJSON.

Input parameters:

- `path` (string, required): Relative path to the file in Nextcloud storage (e.g. '/Maps/favorites.gpx')

### `export_map_devices` (~79 tokens)

Export Map Devices

Export device location data as a GPX file to the user's Nextcloud /Maps folder.

Input parameters:

- `all` (boolean): If true, filename is not prefixed with 'filtered-'
- `begin` (number): Start timestamp filter
- `deviceIdList` (array, required): Device IDs to export
- `end` (number): End timestamp filter

### `import_map_devices` (~58 tokens)

Import Map Devices

Import device location data from a file in Nextcloud storage. Supports GPX, KML, and KMZ.

Input parameters:

- `path` (string, required): Relative path to the file in Nextcloud storage (e.g. '/Maps/track.gpx')

### `photos_list_albums` (~33 tokens)

List Photo Albums

List all photo albums owned by the current user. Returns album names, item counts, locations, and date ranges.

### `photos_get_album` (~46 tokens)

Get Photo Album

Get details of a photo album including its files. Returns file IDs (needed for photos_remove_from_album), names, types, and sizes.

Input parameters:

- `name` (string, required): Album name

### `photos_create_album` (~27 tokens)

Create Photo Album

Create a new photo album.

Input parameters:

- `name` (string, required): Name for the new album

### `photos_delete_album` (~40 tokens)

Delete Photo Album

Delete a photo album. This only removes the album — the underlying files are not deleted.

Input parameters:

- `name` (string, required): Name of the album to delete

### `photos_rename_album` (~36 tokens)

Rename Photo Album

Rename a photo album.

Input parameters:

- `name` (string, required): Current album name
- `newName` (string, required): New album name

### `photos_add_to_album` (~78 tokens)

Add Photos to Album

Add one or more files to a photo album. Files are referenced by their Nextcloud path. The files themselves are not moved — only an album association is created.

Input parameters:

- `albumName` (string, required): Album name
- `filePaths` (array, required): Array of file paths in Nextcloud (e.g., ["/Photos/sunset.jpg"])

### `photos_remove_from_album` (~72 tokens)

Remove Photos from Album

Remove one or more files from a photo album by file ID (use photos_get_album to find IDs). This only removes the album association — the files are not deleted.

Input parameters:

- `albumName` (string, required): Album name
- `fileIds` (array, required): File IDs to remove (from photos_get_album output)

### `photos_get_metadata` (~68 tokens)

Get Photo Metadata

Get photo/video metadata (EXIF) for a file. Returns camera, lens, ISO, aperture, shutter speed, focal length, GPS coordinates, dimensions, and date taken when available.

Input parameters:

- `path` (string, required): File path in Nextcloud (e.g., "/Photos/sunset.jpg")

### `photos_set_favorite` (~57 tokens)

Set Photo Favorite

Mark or unmark a file as favorite.

Input parameters:

- `favorite` (boolean, required): true to mark as favorite, false to unmark
- `path` (string, required): File path in Nextcloud (e.g., "/Photos/sunset.jpg")

### `photos_set_album_location` (~47 tokens)

Set Photo Album Location

Set or update the location metadata on a photo album.

Input parameters:

- `location` (string, required): Location string (e.g., "Paris, France")
- `name` (string, required): Album name

### `photos_add_collaborators` (~56 tokens)

Add Photo Album Collaborators

Add collaborators (users or groups) to a photo album. Collaborators can view and add photos to the album.

Input parameters:

- `albumName` (string, required): Album name
- `collaborators` (array, required): Array of collaborators to add

### `talk_list_conversations` (~48 tokens)

List Talk Conversations

List all Talk conversations the user has access to. Returns conversation tokens, names, types, and unread message counts.

Input parameters:

- `includeStatus` (boolean): Include user status information (default false)

### `talk_list_messages` (~111 tokens)

List Talk Messages

List recent messages in a Talk conversation. Returns message content with timestamps and authors. Reading does not mark the conversation as read.

Input parameters:

- `includeSystemMessages` (boolean): Include system messages like join/leave notifications (default false)
- `lastKnownMessageId` (number): Message ID to start from for pagination (returns messages before this ID)
- `limit` (number): Number of messages to retrieve (default 50, max 200)
- `token` (string, required): Conversation token (from list_conversations)

### `talk_send_message` (~75 tokens)

Send Talk Message

Send a message to a Talk conversation. Supports replies and silent messages that do not trigger notifications.

Input parameters:

- `message` (string, required): Message text to send
- `replyTo` (number): Message ID to reply to
- `silent` (boolean): Send without triggering notifications (default false)
- `token` (string, required): Conversation token

### `talk_create_conversation` (~78 tokens)

Create Talk Conversation

Create a new Talk conversation. One-on-one requires an invite user, group/public require a name.

Input parameters:

- `invite` (string): User ID to invite (required for one-on-one)
- `roomName` (string): Name for the conversation (required for group and public)
- `roomType` (string, required): Type of conversation to create

### `talk_list_participants` (~30 tokens)

List Talk Participants

List all participants in a Talk conversation with their roles.

Input parameters:

- `token` (string, required): Conversation token

### `talk_add_participant` (~66 tokens)

Add Talk Participant

Add a user, group, or email participant to a Talk conversation.

Input parameters:

- `newParticipant` (string, required): User ID, group ID, or email address to add
- `source` (string): Participant source type (default 'users')
- `token` (string, required): Conversation token

### `talk_remove_participant` (~52 tokens)

Remove Talk Participant

Remove a participant from a Talk conversation by their attendee ID (from list_participants).

Input parameters:

- `attendeeId` (number, required): Attendee ID of the participant to remove
- `token` (string, required): Conversation token

### `talk_delete_message` (~40 tokens)

Delete Talk Message

Delete a message from a Talk conversation.

Input parameters:

- `messageId` (number, required): ID of the message to delete
- `token` (string, required): Conversation token

### `talk_create_poll` (~100 tokens)

Create Talk Poll

Create a poll in a Talk conversation. Requires at least 2 options.

Input parameters:

- `maxVotes` (number): Maximum number of votes per participant (0 = unlimited, default 1)
- `options` (array, required): Poll options (minimum 2)
- `question` (string, required): Poll question
- `resultMode` (string): Result visibility: 'public' (default) or 'hidden' until closed
- `token` (string, required): Conversation token

### `talk_react_to_message` (~69 tokens)

React to Talk Message

Add an emoji reaction to a message in a Talk conversation.

Input parameters:

- `messageId` (number, required): ID of the message to react to
- `reaction` (string, required): Emoji reaction (e.g. '👍', '❤️', '🎉')
- `token` (string, required): Conversation token

### `circles_list` (~53 tokens)

List Circles

List all circles/teams accessible to the current user. Returns circle IDs, names, owners, and configuration.

Input parameters:

- `limit` (number): Maximum number of circles to return
- `offset` (number): Offset for pagination

### `circles_get` (~40 tokens)

Get Circle

Get detailed information about a specific circle/team, including its description, owner, and configuration flags.

Input parameters:

- `circleId` (string, required): The circle ID to retrieve

### `circles_create` (~81 tokens)

Create Circle

Create a new circle/team. The current user becomes the owner. Set personal=true for a private circle only visible to the owner.

Input parameters:

- `local` (boolean): Restrict to local instance, no federation (default: false)
- `name` (string, required): Name for the new circle
- `personal` (boolean): Create as a personal circle (default: false)

### `circles_delete` (~30 tokens)

Delete Circle

Delete a circle/team. Requires owner privileges.

Input parameters:

- `circleId` (string, required): The circle ID to delete

### `circles_list_members` (~49 tokens)

List Circle Members

List all members of a circle/team. Returns member IDs (needed for removal), user IDs, types, and permission levels.

Input parameters:

- `circleId` (string, required): The circle ID to list members for

### `circles_add_member` (~116 tokens)

Add Circle Member

Add a member to a circle/team. Requires moderator privileges or higher. Member type: 1=user (default), 2=group, 4=mail, 16=circle.

Input parameters:

- `circleId` (string, required): The circle ID to add the member to
- `type` (number): Member type: 1=user (default), 2=group, 4=mail, 8=contact, 16=circle
- `userId` (string, required): The user ID (or entity identifier) to add

### `circles_remove_member` (~70 tokens)

Remove Circle Member

Remove a member from a circle/team. Use circles_list_members to get the memberId. Requires moderator privileges or higher.

Input parameters:

- `circleId` (string, required): The circle ID to remove the member from
- `memberId` (string, required): The member ID (from circles_list_members), not the user ID

### `circles_search` (~30 tokens)

Search Circles

Search for circles/teams by name.

Input parameters:

- `term` (string, required): Search term to match against circle names

### `list_bookmarks` (~150 tokens)

List Bookmarks

List bookmarks from Nextcloud Bookmarks app. Supports search, tag filtering, folder filtering, sorting, and pagination.

Input parameters:

- `folder` (number): Filter by folder ID (-1 for root)
- `limit` (number): Max bookmarks to return (default 10)
- `page` (number): Page number for pagination (starts at 0)
- `search` (string): Search term to filter bookmarks by title/URL/description
- `sortby` (string): Sort field
- `tags` (array): Filter by tags (e.g. ['tech', 'news'])
- `unavailable` (boolean): Only show unavailable bookmarks
- `untagged` (boolean): Only show bookmarks without tags

### `get_bookmark` (~30 tokens)

Get Bookmark

Get full details of a single bookmark by its ID.

Input parameters:

- `id` (number, required): The bookmark ID

### `create_bookmark` (~96 tokens)

Create Bookmark

Create a new bookmark in Nextcloud Bookmarks. URL is required; title, description, tags, and folders are optional.

Input parameters:

- `description` (string): Bookmark description
- `folders` (array): Folder IDs to place the bookmark in
- `tags` (array): Tags to assign (e.g. ['tech', 'reference'])
- `title` (string): Bookmark title
- `url` (string, required): The URL to bookmark

### `update_bookmark` (~88 tokens)

Update Bookmark

Update an existing bookmark. Only provided fields are changed.

Input parameters:

- `description` (string): New description
- `folders` (array): New folder IDs (replaces existing folders)
- `id` (number, required): The bookmark ID to update
- `tags` (array): New tags (replaces existing tags)
- `title` (string): New title
- `url` (string): New URL

### `delete_bookmark` (~33 tokens)

Delete Bookmark

Delete a bookmark by its ID. This action is irreversible.

Input parameters:

- `id` (number, required): The bookmark ID to delete

### `list_bookmark_folders` (~59 tokens)

List Bookmark Folders

List the bookmark folder hierarchy. Returns a tree structure of all folders.

Input parameters:

- `layers` (number): Maximum depth of folder levels to return
- `root` (number): Root folder ID to start from (-1 for top level, default)

### `get_bookmark_folder_contents` (~61 tokens)

Get Bookmark Folder Contents

Get the contents of a bookmark folder (bookmarks and subfolders).

Input parameters:

- `id` (number, required): The folder ID (-1 for root)
- `layers` (number): Depth of subfolder levels to include (default 0 = direct children only)

### `create_bookmark_folder` (~42 tokens)

Create Bookmark Folder

Create a new bookmark folder.

Input parameters:

- `parent_folder` (number): Parent folder ID (-1 for root, default)
- `title` (string, required): Folder name

### `update_bookmark_folder` (~61 tokens)

Update Bookmark Folder

Update a bookmark folder (rename or move to a different parent).

Input parameters:

- `id` (number, required): The folder ID to update
- `parent_folder` (number): New parent folder ID (-1 for root)
- `title` (string): New folder name

### `delete_bookmark_folder` (~36 tokens)

Delete Bookmark Folder

Delete a bookmark folder and all its contents. This action is irreversible.

Input parameters:

- `id` (number, required): The folder ID to delete

### `list_bookmark_tags` (~17 tokens)

List Bookmark Tags

List all tags used across bookmarks.

### `rename_bookmark_tag` (~47 tokens)

Rename Bookmark Tag

Rename a bookmark tag. All bookmarks with the old tag will be updated.

Input parameters:

- `new_name` (string, required): New tag name
- `old_name` (string, required): Current tag name

### `delete_bookmark_tag` (~35 tokens)

Delete Bookmark Tag

Delete a bookmark tag. The tag will be removed from all bookmarks.

Input parameters:

- `name` (string, required): Tag name to delete

### `list_polls` (~37 tokens)

List Polls

List all polls the current user can access (own, shared, or public). Returns id, title, type, owner, and status.

### `get_poll` (~43 tokens)

Get Poll

Get full details of a poll by ID: configuration, owner, status, and current user state.

Input parameters:

- `pollId` (integer, required): Poll ID (from list_polls)

### `create_poll` (~61 tokens)

Create Poll

Create a new poll. Type "textPoll" for text options (e.g. lunch choices), "datePoll" for date/time options (e.g. meeting scheduling).

Input parameters:

- `title` (string, required): Poll title
- `type` (string, required): Poll type

### `update_poll` (~175 tokens)

Update Poll

Update a poll configuration. Only provided fields are changed. Set expire to 0 for no expiration, or a unix timestamp to auto-close on that date.

Input parameters:

- `access` (string)
- `allowComment` (boolean)
- `allowMaybe` (boolean)
- `allowProposals` (boolean)
- `anonymous` (boolean)
- `autoReminder` (boolean)
- `description` (string)
- `expire` (integer): Unix timestamp; 0 = no expiration; negative = close immediately
- `hideBookedUp` (boolean)
- `maxVotesPerOption` (integer)
- `maxVotesPerUser` (integer)
- `pollId` (integer, required): Poll ID
- `showResults` (string)
- `title` (string)
- `useNo` (boolean)

### `delete_poll` (~29 tokens)

Delete Poll

Permanently delete a poll. This cannot be undone.

Input parameters:

- `pollId` (integer, required): Poll ID

### `close_poll` (~29 tokens)

Close Poll

Close a poll immediately so no further votes are accepted.

Input parameters:

- `pollId` (integer, required): Poll ID

### `reopen_poll` (~29 tokens)

Reopen Poll

Reopen a previously closed poll so voting can resume.

Input parameters:

- `pollId` (integer, required): Poll ID

### `clone_poll` (~35 tokens)

Clone Poll

Clone an existing poll, copying its configuration and options into a new poll.

Input parameters:

- `pollId` (integer, required): Poll ID to clone

### `list_poll_options` (~33 tokens)

List Poll Options

List all options for a poll, with vote tallies per option.

Input parameters:

- `pollId` (integer, required): Poll ID

### `add_text_poll_option` (~64 tokens)

Add Text Poll Option

Add a text option to a textPoll (e.g. "Pizza", "Sushi"). Use add_date_poll_option for datePolls.

Input parameters:

- `pollId` (integer, required): Poll ID (must be a textPoll)
- `text` (string, required): Option text

### `add_date_poll_option` (~130 tokens)

Add Date Poll Option

Add a date/time option to a datePoll. Provide startAt as ISO-8601 (e.g. "2026-05-12T14:00:00Z") and durationSeconds (e.g. 3600 for 1 hour).

Input parameters:

- `durationSeconds` (integer, required): Duration in seconds (0 = single point in time)
- `pollId` (integer, required): Poll ID (must be a datePoll)
- `startAt` (string, required): Start date/time as ISO-8601 (e.g. "2026-05-12T14:00:00Z")

### `delete_poll_option` (~34 tokens)

Delete Poll Option

Delete an option from a poll by option ID.

Input parameters:

- `optionId` (integer, required): Option ID (from list_poll_options)

### `list_poll_votes` (~33 tokens)

List Poll Votes

List all votes for a poll. Anonymous polls redact voters' identities.

Input parameters:

- `pollId` (integer, required): Poll ID

### `vote_on_poll` (~76 tokens)

Vote on Poll

Cast or change your vote on a poll option. setTo: "yes" to vote yes, "no" to vote no, "maybe" for a tentative yes (only if allowed).

Input parameters:

- `optionId` (integer, required): Option ID to vote on (from list_poll_options)
- `setTo` (string, required): Vote value

### `list_poll_comments` (~26 tokens)

List Poll Comments

List all comments on a poll.

Input parameters:

- `pollId` (integer, required): Poll ID

### `add_poll_comment` (~41 tokens)

Add Poll Comment

Post a comment on a poll (requires comments to be enabled).

Input parameters:

- `message` (string, required): Comment text
- `pollId` (integer, required): Poll ID

### `delete_poll_comment` (~34 tokens)

Delete Poll Comment

Delete one of your poll comments by comment ID.

Input parameters:

- `commentId` (integer, required): Comment ID (from list_poll_comments)

### `list_poll_shares` (~37 tokens)

List Poll Shares

List all shares (public link, user invitations, email invitations) for a poll.

Input parameters:

- `pollId` (integer, required): Poll ID

### `add_poll_share` (~115 tokens)

Add Poll Share

Share a poll. type="public" creates a public link (no extra fields). type="user" invites a Nextcloud user (requires userId). type="email" invites by email (requires userId=email address, displayName).

Input parameters:

- `displayName` (string): Display name (required for type=email)
- `pollId` (integer, required): Poll ID
- `type` (string, required): Share type
- `userId` (string): Nextcloud user ID (for type=user) or email address (for type=email)

### `delete_poll_share` (~39 tokens)

Delete Poll Share

Revoke a poll share by its token (obtained from list_poll_shares or add_poll_share).

Input parameters:

- `token` (string, required): Share token

### `set_poll_subscription` (~58 tokens)

Set Poll Subscription

Subscribe or unsubscribe the current user to poll notifications (new votes, comments). Use subscribe=true to subscribe, false to unsubscribe.

Input parameters:

- `pollId` (integer, required): Poll ID
- `subscribe` (boolean, required): true to subscribe, false to unsubscribe

### `list_forms` (~57 tokens)

List Forms

List forms. type="owned" (default) returns forms the current user owns; "shared" returns forms shared with them; "partial" returns forms the user has an unfinished draft on.

Input parameters:

- `type` (string): Form list scope

### `get_form` (~41 tokens)

Get Form

Get full details for a form by ID, including questions, options, shares, and metadata.

Input parameters:

- `formId` (integer, required): Form ID (from list_forms)

### `create_form` (~36 tokens)

Create Form

Create a new empty form. Returns the new form ID. Use update_form to set title/description and create_form_question to add questions.

### `clone_form` (~38 tokens)

Clone Form

Clone an existing form (its questions, options, and settings) into a new form.

Input parameters:

- `formId` (integer, required): Form ID to clone

### `update_form` (~128 tokens)

Update Form

Update form properties. Only provided fields are changed. state: 0=active, 1=closed, 2=archived. expires=0 disables expiration.

Input parameters:

- `allowEditSubmissions` (boolean)
- `description` (string)
- `expires` (integer): Unix timestamp; 0 = no expiration
- `formId` (integer, required): Form ID
- `isAnonymous` (boolean)
- `showExpiration` (boolean)
- `state`
- `submissionMessage` (string)
- `submitMultiple` (boolean)
- `title` (string)

### `transfer_form_owner` (~55 tokens)

Transfer Form Ownership

Transfer ownership of a form to another Nextcloud user. The new owner must have access to the Forms app.

Input parameters:

- `formId` (integer, required): Form ID
- `ownerId` (string, required): User ID of the new owner

### `delete_form` (~34 tokens)

Delete Form

Permanently delete a form and all of its submissions. This cannot be undone.

Input parameters:

- `formId` (integer, required): Form ID

### `list_form_questions` (~30 tokens)

List Form Questions

List all questions for a form, in display order.

Input parameters:

- `formId` (integer, required): Form ID

### `create_form_question` (~77 tokens)

Create Form Question

Add a question to a form. For choice questions use type "multiple" (checkbox), "multiple_unique" (radio), or "dropdown" — then call create_form_options.

Input parameters:

- `formId` (integer, required): Form ID
- `text` (string): Question text (optional at creation)
- `type` (string, required): Question type

### `update_form_question` (~102 tokens)

Update Form Question

Update question properties (text, requirement, type, etc.). Only provided fields are changed.

Input parameters:

- `extraSettings` (object): Question-type-specific settings (e.g. validationRegex, allowedFileTypes)
- `formId` (integer, required): Form ID
- `isRequired` (boolean)
- `name` (string): Internal name / shortcode
- `questionId` (integer, required): Question ID
- `text` (string)
- `type` (string)

### `reorder_form_questions` (~55 tokens)

Reorder Form Questions

Reorder all questions in a form. Pass the full list of question IDs in the desired order.

Input parameters:

- `formId` (integer, required): Form ID
- `newOrder` (array, required): Full list of question IDs in desired order

### `delete_form_question` (~36 tokens)

Delete Form Question

Delete a question from a form.

Input parameters:

- `formId` (integer, required): Form ID
- `questionId` (integer, required): Question ID

### `create_form_options` (~68 tokens)

Create Form Options

Add one or more options to a choice question (multiple/multiple_unique/dropdown). Pass an array of option texts.

Input parameters:

- `formId` (integer, required): Form ID
- `optionTexts` (array, required): One or more option texts to create
- `questionId` (integer, required): Question ID

### `update_form_option` (~65 tokens)

Update Form Option

Update a choice option's text (and optionally its order).

Input parameters:

- `formId` (integer, required): Form ID
- `optionId` (integer, required): Option ID
- `order` (integer)
- `questionId` (integer, required): Question ID
- `text` (string)

### `reorder_form_options` (~66 tokens)

Reorder Form Options

Reorder all options for a choice question. Pass the full list of option IDs in the desired order.

Input parameters:

- `formId` (integer, required): Form ID
- `newOrder` (array, required): Full list of option IDs in desired order
- `questionId` (integer, required): Question ID

### `delete_form_option` (~47 tokens)

Delete Form Option

Delete an option from a choice question.

Input parameters:

- `formId` (integer, required): Form ID
- `optionId` (integer, required): Option ID
- `questionId` (integer, required): Question ID

### `create_form_share` (~127 tokens)

Create Form Share

Share a form. type="user" shares with a Nextcloud user (shareWith=userId), "group" with a group (shareWith=groupId), "link" creates a public link (shareWith is the generated hash, omit it at creation).

Input parameters:

- `formId` (integer, required): Form ID
- `permissions` (array): Permissions to grant. Defaults to ["submit"] if omitted.
- `shareWith` (string): User ID (type=user) or group ID (type=group). Omit for type=link.
- `type` (string, required): Share type

### `update_form_share` (~52 tokens)

Update Form Share

Update the permissions on an existing form share.

Input parameters:

- `formId` (integer, required): Form ID
- `permissions` (array, required): New permission set
- `shareId` (integer, required): Share ID (from get_form)

### `delete_form_share` (~35 tokens)

Delete Form Share

Revoke a form share.

Input parameters:

- `formId` (integer, required): Form ID
- `shareId` (integer, required): Share ID

### `list_form_submissions` (~83 tokens)

List Form Submissions

List submissions for a form. Supports free-text search (query) and pagination (limit/offset). Only form owners/admins see all submissions.

Input parameters:

- `formId` (integer, required): Form ID
- `limit` (integer): Max submissions to return
- `offset` (integer): Offset for pagination
- `query` (string): Free-text search across answer values

### `get_form_submission` (~39 tokens)

Get Form Submission

Get a single submission with all of its answers.

Input parameters:

- `formId` (integer, required): Form ID
- `submissionId` (integer, required): Submission ID

### `create_form_submission` (~114 tokens)

Create Form Submission

Submit answers to a form. `answers` is an object keyed by question ID; values are always arrays. For text questions: ["My answer"]. For choice questions: [optionId1, optionId2] (numeric IDs). Public links require `shareHash`.

Input parameters:

- `answers` (object, required): Object keyed by question ID; each value is an array of strings or option IDs
- `formId` (integer, required): Form ID
- `shareHash` (string): Share hash — required when submitting via a public link

### `delete_form_submission` (~36 tokens)

Delete Form Submission

Delete a single submission by ID.

Input parameters:

- `formId` (integer, required): Form ID
- `submissionId` (integer, required): Submission ID

### `delete_all_form_submissions` (~39 tokens)

Delete All Form Submissions

Delete every submission for a form. The form itself is kept. This cannot be undone.

Input parameters:

- `formId` (integer, required): Form ID

### `export_form_submissions` (~86 tokens)

Export Form Submissions

Export a form's submissions as a spreadsheet into the user's Nextcloud storage. Returns the destination path. Use read_file / get_file_info afterwards to work with the export.

Input parameters:

- `fileFormat` (string, required): Export file format
- `formId` (integer, required): Form ID
- `path` (string, required): Target folder path inside the user's Nextcloud (e.g. "/Exports")

### `get_text_workspace` (~69 tokens)

Get Text Workspace

Get metadata of the Text workspace file (Readme.md) for a folder. Returns the file's id, name, mimetype and path, or reports that no workspace exists yet.

Input parameters:

- `path` (string, required): Folder path relative to the user's root (e.g. '/Projects/Acme')

### `read_text_workspace` (~62 tokens)

Read Text Workspace

Read the content of a folder's Text workspace file (Readme.md). Returns markdown text, or a 'no workspace' message if none exists.

Input parameters:

- `path` (string, required): Folder path relative to the user's root (e.g. '/Projects/Acme')

### `write_text_workspace` (~76 tokens)

Write Text Workspace

Create or overwrite a folder's Text workspace file. If a workspace already exists, its existing filename is reused; otherwise Readme.md is created at the folder root.

Input parameters:

- `content` (string, required): Markdown content to write
- `path` (string, required): Folder path relative to the user's root (e.g. '/Projects/Acme')

### `delete_text_workspace` (~61 tokens)

Delete Text Workspace

Delete the Text workspace file (Readme.md) for a folder. The folder itself is kept. No-op if the folder has no workspace.

Input parameters:

- `path` (string, required): Folder path relative to the user's root (e.g. '/Projects/Acme')

### `get_text_workspace_edit_url` (~90 tokens)

Get Text Workspace Edit URL

Get a one-shot direct-edit URL for a folder's Text workspace. Opens the live collaborative editor in a browser. The Readme.md is created automatically if it does not exist yet. Hand the URL to a human collaborator — the MCP server does not participate in the editing session.

Input parameters:

- `path` (string, required): Folder path relative to the user's root (e.g. '/Projects/Acme')

### `list_text_tasks` (~49 tokens)

List Text Tasks

List AI task types available in Nextcloud's TaskProcessing framework (summarize, headline, image-to-text, text-to-image, …). Shows which task types have at least one provider configured.

### `process_text` (~140 tokens)

Process Text with AI

Submit a text-processing task to Nextcloud's AI framework and return the task ID. Use get_task_result to poll until it completes. Common task types: 'core:text2text' (free prompt), 'core:summarize' (summary), 'core:headline' (headline), 'core:extract_topics' (topics).

Input parameters:

- `customId` (string): Optional identifier to tag the task for later retrieval
- `input` (string, required): The text to process
- `taskType` (string, required): Task type ID (e.g. 'core:summarize', 'core:headline', 'core:extract_topics', 'core:text2text')

### `get_task_result` (~69 tokens)

Get AI Task Result

Get the status and result of a Nextcloud AI task previously created by process_text or generate_image. Status: 1=scheduled, 2=running, 3=successful, 4=failed.

Input parameters:

- `taskId` (number, required): The task ID returned by process_text or generate_image

### `generate_image` (~97 tokens)

Generate Image

Generate an image from a text prompt using Nextcloud's text-to-image AI provider (e.g. Stable Diffusion via LocalAI). Returns the task ID; use get_task_result to check completion.

Input parameters:

- `prompt` (string, required): Text description of the image to generate
- `savePath` (string): Optional Nextcloud path to save the generated image (e.g. '/Photos/generated.png'). If omitted, only the task ID is returned.

### `translate_text` (~94 tokens)

Translate Text

Translate text between languages using Nextcloud's configured translation provider. If called without text, returns available language pairs.

Input parameters:

- `fromLanguage` (string): Source language code (e.g. 'en', 'de', 'fr')
- `text` (string): Text to translate. Omit to list available language pairs.
- `toLanguage` (string): Target language code (e.g. 'en', 'de', 'fr')

### `get_user_status` (~48 tokens)

Get User Status

Get the current user's presence status (online, away, DND, invisible, custom message)

Input parameters:

- `userId` (string): User ID to check (defaults to the configured Nextcloud user)

### `set_user_status` (~39 tokens)

Set User Status

Set the current user's status type (online, away, dnd, invisible, offline)

Input parameters:

- `statusType` (string, required): Status type to set

### `set_user_status_message` (~81 tokens)

Set User Status Message

Set a custom status message with optional emoji icon and auto-clear time

Input parameters:

- `clearAt` (number): Unix timestamp when the message should auto-clear (null = never)
- `message` (string, required): Custom status message text
- `statusIcon` (string): Status emoji icon (e.g. "☕", "🏠", "🤒")

### `clear_user_status_message` (~18 tokens)

Clear User Status Message

Clear the current user's custom status message

### `list_user_statuses` (~43 tokens)

List User Statuses

List all users' statuses for team presence visibility

Input parameters:

- `limit` (number): Maximum number of statuses to return
- `offset` (number): Offset for pagination

### `list_notifications` (~16 tokens)

List Notifications

List all notifications for the current user

### `get_notification` (~27 tokens)

Get Notification

Get details of a specific notification by ID

Input parameters:

- `id` (number, required): The notification ID

### `mark_notification_read` (~33 tokens)

Mark Notification as Read

Mark a notification as read (deletes it)

Input parameters:

- `id` (number, required): The notification ID to mark as read

### `delete_all_notifications` (~17 tokens)

Delete All Notifications

Delete all notifications for the current user

### `list_activity` (~128 tokens)

List Activity

List recent entries from the Nextcloud activity feed (file changes, shares, comments, calendar/contact edits, etc.) for the current user.

Input parameters:

- `filter` (string): Which feed to read: 'all' (default), 'self' (your own actions), or 'by' (others' actions)
- `limit` (number): Maximum number of activities to return (default 50)
- `since` (number): Return activities after this activity_id (for pagination)
- `sort` (string): Sort order by time: 'desc' (newest first, default) or 'asc'

### `get_object_activity` (~97 tokens)

Get Object Activity

List the activity history for a single object, e.g. one file. Use object_type 'files' with a file ID to see what happened to that file.

Input parameters:

- `limit` (number): Maximum number of activities to return (default 50)
- `object_id` (string, required): The object ID (e.g. the Nextcloud file ID)
- `object_type` (string): The object type to filter by (default 'files')

### `list_announcements` (~54 tokens)

List Announcements

List announcements from the Nextcloud Announcement Center (org-wide notices such as maintenance windows, events, or news). Returns newest first.

Input parameters:

- `offset` (number): Return announcements before this offset (for pagination, default 0)

### `create_announcement` (~200 tokens)

Create Announcement

Create a new announcement in the Announcement Center. This is visible to all or selected groups and can trigger notifications/emails — use deliberately. Requires the configured Nextcloud user to be an admin.

Input parameters:

- `activities` (boolean): Publish to the activity feed (default true)
- `comments` (boolean): Allow comments (default true)
- `deleteTime` (number): Unix timestamp (seconds) to automatically delete the announcement
- `emails` (boolean): Send emails (default false)
- `groups` (array): Group IDs to target, or ['everyone'] for all users (default)
- `message` (string, required): The announcement body (Markdown supported)
- `notifications` (boolean): Send notifications (default true)
- `plainMessage` (string): Plain-text version of the message (defaults to message)
- `scheduleTime` (number): Unix timestamp (seconds) to publish the announcement later
- `subject` (string, required): The announcement title (kept short)

### `delete_announcement` (~39 tokens)

Delete Announcement

Delete an announcement by its ID. Requires the configured Nextcloud user to be an admin.

Input parameters:

- `id` (number, required): The announcement ID to delete

### `get_registration_settings` (~53 tokens)

Get Registration Settings

Read the Nextcloud Registration app settings (self-service signup configuration), such as allowed email domains, whether admin approval is required, and the default group for new users. Requires the configured Nextcloud user to be an admin.

### `update_registration_settings` (~72 tokens)

Update Registration Settings

Update one or more Nextcloud Registration app settings. Boolean settings use the strings 'yes'/'no'; allowed_domains takes a JSON array string (e.g. '["example.com"]'). Requires the configured Nextcloud user to be an admin.

Input parameters:

- `settings` (array, required): One or more key/value pairs to update

### `reset_registration_setting` (~52 tokens)

Reset Registration Setting

Reset a Nextcloud Registration app setting to its default by deleting the stored value. Requires the configured Nextcloud user to be an admin.

Input parameters:

- `key` (string, required): The Registration config key to reset to its default

### `get_terms_of_service` (~69 tokens)

Get Terms of Service

Read the Nextcloud Terms of Service admin configuration: all published terms (by country/language), the enforcement settings (tos_for_users, tos_on_public_shares), and the valid country and language codes that can be used when setting terms. Requires the configured Nextcloud user to be an admin.

### `set_terms_of_service` (~137 tokens)

Set Terms of Service

Create or update the terms of service for a given country/language pair. If terms already exist for that pair they are replaced, otherwise new terms are created. Use get_terms_of_service to discover valid country/language codes; an invalid code returns an error (HTTP 417). Requires the configured Nextcloud user to be an admin.

Input parameters:

- `body` (string, required): The terms text (markdown: headers, formatting, lists, links)
- `countryCode` (string): 2-letter region code, or "--" for global (default)
- `languageCode` (string, required): 2-letter language code (e.g. "en")

### `delete_terms_of_service` (~50 tokens)

Delete Terms of Service

Delete a single terms of service entry by its id (see get_terms_of_service). Requires the configured Nextcloud user to be an admin.

Input parameters:

- `id` (number, required): The terms id to delete

### `reset_terms_signatures` (~52 tokens)

Reset Terms Signatures

Reset ALL users' terms of service signatures org-wide, forcing every user to accept the terms again on next login. This is destructive and cannot be undone. Requires the configured Nextcloud user to be an admin.

### `update_terms_settings` (~89 tokens)

Update Terms Settings

Update the Terms of Service enforcement settings: whether logged-in users must accept the terms (tos_for_users) and whether the terms apply to public shares (tos_on_public_shares). Requires the configured Nextcloud user to be an admin.

Input parameters:

- `tosForUsers` (boolean): Require logged-in users to accept the terms
- `tosOnPublicShares` (boolean): Apply the terms to public shares

### `list_recommendations` (~52 tokens)

List Recommendations

List files Nextcloud recommends for the configured user (e.g. recently or frequently accessed, recently shared, or files in active folders), including the reason each file is recommended. Respects the user's recommendations setting.

### `generate_social_share_links` (~125 tokens)

Generate Social Share Links

Generate social-network share URLs (email, X/Twitter, Facebook, Telegram, WhatsApp, Bluesky, Diaspora) for an existing Nextcloud public-link share. Only networks whose socialsharing_<network> app is enabled are returned. Provide either share_id or path.

Input parameters:

- `networks` (array): Optional filter, e.g. ["twitter","email"]. Defaults to all enabled networks.
- `path` (string): File/folder path; its public-link share is used (must already exist)
- `share_id` (number): ID of an existing public-link share

## Diagnostics

Captured diagnostic sections: Provenance. The full working is on the page: https://verifymcp.io/servers/elgorro-aiquila-mcp/ghcr-io-elgorro-aiquila-mcp-0-4-11#diagnostics

## Score history

- 2026-09-20: 36
- 2026-09-19: 36
- 2026-09-18: 36
- 2026-09-17: 36
- 2026-09-16: 36
- 2026-09-15: 36
- 2026-09-14: 36
- 2026-09-13: 36

## Common questions

### What is the AIquila — Nextcloud MCP Server server?

AIquila — Nextcloud MCP Server is listed in the public MCP registry as io.github.elgorro/aiquila-mcp. Nextcloud MCP server, files, calendar, contacts, mail, maps, notes, tasks & 120+ more tools. This page covers its container image (ghcr.io/elgorro/aiquila-mcp:0.4.11).

### Is the AIquila — Nextcloud MCP Server server safe to use?

AIquila — Nextcloud MCP Server scores 36 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the AIquila — Nextcloud MCP Server server expose?

AIquila — Nextcloud MCP Server exposes 316 tools: list_files, read_file, write_file, create_folder, delete, and 311 more. Their descriptions and schemas cost roughly 20,947 tokens of context every time the server is loaded.

### Is the AIquila — Nextcloud MCP Server server still maintained?

AIquila — Nextcloud MCP Server is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the AIquila — Nextcloud MCP Server server under?

AIquila — Nextcloud MCP Server declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- Changelog RSS feed: https://verifymcp.io/servers/elgorro-aiquila-mcp/ghcr-io-elgorro-aiquila-mcp-0-4-11.xml
- Changelog JSON feed: https://verifymcp.io/servers/elgorro-aiquila-mcp/ghcr-io-elgorro-aiquila-mcp-0-4-11.json
- HTML version of this page: https://verifymcp.io/servers/elgorro-aiquila-mcp/ghcr-io-elgorro-aiquila-mcp-0-4-11
