Skip to main content
Glama
abdullahMASHUK

nextcloud-mcp-server

๏ปฟ

๐ŸŒ NextCloud MCP Server

npm version Downloads License: MIT TypeScript

A professional Model Context Protocol (MCP) server for seamless NextCloud integration

Empower your AI agents with comprehensive NextCloud file management and sharing capabilities

Installation โ€ข Quick Start โ€ข Features โ€ข Documentation โ€ข Security


๐Ÿš€ Features

๐Ÿ“ File Management

๐Ÿ”— Sharing

๐Ÿ”’ Security

๐Ÿ› ๏ธ Developer Experience

List, upload, download

Public links

App passwords

Full TypeScript support

Create directories

User/group shares

Environment variables

Comprehensive tests

Delete files/folders

Password protection

Secure authentication

Professional documentation

Move and rename

Expiration dates

HTTPS enforcement

Easy integration

โœจ Key Capabilities

  • ๐ŸŽฏ 14 Comprehensive Tools - Complete file operations and sharing management

  • ๐Ÿ” Enhanced Security - Built-in app password support and best practices

  • ๐Ÿ—๏ธ Professional Architecture - TypeScript-first with full type safety

  • ๐Ÿ“š Rich Documentation - Detailed guides and examples

  • ๐Ÿ”„ WebDAV Integration - Native NextCloud protocol support

  • โšก High Performance - Optimized for speed and reliability

  • ๐ŸŒ Universal Compatibility - Works with any NextCloud instance


Related MCP server: Nextcloud MCP Server

๐Ÿ“ฆ Installation

# Install globally for CLI usage
npm install -g nextcloud-mcp-server

# Or install locally in your project
npm install nextcloud-mcp-server

From Source

git clone https://github.com/abdullahMASHUK/nextcloud-mcp-server.git
cd nextcloud-mcp-server
npm install
npm run build

๐Ÿš€ Quick Start

For enhanced security, create a dedicated app password:

  1. Navigate to NextCloud Settings

    NextCloud โ†’ Settings โ†’ Security โ†’ App passwords
  2. Create New App Password

    • Enter name: MCP Server

    • Click "Create new app password"

    • Copy the generated password: xxxxx-xxxxx-xxxxx-xxxxx-xxxxx

  3. Why App Passwords?

    • โœ… Limited scope and permissions

    • โœ… Can be revoked independently

    • โœ… No access to your main account

    • โœ… Auditable access logs

2. โš™๏ธ Configuration

# Copy the environment template
cp .env.example .env

Edit your .env file:

NEXTCLOUD_URL=https://your-nextcloud-server.com
NEXTCLOUD_USERNAME=your-username
NEXTCLOUD_PASSWORD=your-app-password-here  # Use app password!

3. ๐ŸŽฎ Usage with MCP Clients

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "nextcloud": {
      "command": "nextcloud-mcp-server",
      "env": {
        "NEXTCLOUD_URL": "https://your-nextcloud-server.com",
        "NEXTCLOUD_USERNAME": "your-username",
        "NEXTCLOUD_PASSWORD": "your-app-password"
      }
    }
  }
}
# Run the MCP server
nextcloud-mcp-server

# Or with Node.js
node build/index.js

๐Ÿ› ๏ธ Available Tools

๐Ÿ“ File Operations

๐Ÿ”— Sharing Operations


๐Ÿ“– Documentation

๐ŸŽฏ Tool Examples

{
  "name": "list-files",
  "arguments": {
    "path": "/Documents"
  }
}

Response: Returns array of files with metadata (name, size, type, modification date)

{
  "name": "upload-file",
  "arguments": {
    "remotePath": "/documents/report.pdf",
    "content": "JVBERi0xLjQK..."  // base64 encoded content
  }
}
{
  "name": "move-file",
  "arguments": {
    "sourcePath": "/old-location/document.pdf",
    "destinationPath": "/new-location/document.pdf",
    "overwrite": false
  }
}

Response: Confirmation message with source and destination paths

{
  "name": "copy-file",
  "arguments": {
    "sourcePath": "/Documents/template.docx",
    "destinationPath": "/Projects/new-document.docx",
    "overwrite": true
  }
}

Response: Confirmation message with copy operation details

{
  "name": "search-files",
  "arguments": {
    "query": "quarterly report",
    "path": "/Documents",
    "limit": 20,
    "type": "file"
  }
}

Response: Array of matching files with full metadata

Type Options: file, directory, all

{
  "name": "get-file-versions",
  "arguments": {
    "path": "/Documents/important-document.pdf"
  }
}

