nextcloud-mcp
The nextcloud-mcp server provides a FastMCP interface for Nextcloud, exposing administrative occ commands, OCS provisioning, and WebDAV file operations as agent-driven tools.
System Administration (occ tools)
Check Nextcloud status (version, maintenance mode, instance ID)
Get or set maintenance mode
List, enable, or disable apps
Read and write system or app-specific config values
Scan filesystem to update file cache; clean orphaned cache entries
Database maintenance: add missing indices, convert filecache IDs to bigint
Query background job mode or trigger a worker run
Check for available core/app updates and run security advisory checks
Rebuild or reset the full-text search index (OpenSearch)
List configured external storage mounts
Verify push notification connectivity
Tail the Nextcloud log file
Run overall system health checks
User & Group Management (OCS Provisioning)
List, create, enable, or disable user accounts
Create groups and add users to them
Generate app passwords for users
File Operations (WebDAV)
List files/directories, download (base64), upload (base64), move/rename, and delete files or directories
Share Management
Create user, group, or public-link shares with configurable permissions and expiration dates
List existing shares (optionally filtered by path)
Delete shares by ID
Additional: Optional Vault integration for credential brokering and OTLP telemetry support.
Provides tools for Nextcloud administration including occ commands (version check, maintenance mode, app management, config read/write, file scan, database maintenance, background jobs, FTS indexing, security advisory check, log tail, system health), OCS provisioning (user and group management, app password generation), and WebDAV file operations (list, get, put, move, delete files; create/list/delete shares).
Allows fetching credentials from HashiCorp Vault instead of environment variables for configuration, enabling secure credential management.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@nextcloud-mcplist all Nextcloud users"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
nextcloud-mcp
FastMCP server for Nextcloud — exposes occ admin commands, OCS provisioning,
and WebDAV file operations as MCP tools.
Overview
nextcloud-mcp wraps three Nextcloud API surfaces:
occadmin — CLI commands executed viadocker execinside the Nextcloud container. Covers version/health, maintenance mode, app management, config, file scanning, database maintenance, background jobs, FTS indexing, external storage, and log tailing.OCS Provisioning API — HTTP-based user and group management, plus app password generation.
WebDAV + Share API — per-user file list/get/put/move/delete, and share create/list/delete.
Intended for homelab and self-hosted operators who want agent-driven Nextcloud administration.
occ and OCS tools are restricted to privileged agents; WebDAV/share tools are available
per-agent with per-call credentials.
Related MCP server: nextcloud-mcp
Tools
occ Admin (17 tools)
Tool | Description | Key Parameters | Returns |
| Nextcloud version, maintenance state, instance ID | — |
|
| Get or set maintenance mode |
|
|
| List apps or enable/disable one |
|
|
| Read a system or per-app config value |
|
|
| Write a system or per-app config value |
|
|
| Scan filesystem and update file cache |
|
|
| Remove orphaned file cache entries | — |
|
| Add missing database indices | — |
|
| Convert filecache IDs to bigint | — |
|
| Query job mode or trigger a worker run |
|
|
| Check for available core or app updates | — |
|
| Run security advisory check against known CVEs | — |
|
| Rebuild full-text search index (OpenSearch) |
|
|
| List configured external storage mounts | — |
|
| Verify push notification connectivity | — |
|
| Return last N lines of nextcloud.log |
|
|
| Run overall system health check | — |
|
config_setcan break Nextcloud — alwaysconfig_getbefore writing.fulltextsearch_index --resetwipes the OpenSearch index; takes time on large instances.
OCS Provisioning (6 tools)
Tool | Description | Key Parameters | Returns |
| List users, optionally filtered |
|
|
| Create a new user account |
|
|
| Enable or disable a user |
|
|
| Create a user group |
|
|
| Add user to a group |
|
|
| Generate an app password via occ |
|
|
app_password_createreturns the password exactly once — store it in Vault immediately.
WebDAV + Shares (8 tools)
WebDAV tools authenticate as the calling agent's own Nextcloud user (pass username/password
per call). Share tools authenticate as the admin user — required for cross-user share management.
Tool | Description | Key Parameters | Returns |
| List files/directories at a path |
|
|
| Download a file |
|
|
| Upload a file |
|
|
| Move or rename a file/directory |
|
|
| Delete a file or directory |
|
|
| Create a share (user/group/public link) |
|
|
| List shares, optionally by path |
|
|
| Delete a share by ID |
|
|
WebDAV paths are relative to the user's file root — no leading slash needed.
dav_get/dav_put use base64 encoding for binary content.
Environment Variables
Variable | Required | Default | Purpose |
| Yes | — | Nextcloud base URL (e.g. |
| No |
| Docker container name for |
| No |
| Admin username for OCS and share tools |
| Yes* | — | Admin app password (*unless Vault is configured) |
| No | — | Vault address (enables credential brokering) |
| No | — | Vault token (required when |
| No |
| Vault KV v2 path for admin credentials |
| No | — | OTLP trace endpoint (e.g. |
| No |
| Log verbosity |
FastMCP transport (HTTP mode):
Variable | Default | Purpose |
|
| Set to |
|
| Bind port (HTTP mode) |
|
| Bind host (HTTP mode) |
Installation
Prerequisites: Python 3.11+, Docker (for occ tools)
pip install nextcloud-mcpOr from source:
git clone https://github.com/TadMSTR/nextcloud-mcp.git
cd nextcloud-mcp
python3 -m venv .venv
.venv/bin/pip install -e .With optional OTLP telemetry:
pip install 'nextcloud-mcp[telemetry]'Quickstart:
NEXTCLOUD_URL=https://nextcloud.example.com \
NEXTCLOUD_ADMIN_PASSWORD=<app-password> \
nextcloud-mcpDeployment
PM2
Use ecosystem.config.js in the repo root:
# Create env file
mkdir -p /opt/appdata/nextcloud-mcp
cat > /opt/appdata/nextcloud-mcp/env <<'EOF'
NEXTCLOUD_URL=https://nextcloud.example.com
NEXTCLOUD_CONTAINER=nextcloud
NEXTCLOUD_ADMIN_USER=admin
NEXTCLOUD_ADMIN_PASSWORD=<app-password>
FASTMCP_TRANSPORT=streamable-http
FASTMCP_PORT=8500
FASTMCP_HOST=127.0.0.1
OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317
EOF
chmod 600 /opt/appdata/nextcloud-mcp/env
# Load env and start
export $(grep -v '^#' /opt/appdata/nextcloud-mcp/env | xargs)
pm2 start ecosystem.config.js
pm2 saveAdmin app password
Generate a Nextcloud app password for the admin account:
Log in to Nextcloud as admin
Settings → Security → Devices & sessions → Create new app password, label it
mcp-admin
Or via occ after initial setup with a temporary password.
scoped-mcp wiring
Example ~/.claude/manifests/nextcloud-mcp.yaml:
name: nextcloud-mcp
port: 8500
grants:
sysadmin:
tools: "*"
developer:
tools: [dav_list, dav_get, dav_put, dav_move, dav_delete, share_create, share_list, share_delete]
research:
tools: [dav_list, dav_get, share_list]
writer:
tools: [dav_list, dav_get, dav_put, share_create, share_list]
security:
tools: [dav_list, occ_status, security_check, log_tail]Vault integration (optional)
When NEXTCLOUD_VAULT_ADDR and NEXTCLOUD_VAULT_TOKEN are set, admin credentials are
fetched from Vault at call time instead of env vars:
# Store credentials (KV v2 — path includes /data/)
vault kv put secret/nextcloud/admin username=admin password=<app-password>NEXTCLOUD_VAULT_ADDR=http://127.0.0.1:8200
NEXTCLOUD_VAULT_TOKEN=<token>
NEXTCLOUD_VAULT_ADMIN_PATH=secret/data/nextcloud/adminPer-agent file access
Each agent should use its own Nextcloud account and app password, passed per-call to
dav_* and share_* tools. Generate app passwords via:
app_password_create(username="agent-developer", label="forge-developer")Store the returned password in Vault immediately — it is not logged or stored by this server.
Observability
Logs: structlog JSON to stdout. Level controlled by
LOG_LEVEL.Traces: set
OTEL_EXPORTER_OTLP_ENDPOINT(gRPC); requiresnextcloud-mcp[telemetry].occ arg redaction:
--valuearguments are replaced with[REDACTED]in log output.
Forge deployment
See docs/forge.md for the full forge setup walkthrough: venv install, PM2, scoped-mcp manifest details, and Vault credential brokering.
License
MIT
Available Tools
31 toolsapp_manageA
List all apps or enable/disable a specific app by name.
| Name | Required | Description | Default |
|---|---|---|---|
| app | No | ||
| action | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the actions (list, enable, disable) without explaining the effects (e.g., immediate vs. requiring restart, permissions needed, or what 'enable/disable' entails). The description does not mention side effects, prerequisites, or limitations, leaving significant behavioral transparency gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no redundant words. It efficiently communicates the tool's purpose and actions. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the tool has only two parameters (one required, one optional with enum) and an output schema exists, a brief description may be adequate. However, the description lacks any mention of prerequisites, error conditions, or scope of the 'list' operation (e.g., system-wide or user-specific). It is minimally complete but misses opportunities to add helpful context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds meaning by clarifying the 'action' parameter's enum values (list, enable, disable) and that 'app' is specified by name. However, it does not provide details like the format of the app name or whether the 'app' parameter is required for enable/disable (implied but not explicit). This is helpful but not comprehensive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's dual function: 'List all apps' and 'enable/disable a specific app by name.' It identifies the specific resource (apps) and the actions, making the purpose unambiguous. There are no sibling tools with overlapping functionality, so differentiation is not an issue.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (list or manage a specific app) but provides no explicit guidance on when to use this tool versus alternatives, nor any when-not-to-use conditions. Since there are no directly competing siblings, the lack of exclusions is less critical, but the description does not proactively guide the agent on context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
app_password_createA
Generate an app password for a user via occ. Returns the password to the caller — never stored or logged by this server. Store it securely (e.g. Vault) immediately after receiving it.
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | agent | |
| username | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses that the password is returned only once and never stored/logged, which is critical. Missing details on authentication or rate limits, but the key behavioral trait is well communicated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action, no redundant information. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers core functionality and security note. With an output schema (not shown), return values are assumed documented. Minor gaps: no mention that username must exist, but that is reasonable to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but description only indirectly mentions 'for a user' (mapping to username). The label parameter is not described at all, leaving the agent without guidance on its purpose or default behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it generates an app password for a user via occ, with a specific verb and resource. It distinguishes from siblings like user_create or app_manage by focusing on app password generation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context on when to use (when needing an app password) and includes security instructions (store securely). However, it does not explicitly exclude alternatives or state prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
background_jobsA
Query background job mode ('mode') or trigger a worker run ('run'). 'run' executes one pass of the background job queue.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | mode |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It explains that 'run' executes one pass of the queue, indicating a one-time trigger. However, it does not disclose potential side effects like resource consumption or whether the mode query is read-only. The description adds some behavioral context but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loading the two actions with no superfluous words. Every sentence is essential and adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (single parameter with two enum values) and that an output schema exists, the description covers the basic functionality. It could mention what the mode query returns or what a 'pass' means, but it is still complete enough for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description fully explains the enum parameter 'action': 'mode' queries the mode, 'run' triggers a run. This adds complete meaning beyond the enum names in the schema, compensating for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states two specific actions: querying the background job mode and triggering a worker run. The verb 'Query' and 'trigger' are distinct, and the resource 'background job' is named. It differentiates between the two modes well, and there is no confusion with sibling tools as they are unrelated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use each action: 'mode' for querying and 'run' for triggering a worker execution. However, it does not provide context on when to prefer this tool over others or any exclusions, but for its simple scope it is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
config_getB
Read a system or per-app config value. app_name required when scope='app'.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| scope | Yes | ||
| app_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the tool is a read operation (non-destructive), but does not disclose what happens if the key is missing, whether permissions are needed, or any side effects. Minimal behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one sentence with a necessary condition. No redundant words, no filler. Front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters (2 required) and an output schema, the description covers the basic functionality but omits important context like what scope options exist, how to find valid keys, or what the output looks like (though output schema exists, reducing burden). Adequate for a simple tool but could be richer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so description must add meaning. It adds that app_name is required when scope='app', which clarifies a conditional dependency. However, it does not explain the meaning of the 'scope' enum values or what 'key' represents. Marginal improvement over bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool reads a system or per-app config value, using precise verb 'Read' and resource 'config value'. It distinguishes from write tools like config_set, but not from other read tools like dav_get, though the resource type is different.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a condition ('app_name required when scope='app'') but lacks explicit guidance on when to use this tool versus alternatives, such as when to use system vs app scope, or why not to use config_set. No mention of prerequisites or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
config_setA
Write a system or per-app config value. Incorrect values can break Nextcloud — prefer config_get before changing.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| scope | Yes | ||
| value | Yes | ||
| app_name | No | ||
| value_type | No | string |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Warns that incorrect values can break Nextcloud, indicating potential destructiveness. But with no annotations, it lacks details on authentication, side effects, or error states, leaving some behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first states purpose, second adds critical warning. No wasted words, front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having 5 parameters and no schema descriptions, the description omits parameter explanations and output format. The warning is helpful but insufficient for a potentially destructive tool with many options.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description should explain parameters but only hints at 'scope' via 'system or per-app'. Does not clarify 'key', 'value', 'app_name', or 'value_type' meaning or formatting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool writes config values, distinguishing system vs per-app scope. The warning to prefer config_get before changing also differentiates it from the sibling config_get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises using config_get before writing to avoid breaking Nextcloud, providing clear usage context. However, it does not mention non-usage scenarios or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dav_deleteC
Delete a file or directory from the user's WebDAV space.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| password | Yes | ||
| username | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It states deletion but does not disclose irreversibility, required permissions, error handling, or side effects. The description is too minimal to provide adequate behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no unnecessary words. However, it may be too brief given the complexity of the tool and the sensitivity of parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has three security-sensitive parameters (username, password), but the description provides no context about authentication, error scenarios, or return values despite an output schema existing. The description is insufficient for safe and correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not elaborate on any of the three parameters (username, password, path). No guidance on formats, constraints, or usage beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (delete), the resource (file or directory), and the location (user's WebDAV space). It effectively distinguishes from sibling tools like dav_get, dav_list, dav_move, and dav_put.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor does it mention prerequisites or constraints. The description only states the action without any contextual hints for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dav_getA
Download a file. Returns base64-encoded content.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| password | Yes | ||
| username | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full burden; it states the action and output format (base64) but does not disclose potential limitations, error conditions, or authentication requirements beyond the parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence of 7 words, no redundancy. Every word adds value: action, output format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite a simple purpose, the description omits details about input parameters, error handling, return value structure (though output schema exists), and prerequisite conditions. Not fully adequate for a 3-required-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description fails to explain the parameters (username, password, path) beyond their names. It does not compensate for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Download' and resource 'file', clearly distinguishing it from sibling tools like dav_delete, dav_list, etc. The additional note about returning base64-encoded content further clarifies the tool's output.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly indicates when to use the tool (to download a file) but provides no explicit guidance on when not to use it, such as for directories or large files, nor does it mention alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dav_listB
List files/directories at a WebDAV path for the given user. Returns raw WebDAV XML (PROPFIND response).
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ||
| password | Yes | ||
| username | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so description carries full burden. It specifies the return format (raw WebDAV XML) and implies a read-only operation (listing). It does not disclose auth requirements beyond the parameters, but the parameters themselves (username/password) hint at authentication needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, no redundant information. The key information (list, path, user, return format) is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return value explanation is not required. However, with 3 parameters and 0% schema coverage, the description is incomplete. Also, no usage guidelines or behavioral details beyond return format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning description does not elaborate on parameters. While 'path' is implied as the WebDAV path, username and password are not explained. The description adds no meaning beyond the input schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists files/directories at a WebDAV path and returns raw WebDAV XML. It uses a specific verb ('List'), identifies the resource (files/directories), and distinguishes from sibling tools like dav_get or dav_delete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. Among 30+ siblings, there is no indication of when dav_list is appropriate or when another tool like files_scan or external_storage_list might be better.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dav_moveC
Move or rename a file or directory within the user's WebDAV space.
| Name | Required | Description | Default |
|---|---|---|---|
| dst | Yes | ||
| src | Yes | ||
| password | Yes | ||
| username | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose behavioral traits such as authentication requirements, overwrite behavior, or side effects. With no annotations, the description carries the full burden but provides minimal information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and direct. However, it is too brief to be adequately informative, somewhat under-specifying the tool's scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 4 required parameters, no schema descriptions, no annotations, and a minimal description, the tool is severely under-documented. The description fails to explain the operation's inputs or behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no meaning to the parameters. It does not explain what src and dst represent (e.g., full paths, allowed formats) or the role of username and password.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Move or rename') and clearly identifies the resource ('file or directory within the user's WebDAV space'). It distinguishes from sibling tools like dav_delete, dav_get, dav_list, and dav_put.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs. alternatives (e.g., dav_put for upload or dav_delete for removal). No prerequisites or context for usage are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dav_putA
Upload a file. content_b64 must be base64-encoded bytes. Creates the file if it does not exist, overwrites if it does.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| password | Yes | ||
| username | Yes | ||
| content_b64 | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behaviors. It clearly states the tool creates or overwrites files and that content_b64 must be base64-encoded. This covers key mutation traits, though it omits permissions, error handling, or size limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, very concise, and front-loads the purpose. Every sentence adds value without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose and core behaviors, but missing details on authentication parameters (username, password) and path reduce completeness. An output schema exists, so return values are handled, but auth guidance is lacking for a 4-param tool with no annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 4 parameters with 0% description coverage. The description only adds meaning for content_b64 (base64 required) but leaves username, password, and path unexplained, failing to compensate for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Upload a file', which is a specific verb and resource. It also explains the behavior (creates/overwrites) and the content format (base64), distinguishing it from sibling DAV operations like dav_delete, dav_get, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for uploading files but does not explicitly state when to use this tool versus alternatives (e.g., dav_get for download, dav_delete for removal). No when-not-to-use or prerequisite guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
db_add_missing_indicesA
Add missing database indices. Safe to run at any time; recommended after upgrades.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries burden. It indicates safety but lacks details on whether tables are locked, duration, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the main action, every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with an output schema, the description is complete: states purpose, safety, and recommended timing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters with 100% schema coverage; description adds no param info but purpose is clear. Baseline 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Add missing database indices' - specific verb and resource. However, it does not differentiate from sibling database tools like db_convert_bigint.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context 'Safe to run at any time; recommended after upgrades' which implies when to use, but no explicit exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
db_convert_bigintB
Convert filecache IDs to bigint. Required after large installs or major upgrades.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavioral traits. It only states the conversion action but fails to mention potential side effects like downtime, performance impact, or whether it's safe to run concurrently.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences, no filler, and front-loads the action. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and an output schema, the description should explain the return value, idempotency, or prerequisites. It only provides usage timing, missing crucial context for a database conversion tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, and schema coverage is 100%. The description adds no parameter info, but this is acceptable as the schema already indicates no inputs. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Convert filecache IDs to bigint', specifying the verb and resource. It distinguishes from sibling tools like db_add_missing_indices by focusing on a specific ID conversion, though it could explicitly differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides usage context: 'Required after large installs or major upgrades.' This tells when to use the tool but lacks when-not-to-use guidance or alternative tools, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
external_storage_listA
List configured external storage mounts as JSON.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description indicates a read-only operation ('List'), which is transparent, but with no annotations, it fails to disclose potential authorization needs or side effects. Adequate for a simple list, but could be more explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no extraneous content. Efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and existence of output schema, the description is complete for this simple listing tool. No additional context needed from description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so baseline of 4 applies. Schema coverage is 100% trivially; description adds no parameter info but none is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'List' and resource 'configured external storage mounts', and output format 'as JSON'. It distinguishes from sibling tools which cover different functionalities like file scanning or user management.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives or any prerequisites. For a simple listing tool, implicit usage might suffice, but explicit context is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
files_cleanupA
Remove orphaned file cache entries.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden but only states removal. It fails to disclose potential risks like irreversibility, required permissions, or impact on performance. The output schema exists but is not leveraged to explain behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no unnecessary words. It is efficiently front-loaded and fits well within the MCP definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and an output schema, the description is minimally adequate but lacks behavioral details such as reversibility, safety implications, or what triggers orphaned entries. More context would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the schema coverage is effectively 100%. The description does not need to elaborate on parameters, and the baseline for no parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Remove' and the specific resource 'orphaned file cache entries,' making the tool's purpose unambiguous. It differentiates from sibling file tools like files_scan and dav_* by targeting orphaned cache cleanup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like files_scan or other maintenance tools. There is no mention of prerequisites, side effects, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
files_scanB
Scan the filesystem and update the file cache. Provide path (e.g. 'alice/files/Documents') or set all_users=True.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ||
| all_users | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It mentions 'Scan' and 'update the file cache' but does not clarify whether the operation is destructive, requires permissions, or has side effects like being long-running or triggering re-indexing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences, front-loading the main action. Every sentence adds value, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (2 optional parameters) and the existence of an output schema, the description is adequate but incomplete for a cache-updating scan. It does not mention return behavior, potential duration, or prerequisites like admin privileges.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds essential meaning: it explains the path parameter with an example ('alice/files/Documents') and clarifies that all_users is a boolean flag. This goes beyond the bare schema which only has types and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Scan' and the resource 'filesystem' and explains the result 'update the file cache'. It distinguishes from sibling tools like 'files_cleanup' by its specific action, but does not explicitly contrast them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides basic usage context by explaining the two modes (provide path or set all_users=True) and gives an example for path. However, it does not specify when to use this tool versus alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fulltextsearch_indexA
Rebuild the full-text search index (OpenSearch). Set reset=True to wipe the index before reindexing.
| Name | Required | Description | Default |
|---|---|---|---|
| reset | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the rebuild action and the wipe behavior of reset, but omits important details such as whether the operation is long-running, requires maintenance mode, locks resources, or requires specific permissions. This is minimal disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, consisting of two sentences with no wasted words. The first sentence clearly states the core function, and the second sentence adds the optional behavior. This is perfectly front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists, the description need not explain return values. However, the tool's description lacks context about the scope of reindexing (all content?), potential impact on system performance, and prerequisites. It is adequate but not thorough for a potentially impactful administrative tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. For the single parameter 'reset', the description explains its purpose ('wipe the index before reindexing'), adding significant value beyond the schema's type-only definition. No other parameters exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool rebuilds the full-text search index, specifying the underlying technology (OpenSearch). The verb 'Rebuild' combined with the resource 'full-text search index' is specific and distinct from any sibling tools, none of which relate to search indexing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a brief usage note for the reset parameter but does not provide explicit guidance on when to use the tool (e.g., after configuration changes, index corruption). Since there are no sibling search tools, the usage context is implied but not fully articulated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
group_add_memberC
Add a user to an existing Nextcloud group.
| Name | Required | Description | Default |
|---|---|---|---|
| group_id | Yes | ||
| username | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description lacks any behavioral details such as idempotency, error handling, or side effects. It only says 'Add a user' without disclosing what happens if the user already exists or if the group doesn't exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (single sentence), but it lacks structure and additional information that would help the agent. It could be longer to include important details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of annotations and output schema information in the description, and the 0% schema coverage, the description is inadequate. It does not address return values, error scenarios, or usage constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, and the description does not explain the parameters 'group_id' and 'username' beyond their names. The agent gets no additional meaning from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Add a user to an existing Nextcloud group.' It specifies the verb 'Add' and the resources 'user' and 'group', and distinguishes from sibling tools like group_create or user_create.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, or prerequisites (e.g., group must exist, user must exist). The description only states the action without usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
group_createC
Create a new Nextcloud user group.
| Name | Required | Description | Default |
|---|---|---|---|
| group_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It does not mention what happens if the group already exists, required permissions, or any side effects. The creation mutation is implied but not elaborated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence. While it contains no wasted words, it sacrifices completeness. A slightly longer description would be justified given the simplicity of the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and presence of an output schema, the description covers the basic purpose but lacks behavioral and prerequisite context. It is adequate for a minimal understanding but insufficient for correct invocation in complex scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter group_id has no description coverage in the schema. The description does not explain expected format, naming conventions, or constraints (e.g., uniqueness, character limits). The meaning is largely inferred from the parameter name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and the specific resource ('Nextcloud user group'). This directly distinguishes it from tools like user_create or group_add_member, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as group_add_member or user_create. The context of group creation and potential prerequisites (e.g., whether the group must not already exist) are missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
log_tailA
Return the last N lines of nextcloud.log.
| Name | Required | Description | Default |
|---|---|---|---|
| lines | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description effectively indicates that the tool performs a read-only operation by stating 'Return'. It does not mention permissions or side effects, but for a simple read operation, this is sufficiently transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no fluff. It communicates the core functionality efficiently and is front-loaded with the verb.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity, a single-parameter schema, and the presence of an output schema, the description is largely complete. It could mention default behavior, but that is covered by the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description clarifies that the 'lines' parameter determines the number of lines returned, but it does not provide additional constraints or format details. Since schema coverage is 0%, the description adds some value but remains minimal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb ('Return') and explicitly names the resource ('nextcloud.log'). It is unambiguous and distinguishes the tool from siblings since no other sibling tool targets log reading.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool (for viewing log tail), but it does not explicitly state when not to use it or mention alternative tools. Given that no sibling tool serves a similar purpose, the guidance is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
maintenance_modeA
Get or set maintenance mode. Omit enable to query current state; pass True/False to change it.
| Name | Required | Description | Default |
|---|---|---|---|
| enable | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations were provided, and the description does not disclose behavioral traits such as required permissions, side effects (e.g., disabling user access when enabled), or any other consequences beyond the state change.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences deliver all necessary information without redundancy. The action is stated first, followed by usage details, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the output schema exists, the description lacks details about the response format or confirmation. For a state-changing tool, more context about effects and requirements would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden. It explains the parameter's dual role: omitting it for query and providing a boolean to set. This adds critical meaning absent from the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get or set' and the resource 'maintenance mode', distinctly identifying the tool's purpose. Among sibling tools, it is the only one dedicated to maintenance mode, making differentiation straightforward.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance: omit 'enable' to query current state, pass True/False to change it. This clarifies the parameter usage, though it does not mention when not to use the tool or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notify_push_selftestB
Run the notify_push self-test to verify push notification connectivity.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It does not mention side effects, safety, or whether the test is destructive. The user is left to assume it is a harmless diagnostic, but this is not stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no filler. It efficiently conveys the action and purpose without any waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and an output schema exists (not shown), the description is minimally adequate. However, it lacks behavioral context such as whether the test modifies state, which for a test tool is likely not the case. More detail would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters, so schema coverage is 100% trivially. The description does not add any meaning beyond the schema because there is nothing to add. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Run' and the resource 'notify_push self-test' with the explicit purpose to 'verify push notification connectivity.' It distinguishes itself from sibling tools, none of which are self-tests.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives or any prerequisites. Usage is implied only by the tool's name and purpose, but no explicit context or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
occ_statusA
Return Nextcloud version, maintenance state, and instance ID.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It lists what is returned but does not disclose behavioral traits such as read-only nature, permissions needed, or side effects. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, well-structured sentence that immediately conveys the tool's function. No unnecessary words or information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no parameters and an output schema, so the description's explanation of return values (version, maintenance state, instance ID) is sufficient for a simple status tool. However, it lacks mention of any prerequisites or context, which would be useful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the baseline is 4. The description correctly indicates no inputs are needed, matching the schema. No additional parameter detail is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns specific status data (version, maintenance state, instance ID). This distinguishes it from sibling tools like app_manage or background_jobs, which have different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for checking instance status but lacks explicit guidance on when to use it versus alternatives like security_check or log_tail. No when-not-to-use or comparison provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
security_checkB
Run Nextcloud security advisory check against known CVEs.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description fails to disclose behavioral traits such as whether the tool is read-only, what it modifies, or what the output looks like. For a tool with no annotations, the description carries the full burden of transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, grammatically correct sentence with no superfluous words. It is efficiently front-loaded with the key action and target.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the basic purpose adequately for a tool with no parameters. However, given that an output schema exists (signal indicates 'true'), the description does not mention what the tool returns, leaving the agent to infer from the schema alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema already fully describes the input. The description adds no parameter information, but the baseline for 0 parameters is 4 since no compensation is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'run' and resource 'Nextcloud security advisory check against known CVEs'. It effectively distinguishes this tool from siblings like system_check and upgrade_check by specifying the focus on security CVEs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives (e.g., system_check). There is no mention of use cases, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
system_checkB
Run an overall Nextcloud system health check.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It says 'system health check' but gives no details on what exactly is checked, whether it is read-only, or any side effects. This is insufficient for safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and front-loaded. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description is too minimal. It does not explain what the health check covers or what kind of output to expect, leaving the agent underinformed for a potentially important diagnostic tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema covers all. The description adds no parameter information, but none is needed. A baseline of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool runs a Nextcloud system health check. It uses a specific verb and resource, and distinguishes itself from sibling tools that perform more specific administrative or maintenance tasks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites or contexts where another tool would be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upgrade_checkB
Check for available Nextcloud core or app updates.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry full burden. It implies a read-only check but does not explicitly state idempotency, safety, or network access behavior. Minimal disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words. Front-loaded with verb and resource. Perfectly concise for the information conveyed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a simple check with no parameters and an output schema. However, it could benefit from mentioning typical use cases (e.g., before upgrade). Minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters in input schema; description does not need to add parameter information. Baseline 4 is appropriate as there is nothing to document beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Check' and resource 'Nextcloud core or app updates'. It is specific and distinct from sibling tools like 'system_check', though the term 'available' could be more explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance provided on when to use this tool versus alternatives (e.g., 'system_check' or 'app_manage'). The description lacks any contextual usage hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
user_createC
Create a new Nextcloud user account.
| Name | Required | Description | Default |
|---|---|---|---|
| No | |||
| password | Yes | ||
| username | Yes | ||
| display_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It does not mention potential side effects, error conditions (e.g., duplicate username), or permissions required. Only the verb 'Create' implies mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. However, it may be slightly under-specified given the tool has 4 parameters and no param descriptions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the core action is clear, the description lacks contextual information like uniqueness of username, admin requirements, or typical failure modes. The presence of an output schema partially compensates for missing return value explanation, but overall completeness is adequate with gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage for parameters, and the description does not elaborate on any parameter. It adds no meaning beyond the schema structure, leaving the agent to guess constraints or optionality.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create a new Nextcloud user account' uses a specific verb and resource, clearly indicating the tool's function. It distinguishes from sibling tools like user_disable and user_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, prerequisites, or scenarios where it should be avoided. The description provides no usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
user_disableB
Enable or disable a Nextcloud user. disable=True to disable, False to re-enable.
| Name | Required | Description | Default |
|---|---|---|---|
| disable | No | ||
| username | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description only explains the effect of the disable parameter. It does not disclose side effects on user data or sessions, nor authorization requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: one sentence that gets straight to the point. Every word is necessary and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simple purpose and the presence of an output schema, the description is adequate but lacks usage context and behavioral details. It does not mention admin scope or reversibility.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description adds meaning to the disable boolean. However, the username parameter is left without explanation beyond its name, and its format is not specified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool enables or disables a Nextcloud user, with a specific verb and resource. It distinguishes itself from sibling tools like user_create or user_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like user_delete or changing group membership. No context on prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
user_listB
List Nextcloud users. Optionally filter by search string.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| search | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden for behavioral disclosure. It implies a read-only operation but doesn't confirm authentication requirements, rate limits, or whether it returns all users or only visible ones.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the purpose. Every word is necessary and there is no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool, the description covers the core purpose and one parameter. However, it lacks details on pagination and output structure, though an output schema likely exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must explain parameters. It only describes 'search' as an optional filter, leaving 'limit' and 'offset' unexplained despite their role in pagination.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and resource 'Nextcloud users', distinguishing it from sibling tools like user_create or user_disable. The optional filter by search is also mentioned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It does not mention any prerequisites, limitations, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
31 tool updates
v0.1.0- First observed
app_manage - First observed
app_password_create - First observed
background_jobs - First observed
config_get - First observed
config_set - First observed
dav_delete - First observed
dav_get - First observed
dav_list - First observed
dav_move - First observed
dav_put - First observed
db_add_missing_indices - First observed
db_convert_bigint - First observed
external_storage_list - First observed
files_cleanup - First observed
files_scan - First observed
fulltextsearch_index - First observed
group_add_member - First observed
group_create - First observed
log_tail - First observed
maintenance_mode - First observed
notify_push_selftest - First observed
occ_status - First observed
security_check - First observed
share_create - First observed
share_delete - First observed
share_list - First observed
system_check - First observed
upgrade_check - First observed
user_create - First observed
user_disable - First observed
user_list
TDQS
Each tool targets a distinct resource and action (e.g., user_create, dav_get, share_list), with no overlapping purposes. Even combined tools like app_manage are clearly described and separate from others.
Most tools follow a resource_action pattern with underscores (user_create, config_get), but a few like background_jobs and occ_status are noun-based, causing minor inconsistency. Overall readable and predictable.
With 31 tools, the count exceeds the 25+ threshold and feels heavy for a single server. While Nextcloud is a complex system, many tools could be consolidated or are too granular.
The set covers major areas (users, groups, shares, DAV, apps, config, maintenance) but lacks delete operations for users/groups and update for shares. External storage is only listable, leaving notable gaps.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
An MCP server that let you interact with Cycloid.io Internal Development Portal and Platform
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceExposes a live Nextcloud instance as an MCP server by dynamically creating tools from OpenAPI definitions of installed apps. Enables natural language interaction with Nextcloud apps like files sharing, provisioning, and calendar management.6-
- FlicenseBqualityDmaintenanceMCP server integrating Nextcloud services (tasks, calendar, notes, email, files, Deck) for AI assistant interaction.201-
- AlicenseNot gradedqualityCmaintenanceAn MCP server that exposes Nextcloud APIs as tools for AI assistants, enabling management of files, calendar, contacts, conversations, and more.1MIT
- FlicenseNot gradedqualityAmaintenanceA MCP server for accessing Nextcloud Collectives, allowing MCP clients to list, read, and edit collectives, their pages, and tags.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/TadMSTR/nextcloud-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server