WebDAV MCP
Zero-dependency WebDAV MCP server — single static binary, no Node.js or Python. 8 tools via stdio.
Que pouvez-vous faire avec WebDAV MCP ?
path(required) — directory path relative to WebDAV rootrecursive(boolean, defaultfalse) — iftrue, lists recursively usingDepth: infinity. Note: some servers (IIS, some nginx configs) block recursive listing.path(required) — file path relative to WebDAV rootmax_bytes(integer, default1048576) — maximum file size to read in bytes. Returns an error if the file is larger. Increase this for large files.path(required) — file path relative to WebDAV rootcontent(required) — content to writecontent_type(string, defaultapplication/octet-stream) — MIME type for the file (e.g.text/plain,application/json)create_parents(boolean, defaultfalse) — iftrueand the parent directory does not exist, automatically creates all missing ancestor directories via MKCOL before writing
Installation
Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).
https://github.com/vernonstinebaker/webdav-mcp/releases/download/v1.1.1/webdav-mcp-macos-arm64Variables d'environnement
WEBDAV_URLobligatoire Base URL of the WebDAV server (e.g. http://192.168.1.10:8080)WEBDAV_USERWebDAV usernameWEBDAV_PASSsecret WebDAV password
https://github.com/vernonstinebaker/webdav-mcp/releases/download/v1.1.1/webdav-mcp-macos-x86_64Variables d'environnement
WEBDAV_URLobligatoire Base URL of the WebDAV server (e.g. http://192.168.1.10:8080)WEBDAV_USERWebDAV usernameWEBDAV_PASSsecret WebDAV password
https://github.com/vernonstinebaker/webdav-mcp/releases/download/v1.1.1/webdav-mcp-linux-x86_64Variables d'environnement
WEBDAV_URLobligatoire Base URL of the WebDAV server (e.g. http://192.168.1.10:8080)WEBDAV_USERWebDAV usernameWEBDAV_PASSsecret WebDAV password
https://github.com/vernonstinebaker/webdav-mcp/releases/download/v1.1.1/webdav-mcp-linux-arm64Variables d'environnement
WEBDAV_URLobligatoire Base URL of the WebDAV server (e.g. http://192.168.1.10:8080)WEBDAV_USERWebDAV usernameWEBDAV_PASSsecret WebDAV password
https://github.com/vernonstinebaker/webdav-mcp/releases/download/v1.1.1/webdav-mcp-linux-armv7Variables d'environnement
WEBDAV_URLobligatoire Base URL of the WebDAV server (e.g. http://192.168.1.10:8080)WEBDAV_USERWebDAV usernameWEBDAV_PASSsecret WebDAV password
https://github.com/vernonstinebaker/webdav-mcp/releases/download/v1.1.1/webdav-mcp-windows-x86_64.exeVariables d'environnement
WEBDAV_URLobligatoire Base URL of the WebDAV server (e.g. http://192.168.1.10:8080)WEBDAV_USERWebDAV usernameWEBDAV_PASSsecret WebDAV password
Documentation
Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.
Sommaire
webdav-mcp
A zero-dependency WebDAV MCP server — single static binary, no Node.js or Python required.
Implements the Model Context Protocol (MCP) over JSON-RPC 2.0 via stdio, exposing 8 WebDAV operations as tools that any MCP-compatible AI agent can call.
Why this exists
Every other WebDAV MCP server on GitHub requires a Node.js or Python runtime. This one is a single self-contained binary (~100–160 KB) compiled from Zig. It runs anywhere without installing a runtime, and it cross-compiles to all major platforms from one machine.
Tools
| Tool | Description |
|---|---|
list | List files and directories at a path |
read | Read file contents as text |
write | Write (create or overwrite) a file |
delete | Delete a file or directory |
mkdir | Create a directory |
move | Move or rename a file or directory |
copy | Copy a file or directory (sends Depth: infinity per RFC 4918 §9.8.2) |
stat | Get metadata for a single file or directory (PROPFIND Depth:0) |
Tool parameters
list
path(required) — directory path relative to WebDAV rootrecursive(boolean, defaultfalse) — iftrue, lists recursively usingDepth: infinity. Note: some servers (IIS, some nginx configs) block recursive listing.
read
path(required) — file path relative to WebDAV rootmax_bytes(integer, default1048576) — maximum file size to read in bytes. Returns an error if the file is larger. Increase this for large files.
write
path(required) — file path relative to WebDAV rootcontent(required) — content to writecontent_type(string, defaultapplication/octet-stream) — MIME type for the file (e.g.text/plain,application/json)create_parents(boolean, defaultfalse) — iftrueand the parent directory does not exist, automatically creates all missing ancestor directories via MKCOL before writing
stat
path(required) — path to stat relative to WebDAV root- Returns:
fileordirormissing, plussize=,modified=,etag=, andtype=when available
Configuration
Set these environment variables before launching the server:
| Variable | Description | Example |
|---|---|---|
WEBDAV_URL | Base URL of the WebDAV server | http://192.168.1.10:8080 |
WEBDAV_USER | Username | admin |
WEBDAV_PASS | Password | secret |
Credential security
Credentials are sent via native Zig HTTP networking using the Authorization: Basic ... header. No external curl process is spawned.
Building from source
Requires Zig 0.16.0.
# Development build
zig build
# Optimized release build (~100-160 KB)
zig build -Doptimize=ReleaseSmall
# Cross-compile for all platforms (outputs to zig-out/release/)
zig build cross
Cross-compilation targets
| File | Platform |
|---|---|
webdav-mcp-macos-arm64 | macOS Apple Silicon |
webdav-mcp-macos-x86_64 | macOS Intel |
webdav-mcp-linux-arm64 | Linux ARM64 (static musl) |
webdav-mcp-linux-x86_64 | Linux x86-64 (static musl) |
webdav-mcp-linux-armv7 | Linux ARMv7 / Raspberry Pi (static musl) |
webdav-mcp-windows-x86_64.exe | Windows x86-64 |
Integration with nullclaw / *Claw bots
Add an mcp_servers entry to your bot's config.json:
{
"mcp_servers": {
"webdav": {
"command": "/path/to/webdav-mcp",
"args": [],
"env": {
"WEBDAV_URL": "http://your-webdav-server:8080",
"WEBDAV_USER": "your-username",
"WEBDAV_PASS": "your-password"
}
}
}
}
The server speaks JSON-RPC 2.0 over stdio (newline-delimited), which is the standard MCP transport. Once registered, the agent can call all 8 tools as normal tool calls.
Running tests
zig build test --summary all
All unit tests cover XML parsing, JSON-RPC dispatch, argument extraction, URL construction, percent-encoding, entity decoding, and HTTP method routing.
License
MIT — see LICENSE.
Questions fréquentes
Qu'est-ce que WebDAV MCP ?
Zero-dependency WebDAV MCP server — single static binary, no Node.js or Python. 8 tools via stdio.
Comment installer WebDAV MCP ?
Suivez les étapes d'installation de sa documentation, affichée sur cette page et dans son dépôt.
Faut-il une clé API pour WebDAV MCP ?
Oui. Il attend WEBDAV_URL, WEBDAV_PASS, à renseigner dans sa configuration.
WebDAV MCP est-il open source ?
Oui. Son code est sur GitHub sous licence MIT.
Qui maintient WebDAV MCP ?
Il est publié par vernonstinebaker. AI.tn le référence sans le maintenir ni le recommander.
Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.