Response: Array of file versions with timestamps, sizes, and user information

{
  "name": "restore-file-version",
  "arguments": {
    "path": "/Documents/important-document.pdf",
    "versionId": "1672531200"
  }
}

Response: Confirmation of version restoration

{
  "name": "create-share",
  "arguments": {
    "path": "/Documents/presentation.pptx",
    "shareType": 3,
    "password": "secure123",
    "expireDate": "2024-12-31",
    "note": "Shared for team review"
  }
}

Share Types:

  • 0 - User share

  • 1 - Group share

  • 3 - Public link

  • 4 - Email share

๐Ÿ—๏ธ Development

# Clone and install
git clone https://github.com/abdullahMASHUK/nextcloud-mcp-server.git
cd nextcloud-mcp-server
npm install

# Development commands
npm run dev          # Run with auto-reload
npm run build        # Build TypeScript
npm run test         # Run test suite
npm run lint         # Check code quality
npm run format       # Format code

Project Structure:

src/
โ”œโ”€โ”€ index.ts              # Main MCP server
โ”œโ”€โ”€ services/
โ”‚   โ””โ”€โ”€ nextcloud.ts      # NextCloud API client
โ”œโ”€โ”€ types.ts              # TypeScript definitions
โ””โ”€โ”€ utils/                # Utility functions

__tests__/                # Test suites
build/                    # Compiled output

๐Ÿ”’ Security

๐Ÿ›ก๏ธ Best Practices

โœ… Do

โŒ Don't

Use app passwords

Use main account password

Store in environment variables

Hardcode credentials

Use HTTPS URLs

Use HTTP connections

Rotate passwords regularly

Keep old passwords

Monitor access logs

Ignore security events

๐Ÿ” Security Features

  • ๐Ÿ”‘ App Password Integration - Dedicated authentication tokens

  • ๐ŸŒ HTTPS Enforcement - Secure connections required

  • ๐Ÿ“ Environment Variables - Safe credential storage

  • ๐Ÿ” Error Handling - No credential exposure in logs

  • ๐Ÿ›ก๏ธ Permission Scoping - Limited access rights

โš ๏ธ Security Checklist

  • App password created and configured

  • HTTPS enabled on NextCloud server

  • Environment variables properly set

  • .env file added to .gitignore

  • Regular password rotation scheduled


License

MIT License - see LICENSE file for details.

๐Ÿค Contributing

We Welcome Contributions!

Contributors Welcome PRs Welcome

  1. ๐Ÿด Fork the repository

  2. ๐ŸŒฟ Create your feature branch

    git checkout -b feature/amazing-feature
  3. ๐Ÿ’ป Make your changes

  4. โœ… Add tests for new features

  5. ๐Ÿงช Run the test suite

    npm run test
    npm run lint
  6. ๐Ÿ“ Commit your changes

    git commit -m "โœจ Add amazing feature"
  7. ๐Ÿš€ Push to your branch

    git push origin feature/amazing-feature
  8. ๐Ÿ”„ Open a Pull Request

๐Ÿ’ก Ways to Contribute


๐Ÿ’– Support

Show Your Support! โญ

If this project helped you, please consider giving it a โญ on GitHub!

GitHub stars GitHub forks

๐Ÿ—ฃ๏ธ Get Help

๐Ÿ”— Connect With Us

GitHub npm


๐Ÿ“œ License

MIT License ยฉ 2024 Abdullah MASHUK

License: MIT

Permission is hereby granted, free of charge, to any person obtaining a copy of this software...

๐Ÿ“– Read Full License


๐Ÿ“ˆ Changelog

๐ŸŽ‰ v1.0.3

  • ๐ŸŽจ Beautified README with professional formatting and visual enhancements

  • ๐Ÿ“Š Added interactive tables, badges, and collapsible sections

  • ๐Ÿ‘ค Updated author information and git configuration

  • ๐Ÿ”— Enhanced navigation with emojis and better organization

  • โœจ Improved user experience for npm and GitHub viewers

๐Ÿš€ v1.0.2

  • โœจ Enhanced documentation and README

  • ๐Ÿ”’ Added comprehensive security guidelines

  • ๐Ÿ“ Improved TypeScript definitions

  • ๐Ÿ› Bug fixes and stability improvements

๐Ÿš€ v1.0.1

  • ๐Ÿ“š Updated documentation

  • ๐Ÿ”ง Configuration improvements

  • ๐Ÿ› ๏ธ Build process optimization

