WebDAV MCP

Registre officiel Autres

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 root
  • recursive (boolean, default false) — if true, lists recursively using Depth: infinity. Note: some servers (IIS, some nginx configs) block recursive listing.
  • path (required) — file path relative to WebDAV root
  • max_bytes (integer, default 1048576) — 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 root
  • content (required) — content to write
  • content_type (string, default application/octet-stream) — MIME type for the file (e.g. text/plain, application/json)
  • create_parents (boolean, default false) — if true and 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 »).

MCPB package https://github.com/vernonstinebaker/webdav-mcp/releases/download/v1.1.1/webdav-mcp-macos-arm64

Variables d'environnement

  • WEBDAV_URL obligatoire Base URL of the WebDAV server (e.g. http://192.168.1.10:8080)
  • WEBDAV_USER WebDAV username
  • WEBDAV_PASS secret WebDAV password
MCPB package https://github.com/vernonstinebaker/webdav-mcp/releases/download/v1.1.1/webdav-mcp-macos-x86_64

Variables d'environnement

  • WEBDAV_URL obligatoire Base URL of the WebDAV server (e.g. http://192.168.1.10:8080)
  • WEBDAV_USER WebDAV username
  • WEBDAV_PASS secret WebDAV password
MCPB package https://github.com/vernonstinebaker/webdav-mcp/releases/download/v1.1.1/webdav-mcp-linux-x86_64

Variables d'environnement

  • WEBDAV_URL obligatoire Base URL of the WebDAV server (e.g. http://192.168.1.10:8080)
  • WEBDAV_USER WebDAV username
  • WEBDAV_PASS secret WebDAV password
MCPB package https://github.com/vernonstinebaker/webdav-mcp/releases/download/v1.1.1/webdav-mcp-linux-arm64

Variables d'environnement

  • WEBDAV_URL obligatoire Base URL of the WebDAV server (e.g. http://192.168.1.10:8080)
  • WEBDAV_USER WebDAV username
  • WEBDAV_PASS secret WebDAV password
MCPB package https://github.com/vernonstinebaker/webdav-mcp/releases/download/v1.1.1/webdav-mcp-linux-armv7

Variables d'environnement

  • WEBDAV_URL obligatoire Base URL of the WebDAV server (e.g. http://192.168.1.10:8080)
  • WEBDAV_USER WebDAV username
  • WEBDAV_PASS secret WebDAV password
MCPB package https://github.com/vernonstinebaker/webdav-mcp/releases/download/v1.1.1/webdav-mcp-windows-x86_64.exe

Variables d'environnement

  • WEBDAV_URL obligatoire Base URL of the WebDAV server (e.g. http://192.168.1.10:8080)
  • WEBDAV_USER WebDAV username
  • WEBDAV_PASS secret WebDAV password

Documentation

Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.

Sommaire
  1. webdav-mcp
  2. Why this exists
  3. Tools
  4. Configuration
  5. Building from source
  6. Integration with nullclaw / *Claw bots
  7. Running tests
  8. License

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

ToolDescription
listList files and directories at a path
readRead file contents as text
writeWrite (create or overwrite) a file
deleteDelete a file or directory
mkdirCreate a directory
moveMove or rename a file or directory
copyCopy a file or directory (sends Depth: infinity per RFC 4918 §9.8.2)
statGet metadata for a single file or directory (PROPFIND Depth:0)
Tool parameters

list

  • path (required) — directory path relative to WebDAV root
  • recursive (boolean, default false) — if true, lists recursively using Depth: infinity. Note: some servers (IIS, some nginx configs) block recursive listing.

read

  • path (required) — file path relative to WebDAV root
  • max_bytes (integer, default 1048576) — 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 root
  • content (required) — content to write
  • content_type (string, default application/octet-stream) — MIME type for the file (e.g. text/plain, application/json)
  • create_parents (boolean, default false) — if true and 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: file or dir or missing, plus size=, modified=, etag=, and type= when available

Configuration

Set these environment variables before launching the server:

VariableDescriptionExample
WEBDAV_URLBase URL of the WebDAV serverhttp://192.168.1.10:8080
WEBDAV_USERUsernameadmin
WEBDAV_PASSPasswordsecret
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
FilePlatform
webdav-mcp-macos-arm64macOS Apple Silicon
webdav-mcp-macos-x86_64macOS Intel
webdav-mcp-linux-arm64Linux ARM64 (static musl)
webdav-mcp-linux-x86_64Linux x86-64 (static musl)
webdav-mcp-linux-armv7Linux ARMv7 / Raspberry Pi (static musl)
webdav-mcp-windows-x86_64.exeWindows 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.