WebDAV MCP Server
Provides Docker containerization support for the WebDAV MCP server with configurable environment variables for WebDAV connections and authentication
Supports .env file configuration for WebDAV server settings, authentication credentials, and server configuration parameters
Enables comprehensive file operations on WebDAV servers including CRUD operations, directory management, file searching with glob patterns, range requests, and advanced features like smart editing with diff preview
Provides git-style diff preview functionality for file editing operations, allowing users to preview changes before applying them
Supports JavaScript file operations and searching with glob patterns like '**/*.js', enabling development workflow management on WebDAV servers
Built on Node.js runtime and provides programmatic API for integrating WebDAV operations into Node.js applications
Available as an npm package for global installation and includes utilities like password hash generation for secure authentication
Built with TypeScript for enhanced type safety and includes TypeScript-aware file operations and searching capabilities
Provides proper Unicode support for file operations including accurate multi-byte character handling in range requests and file content operations
Supports Yarn as an alternative package manager for installation and dependency management
Uses Zod for configuration validation, ensuring proper WebDAV server settings and authentication parameters are correctly configured
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., "@WebDAV MCP Serverlist files in the documents folder"
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.
WebDAV MCP Server
A Model Context Protocol (MCP) server that enables CRUD operations on a WebDAV endpoint with basic authentication. This server enables Claude Desktop and other MCP clients to interact with WebDAV file systems through natural language commands.
Features
Connect to any WebDAV server with optional authentication
Perform CRUD operations on files and directories
Expose file operations as MCP resources and tools
Run via stdio transport (for Claude Desktop integration) or HTTP/SSE transport
Secure access with optional basic authentication
Support for bcrypt-encrypted passwords for MCP server authentication (WebDAV passwords must be plain text due to protocol limitations)
Connection pooling for better performance with WebDAV servers
Configuration validation using Zod
Structured logging for better troubleshooting
Related MCP server: Nextcloud MCP Server
Prerequisites
Node.js 18 or later
npm or yarn
WebDAV server (for actual file operations)
Installation
Option 1: Install from npm package
# Global installation
npm install -g webdav-mcp-server
# Or with npx
npx -y @masx200/webdav-mcp-serverOption 2: Clone and build from source
# Clone repository
git clone https://github.com/masx200/webdav-mcp-server.git
cd webdav-mcp-server
# Install dependencies
npm install
# Build the application
npm run buildOption 3: Docker
# Build the Docker image
docker build -t webdav-mcp-server .
# Run the container without authentication
docker run -p 3000:3000 \
-e WEBDAV_ROOT_URL=http://your-webdav-server \
-e WEBDAV_ROOT_PATH=/webdav \
webdav-mcp-server
# Run the container with authentication for both WebDAV and MCP server
docker run -p 3000:3000 \
-e WEBDAV_ROOT_URL=http://your-webdav-server \
-e WEBDAV_ROOT_PATH=/webdav \
-e WEBDAV_AUTH_ENABLED=true \
-e WEBDAV_USERNAME=admin \
-e WEBDAV_PASSWORD=password \
-e AUTH_ENABLED=true \
-e AUTH_USERNAME=user \
-e AUTH_PASSWORD=pass \
webdav-mcp-serverConfiguration
Create a .env file in the root directory with the following variables:
# WebDAV configuration
WEBDAV_ROOT_URL=http://localhost:4080
WEBDAV_ROOT_PATH=/webdav
# WebDAV authentication (optional)
WEBDAV_AUTH_ENABLED=true
WEBDAV_USERNAME=admin
# WebDAV password must be plain text (required when auth enabled)
# The WebDAV protocol requires sending the actual password to the server
WEBDAV_PASSWORD=password
# Server configuration (for HTTP mode)
SERVER_PORT=3000
# Authentication configuration for MCP server (optional)
AUTH_ENABLED=true
AUTH_USERNAME=user
AUTH_PASSWORD=pass
AUTH_REALM=MCP WebDAV Server
# Auth password for MCP server can be a bcrypt hash (unlike WebDAV passwords)
# AUTH_PASSWORD={bcrypt}$2y$10$CyLKnUwn9fqqKQFEbxpZFuE9mzWR/x8t6TE7.CgAN0oT8I/5jKJByEncrypted Passwords for MCP Server Authentication
For enhanced security of the MCP server (not WebDAV connections), you can use bcrypt-encrypted passwords instead of storing them in plain text:
Generate a bcrypt hash:
# Using the built-in utility npm run generate-hash -- yourpassword # Or with npx npx webdav-mcp-generate-hash yourpasswordAdd the hash to your .env file with the {bcrypt} prefix:
AUTH_PASSWORD={bcrypt}$2y$10$CyLKnUwn9fqqKQFEbxpZFuE9mzWR/x8t6TE7.CgAN0oT8I/5jKJBy
This way, your MCP server password is stored securely. Note that WebDAV passwords must always be in plain text due to protocol requirements.
Usage
Running with stdio transport
This mode is ideal for direct integration with Claude Desktop.
# If installed globally
webdav-mcp-server
# If using npx
npx -y @masx200/webdav-mcp-server
# If built from source
node dist/index.jsRunning with HTTP/SSE transport
This mode enables the server to be accessed over HTTP with Server-Sent Events for real-time communication.
# If installed globally
webdav-mcp-server --http
# If using npx
npx -y @masx200/webdav-mcp-server --http
# If built from source
node dist/index.js --httpQuick Start with Docker Compose
The easiest way to get started with both the WebDAV server and the MCP server is to use Docker Compose:
# Start both WebDAV and MCP servers
cd docker
docker-compose up -d
# This will start:
# - hacdias/webdav server on port 4080 (username: admin, password: admin)
# - MCP server on port 3000 (username: user, password: pass)This setup uses hacdias/webdav, a simple
and standalone WebDAV server written in Go. The configuration for the WebDAV
server is stored in webdav_config.yml, which you can modify to adjust
permissions, add users, or change other settings.
The WebDAV server stores all files in a Docker volume called webdav_data,
which persists across container restarts.
WebDAV Server Configuration
The webdav_config.yml file configures the hacdias/webdav server used in the
Docker Compose setup. Here's what you can customize:
# Server address and port
address: 0.0.0.0
port: 6060
# Root data directory
directory: /data
# Enable/disable CORS
cors:
enabled: true
# Additional CORS settings...
# Default permissions (C=Create, R=Read, U=Update, D=Delete)
permissions: CRUD
# User definitions
users:
- username: admin
password: admin # Plain text password
permissions: CRUD # Full permissions
- username: reader
password: reader
permissions: R # Read-only permissions
# You can also use bcrypt-encrypted passwords
- username: secure
password: "{bcrypt}$2y$10$zEP6oofmXFeHaeMfBNLnP.DO8m.H.Mwhd24/TOX2MWLxAExXi4qgi"For more advanced configuration options, refer to the hacdias/webdav documentation.
Testing
To run the tests:
npm testIntegrating with Claude Desktop
Ensure the MCP feature is enabled in Claude Desktop
Available MCP Resources
webdav://{path}/list- List files in a directorywebdav://{path}/content- Get file contentwebdav://{path}/info- Get file or directory information
Available MCP Tools
webdav_create_remote_file- Create a new file on a remote WebDAV serverwebdav_get_remote_file- Retrieve content from a file stored on a remote WebDAV serverwebdav_update_remote_file- Update an existing file on a remote WebDAV serverwebdav_delete_remote_item- Delete a file or directory from a remote WebDAV serverwebdav_create_remote_directory- Create a new directory on a remote WebDAV serverwebdav_move_remote_item- Move or rename a file/directory on a remote WebDAV serverwebdav_copy_remote_item- Copy a file/directory to a new location on a remote WebDAV serverwebdav_list_remote_directory- List files and directories on a remote WebDAV server
Enhanced Features
webdav_read_remote_file- Enhanced file reading with head/tail optionswebdav_edit_remote_file- Smart file editing with diff previewwebdav_list_directory_with_sizes- Enhanced directory listing with sizes and sortingwebdav_search_files- Search files using glob patterns with exclusion supportwebdav_get_directory_tree- Get recursive directory tree as JSONwebdav_read_multiple_files- Read multiple files simultaneouslywebdav_get_file_info- Get detailed file/directory metadatawebdav_range_request- Read specific byte range from a file (HTTP 206 Partial Content)
Available MCP Prompts
webdav_create_remote_file- Prompt to create a new file on a remote WebDAV serverwebdav_get_remote_file- Prompt to retrieve content from a remote WebDAV filewebdav_update_remote_file- Prompt to update a file on a remote WebDAV serverwebdav_delete_remote_item- Prompt to delete a file/directory from a remote WebDAV serverwebdav_list_remote_directory- Prompt to list directory contents on a remote WebDAV serverwebdav_create_remote_directory- Prompt to create a directory on a remote WebDAV serverwebdav_move_remote_item- Prompt to move/rename a file/directory on a remote WebDAV serverwebdav_copy_remote_item- Prompt to copy a file/directory on a remote WebDAV server
Example Queries in Claude
Here are some example queries you can use in Claude Desktop once the WebDAV MCP server is connected:
"List files on my remote WebDAV server"
"Create a new text file called notes.txt on my remote WebDAV server with the following content: Hello World"
"Get the content of document.txt from my remote WebDAV server"
"Update config.json on my remote WebDAV server with this new configuration"
"Create a directory called projects on my remote WebDAV server"
"Copy report.docx to a backup location on my remote WebDAV server"
"Move the file old_name.txt to new_name.txt on my remote WebDAV server"
"Delete temp.txt from my remote WebDAV server"
Enhanced Feature Operations
"Read the first 20 lines of a log file: /logs/app.log"
"Search for all JavaScript files: */.js, excluding node_modules directory"
"Get the tree structure of the project directory"
"List the contents of the uploads directory by file size"
"Read multiple configuration files simultaneously"
"Edit a configuration file with preview of changes"
"Get detailed metadata information for a file"
"Read the first 500 bytes of a file: bytes=0-499"
"Read the last 100 bytes of a file: bytes=400-"
Programmatic Usage
You can also use this package programmatically in your own projects:
import { startWebDAVServer } from "webdav-mcp-server";
// For stdio transport without authentication
await startWebDAVServer({
webdavConfig: {
rootUrl: "http://your-webdav-server",
rootPath: "/webdav",
authEnabled: false,
},
useHttp: false,
});
// For stdio transport with WebDAV authentication (password must be plain text)
await startWebDAVServer({
webdavConfig: {
rootUrl: "http://your-webdav-server",
rootPath: "/webdav",
authEnabled: true,
username: "admin",
password: "password",
},
useHttp: false,
});
// With bcrypt hash for MCP server password (HTTP auth only)
await startWebDAVServer({
webdavConfig: {
rootUrl: "http://your-webdav-server",
rootPath: "/webdav",
authEnabled: true,
username: "admin",
password: "password", // WebDAV password must be plain text
},
useHttp: true,
httpConfig: {
port: 3000,
auth: {
enabled: true,
username: "user",
password:
"{bcrypt}$2y$10$CyLKnUwn9fqqKQFEbxpZFuE9mzWR/x8t6TE7.CgAN0oT8I/5jKJBy",
},
},
});
// For HTTP transport with MCP authentication
await startWebDAVServer({
webdavConfig: {
rootUrl: "http://your-webdav-server",
rootPath: "/webdav",
authEnabled: true,
username: "admin",
password: "password",
},
useHttp: true,
httpConfig: {
port: 3000,
auth: {
enabled: true,
username: "user",
password: "pass",
realm: "MCP WebDAV Server",
},
},
});
// For HTTP transport without authentication
await startWebDAVServer({
webdavConfig: {
rootUrl: "http://your-webdav-server",
rootPath: "/webdav",
authEnabled: false,
},
useHttp: true,
httpConfig: {
port: 3000,
auth: {
enabled: false,
},
},
});License
MIT
WebDAV MCP Server 增强功能文档
概述
本文档记录了对 WebDAV MCP Server 的全面增强功能,基于 filesystem MCP 服务器实现,大幅提升了文件操作能力和用户体验。
新增功能
1. 增强文件读取功能
webdav_read_remote_file
功能: 读取文件内容,支持 head/tail 参数
参数:
path(string): 文件路径head(number, 可选): 返回文件的前 N 行tail(number, 可选): 返回文件的后 N 行
特性:
内存高效:大文件读取时不加载全部内容
参数验证:head 和 tail 不能同时使用
灵活读取:支持读取文件开头或结尾部分
2. 智能文件编辑功能
webdav_edit_remote_file
功能: 智能文件编辑,支持部分替换和 diff 预览
参数:
path(string): 文件路径edits(array): 编辑操作数组,包含 oldText 和 newTextdryRun(boolean, 可选): 预览模式,生成 diff 但不实际修改文件
特性:
精确匹配:查找并替换精确的文本序列
多重编辑:支持单次操作中应用多个编辑
Diff 预览:生成 git 风格的差异预览
安全模式:干运行模式确保编辑安全
3. 高级文件搜索功能
webdav_search_files
功能: 使用 glob 模式递归搜索文件和目录
参数:
path(string, 可选): 搜索起始目录,默认为根目录pattern(string): Glob 模式匹配规则(如*.txt,**/*.js,config.*)excludePatterns(array, 可选): 排除模式数组
特性:
Glob 模式:支持标准的 glob 模式匹配
排除模式:支持排除特定文件或目录
递归搜索:深度搜索整个目录树
路径验证:所有路径都经过安全验证
4. 目录树结构功能
webdav_get_directory_tree
功能: 获取递归目录树结构的 JSON 表示
参数:
path(string, 可选): 根目录路径,默认为根目录excludePatterns(array, 可选): 排除模式数组
特性:
JSON 结构:返回结构化的 JSON 树数据
递归遍历:完整遍历目录层次结构
模式排除:支持排除特定项目
清晰格式:2 空格缩进的可读格式
5. 增强目录列表功能
webdav_list_directory_with_sizes
功能: 增强目录列表,包含文件大小、排序和统计信息
参数:
path(string, 可选): 目录路径,默认为根目录sortBy(enum, 可选): 排序方式('name' 或 'size'),默认按名称排序
特性:
文件大小:显示每个文件的格式化大小
排序选项:支持按名称或大小排序
统计信息:显示文件总数、目录总数和总大小
格式化输出:清晰的表格格式显示
6. 详细文件信息功能
webdav_get_file_info
功能: 获取文件或目录的详细元数据
参数:
path(string): 文件或目录路径
特性:
完整元数据:名称、路径、类型、大小、修改时间、MIME 类型
格式化大小:人类可读的文件大小格式
时间戳:详细的最后修改时间
类型识别:区分文件和目录类型
7. 多文件同时读取功能
webdav_read_multiple_files
功能: 同时读取多个文件内容
参数:
paths(array): 文件路径数组
特性:
并行处理:并发读取多个文件提高效率
错误隔离:单个文件读取失败不影响其他文件
格式化输出:清晰的分隔显示多个文件内容
错误报告:详细的错误信息显示
8. 范围请求功能
webdav_range_request
功能: 按字节范围读取文件内容,支持 HTTP 206 Partial Content 响应
参数:
path(string): 文件路径range(string): 字节范围,格式如bytes=0-499,bytes=400-,0-499
特性:
HTTP 标准兼容:完全兼容 HTTP 1.1 Range Requests 规范
多种格式支持:支持
bytes=0-499,bytes=400-,0-499等格式大文件优化:适用于大文件的部分内容读取,减少网络传输
元数据返回:返回 Content-Range, Content-Length, Total-Size 等信息
Unicode 支持:正确处理多字节字符的范围计算
技术实现
依赖项增强
minimatch: 用于 glob 模式匹配的强大库
TypeScript: 增强类型安全和代码质量
核心服务扩展
WebDAVService: 新增多个方法支持高级功能
智能编辑: 内置 diff 生成和文本替换逻辑
搜索算法: 高效的递归搜索和模式匹配
错误处理
详细错误信息: 所有操作包含完整的错误描述
安全验证: 路径验证防止未授权访问
优雅降级: 部分失败不影响整体操作
使用示例
1. 读取文件前 10 行
const result = await toolHandler("webdav_read_remote_file", {
path: "/logs/app.log",
head: 10,
});2. 智能编辑文件
const result = await toolHandler("webdav_edit_remote_file", {
path: "/config/settings.json",
edits: [
{
oldText: '"debug": false',
newText: '"debug": true',
},
],
dryRun: true, // 预览模式
});3. 搜索所有 JavaScript 文件
const result = await toolHandler("webdav_search_files", {
path: "/src",
pattern: "**/*.js",
excludePatterns: ["node_modules/**", "dist/**"],
});4. 获取目录树结构
const result = await toolHandler("webdav_get_directory_tree", {
path: "/project",
excludePatterns: [".git/**", "node_modules/**"],
});5. 列出目录详情并按大小排序
const result = await toolHandler("webdav_list_directory_with_sizes", {
path: "/uploads",
sortBy: "size",
});6. 范围请求示例
// 读取文件前 500 字节
const result = await toolHandler("webdav_range_request", {
path: "/large-file.txt",
range: "bytes=0-499",
});
// 读取文件最后 100 字节
const result = await toolHandler("webdav_range_request", {
path: "/large-file.txt",
range: "bytes=400-",
});
// 读取文件中间部分
const result = await toolHandler("webdav_range_request", {
path: "/large-file.txt",
range: "bytes=100-199",
});性能优化
内存效率
流式读取: 大文件使用内存高效的流式处理
并发操作: 多文件操作使用并发处理
延迟加载: 按需加载文件内容和元数据
网络优化
连接池: 复用 WebDAV 连接减少开销
批量操作: 减少网络请求次数
错误重试: 自动处理临时网络问题
安全特性
路径验证
根目录限制: 所有操作限制在允许的目录内
符号链接处理: 安全处理符号链接防止路径遍历攻击
路径规范化: 统一路径格式防止绕过
操作安全
原子操作: 文件写入使用原子操作防止数据损坏
预览模式: 编辑操作支持预览避免误操作
详细日志: 所有操作记录详细日志
兼容性
向后兼容
现有 API: 保持所有现有工具和 API 不变
渐进增强: 新功能作为可选参数添加
默认行为: 保持原有默认行为不变
WebDAV 标准
协议兼容: 完全兼容 WebDAV 协议标准
多平台支持: 支持各种 WebDAV 服务器实现
认证支持: 保持现有认证机制
总结
这些增强功能大幅提升了 WebDAV MCP Server 的功能性和易用性,使其成为一个功能完整、性能优异、安全可靠的文件管理解决方案。新功能在保持向后兼容的同时,为用户提供了强大的文件操作能力,特别适合复杂的项目管理和开发工作流程。
🎯 范围请求功能
新增的范围请求功能是 WebDAV MCP Server 的一个重要里程碑,它提供了:
HTTP 标准兼容: 完全兼容 HTTP 1.1 Range Requests 规范
性能优化: 大文件的部分内容读取,显著减少网络传输
应用场景丰富: 日志分析、音视频元数据提取、大文件预览等
技术先进: 精确的字节范围计算和 Unicode 字符支持
这一功能的加入,使 WebDAV MCP Server 在文件处理能力上达到了新的高度,为用户提供了更强大和灵活的文件操作体验。
Available Tools
16 toolswebdav_copy_remote_itemC
Copy a file or directory to a new location on a remote WebDAV server
| Name | Required | Description | Default |
|---|---|---|---|
| fromPath | Yes | ||
| overwrite | No | ||
| toPath | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It mentions copying to a 'new location' but doesn't disclose critical behaviors like whether it preserves metadata, handles recursive directory copying, requires specific permissions, has size limitations, or what happens on failure. The 'overwrite' parameter hints at conflict behavior, but this isn't explained in the description.
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, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized for a basic operation and front-loads the core action ('Copy a file or directory').
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 file operation tool with 3 parameters, 0% schema coverage, no annotations, and no output schema, the description is insufficient. It doesn't explain the operation's scope (single files only? recursive directories?), error conditions, authentication requirements, or return values. The context signals indicate significant gaps that the description doesn't address.
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 but adds no parameter information. It doesn't explain what 'fromPath' and 'toPath' represent (relative/absolute paths, URL formats), what 'overwrite' does exactly, or any path validation rules. The three parameters remain semantically undocumented beyond their names.
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 ('Copy') and resource ('a file or directory') with the destination context ('to a new location on a remote WebDAV server'). It distinguishes from siblings like 'move' by specifying 'copy', but doesn't explicitly differentiate from other file operations beyond the verb choice.
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. It doesn't mention when to choose copy over move (webdav_move_remote_item), or how it relates to creation tools (webdav_create_remote_file/directory). The description only states what it does, not when it's appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webdav_create_remote_directoryC
Create a new directory on a remote WebDAV server
| Name | Required | Description | Default |
|---|---|---|---|
| path | 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 the basic action. It doesn't disclose behavioral traits such as required permissions (e.g., write access), whether it overwrites existing directories, error handling (e.g., if path already exists), or side effects. This is inadequate for a mutation tool with zero annotation coverage.
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 wasted words. It's front-loaded with the core action and resource, making it easy to scan and understand quickly. Every word earns its place by conveying essential 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?
Given the complexity of a mutation tool with no annotations, no output schema, and low parameter coverage, the description is incomplete. It lacks details on behavior, parameters, and expected outcomes, leaving significant gaps for an AI agent to infer correctly. More context is needed for safe and effective use.
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 1 parameter with 0% description coverage, and the tool description adds no information about the 'path' parameter. It doesn't explain what the path represents (e.g., absolute or relative), format expectations, or constraints beyond the schema's minLength. This fails 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 the action ('create') and resource ('new directory on a remote WebDAV server'), distinguishing it from siblings like 'webdav_create_remote_file' (creates files) and 'webdav_get_directory_tree' (reads directories). However, it doesn't specify if it's a single directory or can create nested paths, which would make it fully specific.
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. For example, it doesn't mention if it should be used for initial setup versus adding subdirectories, or how it differs from 'webdav_move_remote_item' for reorganizing directories. The description only states what it does, not when to apply it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webdav_create_remote_fileC
Create a new file on a remote WebDAV server at the specified path
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | ||
| overwrite | No | ||
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions creating a file but lacks critical details: it doesn't specify whether this requires authentication, what happens if the path doesn't exist (e.g., parent directories), error handling for conflicts, or the response format. The 'overwrite' parameter hints at some behavior but isn't explained in the description.
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, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized for a basic operation, though more detail would be needed for completeness.
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 complexity of a file creation operation with no annotations, no output schema, and 0% schema description coverage, the description is inadequate. It doesn't cover authentication needs, error scenarios, response details, or parameter usage, making it insufficient for safe and effective tool 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?
Schema description coverage is 0%, so the description must compensate for undocumented parameters. It mentions 'path' but doesn't explain its format or requirements. It omits 'content' entirely and provides no context for 'overwrite' (e.g., default behavior or implications). This leaves key parameters semantically unclear 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?
The description clearly states the verb 'create' and the resource 'new file on a remote WebDAV server at the specified path', which distinguishes it from siblings like webdav_create_remote_directory (creates directories) and webdav_update_remote_file (updates existing files). However, it doesn't explicitly mention the 'content' parameter, which is a key aspect of file creation.
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. For example, it doesn't mention when to choose this over webdav_update_remote_file (for updating existing files) or webdav_edit_remote_file (for modifying files), nor does it specify prerequisites like server connectivity or authentication needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webdav_delete_remote_itemC
Delete a file or directory from a remote WebDAV server
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action is deletion, implying a destructive operation, but doesn't elaborate on critical aspects like permissions required, whether deletion is recursive for directories, error handling, or confirmation prompts. This leaves significant gaps for a mutation tool.
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, direct sentence that efficiently conveys the core action without unnecessary words. It's front-loaded with the key verb and resource, making it easy to parse quickly.
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 complexity of a destructive operation with no annotations and no output schema, the description is incomplete. It lacks details on behavior (e.g., recursion, safety checks), error conditions, or what happens upon success. For a tool that permanently removes data, this is inadequate.
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 adds no parameter semantics beyond what the schema implies (a 'path' parameter). With 0% schema description coverage and only one parameter, the baseline is 4, but since the description doesn't explain what the path represents (e.g., absolute path, relative to root) or provide examples, it doesn't fully compensate, resulting in a minimal viable score.
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') and resource ('a file or directory from a remote WebDAV server'), making the purpose immediately understandable. It distinguishes from siblings like 'webdav_move_remote_item' or 'webdav_update_remote_file' by specifying deletion, but doesn't explicitly contrast with them in the text.
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. For example, it doesn't mention if deletion is permanent or reversible, or if there are prerequisites like checking existence first with 'webdav_get_file_info'. The description only states what it does, not when to apply it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webdav_edit_remote_fileB
Apply intelligent edits to a file on a remote WebDAV server with git-style diff preview
| Name | Required | Description | Default |
|---|---|---|---|
| dryRun | No | Preview changes using git-style diff format without applying them | |
| edits | Yes | ||
| path | 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 'git-style diff preview' and 'intelligent edits,' but fails to clarify what 'intelligent' means, whether edits are atomic or batched, authentication requirements, error handling, or what happens during concurrent access. For a mutation tool with zero annotation coverage, this leaves significant behavioral 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, well-structured sentence that efficiently communicates core functionality without redundancy. Every word earns its place by specifying the action, target, and key feature, making it front-loaded and appropriately sized for the tool's complexity.
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 mutation tool with 3 parameters, low schema coverage (33%), no annotations, and no output schema, the description is incomplete. It lacks details on parameter usage, behavioral traits like error handling or atomicity, and expected outcomes. The mention of 'git-style diff preview' hints at output but doesn't clarify format or scope, leaving critical gaps for agent 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?
Schema description coverage is low at 33%, with only the 'dryRun' parameter documented in the schema. The description adds no explicit parameter information beyond implying edits involve text replacement. It doesn't explain 'path' format, 'edits' array structure, or 'oldText'/'newText' semantics, failing to compensate for the schema coverage gap.
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 specific action ('Apply intelligent edits'), target resource ('a file on a remote WebDAV server'), and unique capability ('with git-style diff preview'). It distinguishes itself from siblings like webdav_update_remote_file by emphasizing intelligent editing with preview functionality, not just basic updates.
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 editing remote files with preview capability, but provides no explicit guidance on when to choose this tool versus alternatives like webdav_update_remote_file or webdav_read_remote_file. There are no exclusions, prerequisites, or comparative context mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webdav_get_directory_treeB
Get a recursive tree view of files and directories as a JSON structure
| Name | Required | Description | Default |
|---|---|---|---|
| excludePatterns | No | Array of glob patterns to exclude from the tree | |
| path | No | Root directory for the tree | / |
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 mentions the output format (JSON structure) but lacks details on permissions, rate limits, recursion depth, error handling, or performance implications. For a tool with no annotation coverage, this is a significant gap.
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, efficient sentence that front-loads the core purpose. Every word earns its place, with no redundancy or unnecessary details, making it highly concise and well-structured.
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 no annotations, no output schema, and 2 parameters with full schema coverage, the description is minimally adequate. It covers the basic purpose and output format but lacks behavioral context and usage guidelines, leaving gaps for a tool that interacts with a filesystem.
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 100%, so the schema fully documents both parameters. The description adds no additional meaning beyond what the schema provides, such as examples or constraints on path or excludePatterns. Baseline 3 is appropriate when schema does the heavy lifting.
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') and resource ('recursive tree view of files and directories'), specifying it returns a JSON structure. It distinguishes from siblings like webdav_list_remote_directory by emphasizing recursion and tree structure, though it doesn't explicitly name alternatives.
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 is provided. It doesn't mention when to prefer this over webdav_list_remote_directory or webdav_list_directory_with_sizes, nor does it specify prerequisites or exclusions, leaving usage context implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webdav_get_file_infoC
Get detailed metadata about a file or directory
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool retrieves metadata, implying a read-only operation, but doesn't specify what 'detailed metadata' includes (e.g., size, timestamps, permissions), whether it handles errors for non-existent paths, or if there are rate limits. This leaves significant gaps in understanding how the tool behaves in practice.
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, efficient sentence that directly states the tool's function without unnecessary words. It's front-loaded with the core action and resource, making it easy to parse. Every part of the sentence contributes essential information, earning 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 the complexity of a WebDAV metadata tool with no annotations, no output schema, and low schema coverage, the description is insufficient. It doesn't explain what metadata is returned, error conditions, or how it integrates with sibling tools. For a tool that could involve file system interactions, more context on behavior and output is needed for effective use.
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 1 parameter with 0% description coverage, so the description must compensate. It mentions 'path' implicitly but doesn't explain what the path represents (e.g., absolute vs. relative, format requirements) or provide examples. Since there's only one parameter, the baseline is 4, but the lack of any parameter details in the description reduces this to 3, as it adds minimal value 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?
The description clearly states the action ('Get detailed metadata') and resource ('about a file or directory'), making the purpose immediately understandable. It distinguishes itself from siblings like webdav_get_remote_file (which retrieves file content) and webdav_list_remote_directory (which lists directory contents). However, it doesn't explicitly contrast with webdav_get_directory_tree, which might also provide metadata in a tree structure.
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. For example, it doesn't clarify if this should be used instead of webdav_list_directory_with_sizes for individual items or how it differs from webdav_get_directory_tree. There's no mention of prerequisites, such as needing read permissions, or typical use cases like checking file properties before operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webdav_get_remote_fileC
Retrieve content from a file stored on a remote WebDAV server
| Name | Required | Description | Default |
|---|---|---|---|
| path | 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 states the action ('Retrieve content') but doesn't mention authentication requirements, rate limits, error conditions, or what 'retrieve' entails (e.g., full file download, streaming). This leaves significant gaps for a tool interacting with remote servers.
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, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy to parse quickly.
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 complexity of remote file operations, no annotations, no output schema, and 0% schema coverage, the description is incomplete. It doesn't address authentication, error handling, return format, or differentiation from sibling tools, leaving the agent with insufficient context for reliable use.
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 schema has 0% description coverage for the single parameter 'path', and the tool description doesn't mention parameters at all. Since there's only one parameter, the baseline is 4, but the description fails to add any semantic context about what 'path' represents (e.g., absolute path, URL format, encoding requirements), so it's scored lower at 3.
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 ('Retrieve content') and resource ('from a file stored on a remote WebDAV server'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'webdav_read_remote_file' or 'webdav_range_request', which likely have overlapping functionality.
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. With multiple sibling tools for reading files (e.g., 'webdav_read_remote_file', 'webdav_range_request', 'webdav_read_multiple_files'), there's no indication of when this specific retrieval method is preferred or what distinguishes it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webdav_list_directory_with_sizesC
List files and directories with sizes, sorting options, and statistics
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | / | |
| sortBy | No | Sort entries by name or size | name |
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 mentions 'sorting options and statistics', which adds some context beyond basic listing, but it fails to describe critical behaviors such as pagination, error handling, authentication needs, rate limits, or what 'statistics' entails. For a read operation with no annotation coverage, this leaves significant gaps in understanding how the tool behaves.
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, efficient sentence that front-loads the core functionality ('List files and directories with sizes') and adds key features ('sorting options, and statistics') without redundancy. Every word earns its place, making it easy to scan and understand quickly, which is ideal for conciseness.
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 complexity of a listing tool with sorting and statistics, no annotations, no output schema, and incomplete parameter documentation, the description is inadequate. It doesn't explain what 'statistics' includes, how results are formatted, or any behavioral nuances, leaving the agent with insufficient information to use the tool effectively in 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 50% (only 'sortBy' has a description), and the description adds value by implying that 'path' is for listing and 'sortBy' relates to 'sorting options'. However, it doesn't fully compensate for the undocumented 'path' parameter or provide additional semantics like path format constraints or default behaviors. With moderate schema coverage, the description offers some but incomplete parameter context.
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 the resources 'files and directories with sizes', which is specific and actionable. It distinguishes from the sibling 'webdav_list_remote_directory' by emphasizing 'with sizes, sorting options, and statistics', though it could be more explicit about the differentiation. However, it doesn't fully distinguish from 'webdav_get_directory_tree' or 'webdav_search_files', which limits it to a 4 rather than a 5.
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 like 'webdav_list_remote_directory' (which might list without sizes) or 'webdav_get_directory_tree' (which might provide a tree structure). There's no mention of prerequisites, context, or exclusions, leaving the agent to infer usage based on tool names alone, which is insufficient for effective selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webdav_list_remote_directoryB
List files and directories at the specified path on a remote WebDAV server
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | / |
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 action but doesn't disclose behavioral traits such as whether it's read-only (implied by 'List'), potential authentication needs, rate limits, error handling, or output format. For a tool with no annotations, this leaves significant gaps in understanding its 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, efficient sentence that front-loads the core action ('List files and directories') and includes essential context ('at the specified path on a remote WebDAV server'). There is no wasted text, making it appropriately sized and well-structured.
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 1 parameter with no output schema and no annotations, the description is minimally complete for a simple listing tool. It covers the basic purpose but lacks details on usage context, behavioral aspects, and output, which are needed for full understanding. It's adequate but with clear gaps in guidance and transparency.
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 1 parameter with 0% description coverage. The description adds meaning by specifying that the parameter is a 'path' on the remote server, which clarifies beyond the schema's type and default. However, it doesn't provide details like path format constraints or examples, so it partially compensates 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 the verb ('List') and resource ('files and directories') with the scope ('at the specified path on a remote WebDAV server'). It distinguishes from some siblings like 'webdav_get_directory_tree' by focusing on a single path, but doesn't explicitly differentiate from 'webdav_list_directory_with_sizes' which suggests a similar function with additional details.
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 'webdav_get_directory_tree' (which might list recursively) or 'webdav_list_directory_with_sizes' (which includes size information). The description implies usage for listing contents at a path but lacks explicit comparisons or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webdav_move_remote_itemC
Move or rename a file or directory on a remote WebDAV server
| Name | Required | Description | Default |
|---|---|---|---|
| fromPath | Yes | ||
| overwrite | No | ||
| toPath | 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. While it implies a mutation operation ('Move or rename'), it doesn't address critical aspects like whether it requires specific permissions, what happens on failure (e.g., if paths don't exist), or if it's idempotent. For a tool that modifies remote data, this leaves the agent with insufficient operational 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 a single, efficient sentence that front-loads the core action and resource. Every word contributes directly to understanding the tool's purpose without redundancy or unnecessary detail, making it highly concise and well-structured.
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 complexity of a mutation tool with no annotations, 0% schema description coverage, and no output schema, the description is incomplete. It lacks details on behavior, error handling, permissions, and how it differs from siblings, leaving the agent with inadequate information to use the tool safely and effectively in 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?
The description mentions 'file or directory' and implies paths are involved, but doesn't explain the parameters beyond what's inferable. With 0% schema description coverage and 3 parameters (fromPath, toPath, overwrite), it adds minimal value over the schema. The baseline is 3 since the schema defines the parameters, but the description doesn't 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 clearly states the action ('Move or rename') and resource ('a file or directory on a remote WebDAV server'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'webdav_copy_remote_item' or 'webdav_update_remote_file' beyond the inherent meaning of 'move/rename' versus 'copy' or 'update'.
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 doesn't mention prerequisites, such as needing the source and destination paths to exist, or clarify when to choose 'move' over 'copy' (e.g., for relocating versus duplicating files). With multiple sibling tools for file operations, this lack of context is a significant gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webdav_range_requestA
Read a specific byte range from a file on a remote WebDAV server (similar to HTTP 206 Partial Content)
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| range | Yes | Byte range in format "bytes=0-499" (first 500 bytes), "bytes=500-" (from byte 500 to end), or "0-499" (range from start to end) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the read-only nature ('Read') and the partial content behavior, but lacks details on authentication needs, rate limits, error handling, or what happens with invalid ranges. It adds some context beyond the schema but is incomplete for a tool interacting with remote servers.
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, efficient sentence that front-loads the core action and context. Every word earns its place, with no redundancy or fluff, making it easy for an agent to parse quickly.
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 no annotations, no output schema, and low schema coverage, the description is moderately complete. It covers the basic purpose and behavior but lacks details on authentication, errors, or return values. For a tool with remote operations and two parameters, more context would be helpful for safe and effective use.
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 50% (only 'range' has a description). The description adds no explicit parameter semantics, but the tool's purpose inherently clarifies that 'path' is the file location and 'range' specifies bytes. This compensates partially for the low schema coverage, though format examples are only in 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 ('Read'), resource ('a specific byte range from a file'), and context ('on a remote WebDAV server'), with the analogy to HTTP 206 Partial Content adding technical specificity. It distinguishes this tool from siblings like webdav_get_remote_file or webdav_read_remote_file by emphasizing partial content retrieval.
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 partial file reading, but does not explicitly state when to use this tool versus alternatives like webdav_get_remote_file (full file) or webdav_read_remote_file (full read). No exclusions or prerequisites are mentioned, leaving the agent to infer context from the 'byte range' focus.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webdav_read_multiple_filesC
Read the contents of multiple files simultaneously
| Name | Required | Description | Default |
|---|---|---|---|
| paths | Yes | Array of file paths to read |
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. While 'Read' implies a read-only operation, it doesn't specify authentication requirements, rate limits, error handling, or what happens when some files are inaccessible. For a batch operation on a remote file system, this leaves significant behavioral questions unanswered about partial successes, ordering guarantees, or performance implications.
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, efficient sentence that communicates the core functionality without unnecessary words. It's front-loaded with the essential action and scope, making it immediately understandable. Every word earns its place in conveying the batch reading capability.
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 batch file reading operation with no annotations and no output schema, the description is insufficient. It doesn't explain return format (array of contents? success/failure status per file?), error handling for partial failures, or performance considerations for simultaneous reading. Given the complexity of batch operations and lack of structured metadata, more contextual information would be valuable.
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 mentions 'multiple files' which aligns with the 'paths' parameter being an array, but adds no semantic detail beyond what the schema already provides. With 100% schema description coverage (the 'paths' parameter is well-described), the description doesn't enhance understanding of path formats, relative vs absolute paths, or file system constraints. Baseline 3 is appropriate when schema documentation is complete.
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 ('Read') and resource ('contents of multiple files'), making the purpose immediately understandable. It distinguishes from single-file read operations by specifying 'multiple files simultaneously', though it doesn't explicitly differentiate from all sibling tools like 'webdav_get_remote_file' or 'webdav_read_remote_file' which appear to be single-file variants.
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. With sibling tools like 'webdav_get_remote_file' and 'webdav_read_remote_file' that appear to handle single files, there's no indication whether this tool is preferred for batch operations or has different performance characteristics. No prerequisites, limitations, or comparison context is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webdav_read_remote_fileC
Read content from a file on a remote WebDAV server with enhanced options (head/tail)
| Name | Required | Description | Default |
|---|---|---|---|
| head | No | If provided, returns only the first N lines of the file | |
| path | Yes | ||
| tail | No | If provided, returns only the last N lines of the file |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'enhanced options' but does not explain what 'read content' entails (e.g., text/binary handling, encoding, error behavior, or authentication requirements). This leaves critical behavioral traits unspecified for a file-reading operation.
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, efficient sentence that front-loads the core purpose and includes key details. Every word earns its place, with no redundancy or unnecessary elaboration, making it highly concise and well-structured.
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 complexity of file reading with options, no annotations, no output schema, and partial parameter coverage, the description is insufficient. It lacks details on return values, error handling, authentication, and how the tool differs from siblings, making it incomplete for effective agent use.
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 schema description coverage is 67% (2 out of 3 parameters have descriptions), and the description adds minimal value by referencing 'head/tail' without explaining their interaction or default behaviors. It does not clarify if 'head' and 'tail' are mutually exclusive or how they work with the 'path' parameter, so it meets the baseline but does not compensate for the partial 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 the action ('Read content from a file') and resource ('on a remote WebDAV server'), with the enhanced options ('head/tail') providing additional specificity. It distinguishes itself from the sibling 'webdav_get_remote_file' by emphasizing the head/tail functionality, though the distinction 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?
The description provides no guidance on when to use this tool versus alternatives like 'webdav_get_remote_file' or 'webdav_range_request'. It mentions enhanced options but does not specify scenarios where head/tail are preferred over other reading methods, leaving usage context unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webdav_search_filesC
Search for files and directories using glob patterns with exclusion support
| Name | Required | Description | Default |
|---|---|---|---|
| excludePatterns | No | Array of glob patterns to exclude from search results | |
| path | No | Starting directory for the search | / |
| pattern | Yes | Glob pattern to match files (e.g., "*.txt", "**/*.js", "config.*") |
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 mentions 'search' and 'exclusion support', but fails to detail critical aspects like whether this is a read-only operation, potential performance impacts for large directories, error handling, or output format. For a tool with no annotation coverage, this is a significant gap in 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, efficient sentence that front-loads the core functionality ('Search for files and directories') and includes key features ('using glob patterns with exclusion support'). There is no wasted text, making it highly concise and well-structured for quick understanding.
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 complexity of a search tool with no annotations and no output schema, the description is incomplete. It doesn't explain the return values (e.g., list of files, error responses), behavioral traits like read-only nature or performance considerations, or how it differs from sibling tools. For a 3-parameter tool with no structured support, more context is needed.
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 100% description coverage, clearly documenting all three parameters (pattern, path, excludePatterns) with examples for 'pattern'. The description adds value by summarizing the tool's use of 'glob patterns with exclusion support', which aligns with the schema but doesn't provide additional semantic details beyond what's already covered. Baseline score of 3 is appropriate as the schema does the heavy lifting.
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 ('Search for files and directories') and the method ('using glob patterns with exclusion support'), which is specific and informative. However, it doesn't explicitly distinguish this tool from sibling tools like 'webdav_list_directory_with_sizes' or 'webdav_get_directory_tree', which might also involve listing or retrieving file information, though the focus on search with patterns is implied.
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, such as 'webdav_list_remote_directory' for simple listing or 'webdav_get_directory_tree' for hierarchical views. It mentions the search capability but lacks explicit context or exclusions, leaving usage decisions ambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webdav_update_remote_fileC
Update an existing file on a remote WebDAV server with new content
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | ||
| path | 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 states the tool updates a file with new content, implying a write/mutation operation, but lacks critical details: whether it overwrites or appends, authentication requirements, error handling (e.g., if file doesn't exist), or rate limits. For a mutation tool with zero annotation coverage, this is a significant gap in 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, efficient sentence that front-loads the core action ('Update an existing file') and includes essential details ('on a remote WebDAV server with new content'). There is no wasted verbiage or redundancy, making it highly concise and well-structured for quick comprehension.
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 complexity (a mutation operation with 2 parameters), lack of annotations, and no output schema, the description is incomplete. It doesn't cover behavioral aspects like side effects, error conditions, or return values, nor does it fully explain parameters. For a WebDAV file update tool, more context is needed to ensure 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%, so the description must compensate for undocumented parameters. It mentions 'new content' and 'path' implicitly, but adds minimal meaning beyond the schema's property names. It doesn't explain parameter formats (e.g., path syntax, content encoding), constraints, or examples. With 2 parameters and no schema descriptions, this is inadequate.
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 ('Update'), resource ('an existing file on a remote WebDAV server'), and what is being updated ('with new content'). It distinguishes from siblings like 'webdav_create_remote_file' by specifying 'existing file' and from 'webdav_edit_remote_file' by focusing on content replacement rather than editing. However, it doesn't explicitly differentiate from all siblings (e.g., 'webdav_move_remote_item' or 'webdav_delete_remote_item'), keeping it at 4 instead of 5.
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 doesn't mention prerequisites (e.g., file must exist), exclusions (e.g., not for directories), or compare to siblings like 'webdav_edit_remote_file' or 'webdav_create_remote_file'. Without any usage context, the agent must infer from tool names alone, which is insufficient.
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.
16 tool updates
v1.0.0- First observed
webdav_copy_remote_item - First observed
webdav_create_remote_directory - First observed
webdav_create_remote_file - First observed
webdav_delete_remote_item - First observed
webdav_edit_remote_file - First observed
webdav_get_directory_tree - First observed
webdav_get_file_info - First observed
webdav_get_remote_file - First observed
webdav_list_directory_with_sizes - First observed
webdav_list_remote_directory - First observed
webdav_move_remote_item - First observed
webdav_range_request - First observed
webdav_read_multiple_files - First observed
webdav_read_remote_file - First observed
webdav_search_files - First observed
webdav_update_remote_file
TDQS
Every tool has a clearly distinct purpose with no ambiguity. Each tool name precisely indicates its specific action (copy, create, delete, edit, get, list, move, range_request, read_multiple, read, search, update) and target (file, directory, item), making misselection unlikely. The descriptions further clarify unique functionalities like git-style diff preview or byte range requests.
All tool names follow a consistent verb_noun pattern with the prefix 'webdav_' and snake_case throughout. The structure is predictable: webdav_<action>_<target>_<optional_modifier>, such as webdav_copy_remote_item or webdav_list_directory_with_sizes. There are no deviations in naming conventions across the set.
With 16 tools, the count is slightly high but reasonable for a WebDAV server covering file operations. It includes core CRUD actions, listing, searching, and specialized functions like range requests and multiple file reads. While comprehensive, it might feel heavy compared to simpler servers, but each tool appears justified for the domain.
The tool set provides complete CRUD and lifecycle coverage for WebDAV file management. It includes creation, retrieval (with various methods like get, read, range_request), updating (edit and update), deletion, copying, moving, listing, searching, and directory operations. There are no obvious gaps; agents can perform all essential file operations without dead ends.
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
Manage files and folders directly from your workspace. Read and write files, list directories, cre…
Browse and manage files in your Moxt AI workspace from any MCP client.
Persistent file storage for AI agents via MCP and curl. Upload, download, and version files.
Securely search and manage workspace context files for AI agents and teams.
Related MCP Servers
- AlicenseAqualityDmaintenanceA Model Context Protocol server that enables Claude Desktop and other MCP clients to interact with WebDAV file systems through natural language commands for CRUD operations.88318MIT
- AlicenseNot gradedqualityDmaintenanceEnables 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.2637AGPL 3.0
- FlicenseNot gradedqualityNot gradedmaintenanceEnables comprehensive filesystem operations including reading/writing files, directory management, file searching, editing with diff preview, compression, hashing, and merging with dynamic directory access control.668,809-
- AlicenseAqualityDmaintenanceEnables LLMs to manage and manipulate notes in Nextcloud Notes via WebDAV, supporting tasks like organizing, summarizing, rewriting, and translating notes through natural language commands.132MIT
Appeared in Searches
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/masx200/mcp-webdav-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server