๐ŸŒŸ v1.0.0

  • ๐ŸŽŠ Initial release

  • ๐Ÿ“ Basic file operations (list, upload, download, delete)

  • ๐Ÿ”— Share management (create, list, delete)

  • ๐Ÿ”ง TypeScript implementation

  • โœ… Comprehensive test coverage

  • ๐Ÿ“– Full documentation


Made with โค๏ธ by Abdullah MASHUK

Building bridges between NextCloud and AI assistants ๐ŸŒ‰

Built with TypeScript Powered by MCP

Available Tools

14 tools
copy-fileB

Copy a file or directory in NextCloud

ParametersJSON Schema
NameRequiredDescriptionDefault
sourcePathYesPath of the file or directory to copy
destinationPathYesDestination path for the copy
overwriteNoWhether to overwrite if destination exists

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, and the description does not disclose behavioral traits such as whether directory copies are recursive, the effect of the overwrite flag, or any permission requirements. The description is minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no redundant information. Every word is necessary to convey the basic purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of output schema and annotations, the description is insufficient. It does not explain important aspects like recursive copy behavior, conflict handling, or return values, which leaves the agent with gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for all three parameters. However, the tool description adds no additional meaning beyond what the schema already provides, so it meets the baseline but does not exceed it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Copy'), the resource ('file or directory'), and the context ('NextCloud'). It is a specific verb+resource pair that distinguishes it from sibling tools like move-file or delete-file.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 move-file (which would move instead of copy) or other file operations. The description lacks context on use cases or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create-directoryB

Create a new directory in NextCloud

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath of the directory to create

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description is minimal. It does not disclose whether the operation creates intermediate directories, what happens if the directory already exists, or any permission requirements. The description carries full burden but adds little 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that efficiently conveys the tool's purpose. It is front-loaded and contains no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one required parameter and no output schema, the description is adequate but not complete. It lacks details on behavior regarding parent directories, error states, and return value. It serves as a minimal viable description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds no meaning beyond the input schema. The schema already documents the 'path' parameter with a description. Since schema coverage is 100%, baseline is 3. No extra context is provided about path format or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Create a new directory in NextCloud'. It uses a specific verb ('create') and resource ('directory'), and it is clearly distinguishable from sibling tools which handle files and shares.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 (e.g., parent directory must exist) or scenarios where other tools (e.g., upload-file) would be more appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create-shareB

Create a share link for a file or directory

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath of the file or directory to share
shareTypeNoShare type (0=user, 1=group, 3=public link, 4=email)
shareWithNoUsername, group name, or email to share with (not needed for public links)
permissionsNoPermissions for the share (1=read, 2=update, 4=create, 8=delete, 16=share)
passwordNoPassword protection for the share
expireDateNoExpiration date (YYYY-MM-DD)
noteNoNote for the share

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of disclosing behavior. It does not mention side effects (e.g., sending emails), required permissions, or the outcome of overwriting an existing share. Agents lack crucial 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise, but it lacks depth and important context. It is not front-loaded with critical information; it is efficient but insufficiently informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 7 parameters, no output schema, and no annotations, the description is too minimal. It does not explain the return value, what a share link entails, or any operational details, making it incomplete for effective tool invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds no extra meaning beyond the schema; it merely restates the tool's purpose without enriching parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create') and resource ('share link for a file or directory'), distinguishing it from sibling tools like delete-share or list-shares. It is specific and not a tautology.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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, prerequisites, or when not to use it. The description only states the basic purpose without any contextual cues.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete-fileC

Delete a file or directory from NextCloud

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath of the file or directory to delete

TDQS

C2.8/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, and the description does not disclose behavioral traits such as whether deletion is permanent, if a recycle bin exists, or required permissions. This is a significant gap for a destructive operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence, which is concise but lacks the depth needed to fully inform an agent. It is front-loaded but insufficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool is simple with one parameter and no output schema, the description could be adequate with annotations. However, without any behavioral transparency or usage guidance, it is incomplete for an agent to use safely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a clear description for the 'path' parameter. The tool description does not add new semantic information beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Delete a file or directory from NextCloud', specifying both the action and the resource. This distinguishes it from sibling tools like copy-file or move-file.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 move-file (which might also remove the source). The description lacks explicit context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete-shareB

Delete an existing share

ParametersJSON Schema
NameRequiredDescriptionDefault
shareIdYesID of the share to delete

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; the description lacks critical behavioral details such as whether deletion is irreversible, associated data affected, or required permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, zero waste, front-loaded. Could include more context without sacrificing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive operation with no annotations or output schema, the description is under-specified and lacks completeness about effects and return value.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with adequate parameter description, so description adds no additional value beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'delete' and resource 'share', distinguishing it from sibling tools like create-share and list-shares.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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, nor any prerequisites or exclusions. Usage is implied but not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

