WebDAV MCP
平台与服务by vernonstinebaker
零依赖的 WebDAV MCP 服务器,提供单个静态二进制文件,无需 Node.js 或 Python,并通过 stdio 提供 8 个工具。
什么是 WebDAV MCP?
零依赖的 WebDAV MCP 服务器,提供单个静态二进制文件,无需 Node.js 或 Python,并通过 stdio 提供 8 个工具。
README
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 passed to curl via a temporary netrc file written to /tmp with mode 0600, not via command-line arguments. This prevents the username and password from appearing in process listings (ps -ef, /proc/<pid>/cmdline). The temp file is deleted immediately after the curl subprocess exits.
Building from source
Requires Zig 0.15.2.
# 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.
<!-- mcp-name: io.github.vernonstinebaker/webdav-mcp -->常见问题
WebDAV MCP 是什么?
零依赖的 WebDAV MCP 服务器,提供单个静态二进制文件,无需 Node.js 或 Python,并通过 stdio 提供 8 个工具。
相关 Skills
MCP构建
by anthropics
聚焦高质量 MCP Server 开发,覆盖协议研究、工具设计、错误处理与传输选型,适合用 FastMCP 或 MCP SDK 对接外部 API、封装服务能力。
✎ 想让 LLM 稳定调用外部 API,就用 MCP构建:从 Python 到 Node 都有成熟指引,帮你更快做出高质量 MCP 服务器。
Slack动图
by anthropics
面向Slack的动图制作Skill,内置emoji/消息GIF的尺寸、帧率和色彩约束、校验与优化流程,适合把创意或上传图片快速做成可直接发送的Slack动画。
✎ 帮你快速做出适配 Slack 的动图,内置约束规则和校验工具,少踩上传与播放坑,做表情包和演示都更省心。
MCP服务构建器
by alirezarezvani
从 OpenAPI 一键生成 Python/TypeScript MCP server 脚手架,并校验 tool schema、命名规范与版本兼容性,适合把现有 REST API 快速发布成可生产演进的 MCP 服务。
✎ 帮你快速搭建 MCP 服务与后端 API,脚手架完善、扩展顺手,尤其适合想高效验证服务能力的开发者。
相关 MCP Server
Slack 消息
编辑精选by Anthropic
Slack 是让 AI 助手直接读写你的 Slack 频道和消息的 MCP 服务器。
✎ 这个服务器解决了团队协作中需要 AI 实时获取 Slack 信息的痛点,特别适合开发团队让 Claude 帮忙汇总频道讨论或发送通知。不过,它目前只是参考实现,文档有限,不建议在生产环境直接使用——更适合开发者学习 MCP 如何集成第三方服务。
by netdata
io.github.netdata/mcp-server 是让 AI 助手实时监控服务器指标和日志的 MCP 服务器。
✎ 这个工具解决了运维人员需要手动检查系统状态的痛点,最适合 DevOps 团队让 Claude 自动分析性能数据。不过,它依赖 NetData 的现有部署,如果你没用过这个监控平台,得先花时间配置。
by d4vinci
Scrapling MCP Server 是专为现代网页设计的智能爬虫工具,支持绕过 Cloudflare 等反爬机制。
✎ 这个工具解决了爬取动态网页和反爬网站时的头疼问题,特别适合需要批量采集电商价格或新闻数据的开发者。不过,它依赖外部浏览器引擎,资源消耗较大,不适合轻量级任务。