download-fileB

Download a file from NextCloud

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath of the file to download

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description fails to disclose any behavioral traits (e.g., read-only operation, auth requirements, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no wasted words. Could be improved by adding usage guidelines, but very concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple download tool with one parameter, description is minimally complete but lacks behavioral context. Could reference output format or permissions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. Description adds no extra meaning beyond schema; path parameter is adequately described in schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'Download' and resource 'file from NextCloud', distinguishing it from sibling tools like upload-file, delete-file, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. Missing context on prerequisites or recommendations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-file-versionsB

Get version history of a file

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath of the file to get versions for

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It only states the purpose without disclosing output format, pagination, or other behavioral traits. The agent cannot infer what the version history contains (e.g., timestamps, authors).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that efficiently states the purpose. It is appropriately short but could be slightly expanded without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description should explain the return value (e.g., list of version metadata). It is incomplete for effective agent use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already describes the single parameter (path) fully (100% coverage). The tool description adds no additional meaning beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (Get) and the resource (version history of a file). It is specific and uses a verb+resource format that distinguishes it from siblings like restore-file-version or download-file.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 like restore-file-version or search-files. There is no mention of context or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list-filesC

List files and directories in NextCloud

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoPath to list (default: /)/

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits. It lacks details such as whether listing is recursive, how many results it returns, error handling (e.g., invalid path), or authentication requirements. This leaves the agent with insufficient information about the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence that is efficient and front-loaded. It earns its place but could be slightly longer to include missing context without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of output schema, the description should explain the return format (e.g., list of file names, full paths). It fails to address this, leaving the agent without a complete picture of the tool's output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (one parameter documented). The description adds no information beyond the schema's own description of the 'path' parameter. Baseline score of 3 applies since the schema already provides adequate semantic meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (list) and resource (files and directories in NextCloud), distinguishing it from sibling tools like copy-file or delete-file. However, it does not specify what the list returns (e.g., names, paths, metadata), which would enhance clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives like search-files or list-shares. For a listing tool, it should indicate when to use it over search, or mention that it lists only top-level contents if no recursion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list-sharesC

List existing shares

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoFilter shares by path (optional)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavior. It states 'List existing shares' implying a read operation, but fails to mention any limits, pagination, or output format, leaving significant gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with no wasted words, but it is also very sparse. It loses a point for lacking structure (e.g., not separating purpose from detail).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a single optional parameter, no output schema, and no annotations, the description is minimally adequate. It does not explain return format, scope, or default behavior, which a complete description should provide.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a description for the 'path' parameter. The tool description does not add any additional meaning beyond the schema, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb and resource. 'List existing shares' unambiguously describes the action and distinguishes from sibling tools like create-share, delete-share, and list-files.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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, when not to use it, or prerequisites. The description is silent on usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

move-fileB

Move or rename a file or directory in NextCloud

ParametersJSON Schema
NameRequiredDescriptionDefault
sourcePathYesCurrent path of the file or directory
destinationPathYesNew path where the file or directory should be moved
overwriteNoWhether to overwrite if destination exists

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description only states the basic action. It does not disclose whether the operation is destructive (original removed), requires specific permissions, or how the overwrite parameter behaves beyond what the schema implies.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, direct sentence with no wasted words. It is appropriately sized for a straightforward file operation, though it could include more context without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the moderate complexity (3 params, mutation, no output schema), the description is adequate but has gaps: it does not explain behavior on overwrite, relationship to rename, or mention any side effects like overwriting existing files.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds no extra meaning beyond the parameter names and schema descriptions, e.g., it does not explain that rename is achieved by changing the filename in destinationPath.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Move or rename a file or directory in NextCloud' uses a specific verb ('Move or rename') and resource ('file or directory'), clearly distinguishing it from siblings like copy-file, delete-file, and create-directory.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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., copy-file for duplication) or any prerequisites. No when-to-use or when-not-to-use information is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

restore-file-versionB

Restore a specific version of a file

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath of the file to restore
versionIdYesID of the version to restore

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose behavioral traits like whether the operation is destructive, if a new version is created, or required permissions. The agent gains no insight beyond the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no unnecessary words or repetition, perfectly front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple action with two parameters and no output schema, the description provides the essential purpose but lacks behavioral details or usage context. It is adequate but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with both parameters described. The description adds no additional meaning beyond the schema, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Restore a specific version of a file' clearly indicates the action (restore) and the resource (a specific version of a file), effectively distinguishing it from sibling tools like 'get-file-versions' and 'download-file'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. The description offers no context about prerequisites, such as needing to list versions first with 'get-file-versions', 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.

search-filesB

Search for files and directories by name or content

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query string
pathNoDirectory path to search within (optional)
limitNoMaximum number of results to return
typeNoType of items to search forall

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must convey behavioral traits. It does not disclose whether the search is recursive, how content search works (full-text or metadata), or the nature of the operation (presumably read-only). This omission is significant.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with appropriate front-loading, containing no extraneous words. While more detail could be added, brevity is not a flaw here.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (4 parameters, no output schema, no annotations), the description is too minimal. It omits search behavior, result format, and any behavioral constraints, leaving significant gaps for an agent to understand how to use it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already describes all parameters adequately. The description adds no additional meaning beyond the schema's parameter descriptions, providing no extra semantic value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as searching for files and directories by name or content, using a specific verb and resource, and it distinguishes from sibling tools like list-files (which likely lists without search) and operations like copy or delete.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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, no mention of prerequisites, and no exclusions. It simply states the function without contextual usage advice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

test-connectionA

Test connection to NextCloud server

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description should disclose behavioral traits beyond the name. It merely states 'test connection' without explaining what happens (e.g., does it return a boolean, throw errors, or modify state?). Insufficient detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise: a single sentence with no redundant information. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is minimally adequate for a simple connection test, but it omits what the output represents (e.g., success/failure). With no output schema, the description should clarify the return value.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are 0 parameters, so schema coverage is 100%. The description adds no parameter information, but none is needed. Baseline for zero parameters is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Test') and the resource ('connection to NextCloud server'). It is specific and not a tautology, distinguishing it from sibling tools that perform file or share operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. There is no mention of prerequisites, typical use cases, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

upload-fileC

Upload a file to NextCloud

ParametersJSON Schema
NameRequiredDescriptionDefault
remotePathYesRemote path where to upload the file
contentYesBase64 encoded file content

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits but only states a generic upload. It omits critical details like whether existing files are overwritten, size limits, or side effects, providing insufficient transparency for a write operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise but lacks necessary details. It could be more informative without adding length, such as mentioning base64 encoding or overwrite behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity as a write operation with two parameters and no output schema, the description is incomplete. It fails to mention success responses, error conditions, or usage context, leaving significant gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both parameters (remotePath and content). The description adds no extra meaning beyond the schema, so it meets the baseline but does not enhance understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Upload') and resource ('a file to NextCloud'), making the tool's purpose unambiguous. It is distinct from sibling tools like copy-file or download-file, though it lacks specificity about the upload mechanism.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 copy-file or move-file. The description offers no context for selection or prerequisites, leaving the agent to infer usage.

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.

  1. 14 tool updatesv1.1.0
    • First observedcopy-file
    • First observedcreate-directory
    • First observedcreate-share
    • First observeddelete-file
    • First observeddelete-share
    • First observeddownload-file
    • First observedget-file-versions
    • First observedlist-files
    • First observedlist-shares
    • First observedmove-file
    • First observedrestore-file-version
    • First observedsearch-files
    • First observedtest-connection
    • First observedupload-file

TDQS

A3.5/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: file operations are separate from sharing, versioning, and connection testing. No two tools overlap in function.

Naming Consistency5/5

All tool names follow a consistent verb-noun pattern with hyphens (e.g., copy-file, create-share). No mixing of conventions.

Tool Count5/5

14 tools is well-scoped for a NextCloud file management server, covering essential operations without being overwhelming.

Completeness4/5

The tool surface covers core CRUD for files, versioning, and sharing. Minor gap: no update-share tool, but sharing is typically create/delete only.

Maintenance

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables LLMs to interact with Nextcloud instances through 30 tools across Notes, Calendar, Contacts, Tables, and WebDAV file operations, featuring a powerful unified search system for finding files without exact paths.
    26
    37
    AGPL 3.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to interact with Nextcloud instances through secure APIs, supporting operations across Notes, Calendar, Contacts, Files, Deck, Cookbook, and Tables with OAuth2 or Basic Auth.
    2
    AGPL 3.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents and LLMs to perform comprehensive file system operations including CRUD, search, archive, hashing, and duplicate detection via the Model Context Protocol.
    1
    MIT

Latest Blog Posts

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/abdullahMASHUK/nextcloud-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server