关于 WebDAV MCP
WebDAV MCP 是供需要操作 WebDAV 文件的 AI Agent 使用的零依赖服务端。它以单个静态二进制文件通过 stdio 提供 8 种文件与目录操作,无需 Node.js 或 Python。
主要功能
- 01列出文件和目录
- 02读取与写入文件内容
- 03删除、移动和复制项目
- 04创建目录并查看元数据
- 05无需运行时依赖的静态二进制文件
适用场景
- 01浏览 WebDAV 服务中的文件
- 02读取或更新远程文档
- 03整理文件与目录
- 04让兼容 MCP 的 Agent 执行 WebDAV 操作
MCP 相关
它通过 stdio 使用 JSON-RPC 2.0 实现 MCP,并向 MCP 客户端提供 8 种 WebDAV 操作工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
webdav-mcp
零依赖的 WebDAV MCP 服务——单个静态二进制文件,无需 Node.js 或 Python。
通过标准输入/输出使用 JSON-RPC 2.0 实现 Model Context Protocol(MCP),并将 8 种 WebDAV 操作作为工具公开,供任何兼容 MCP 的 AI Agent 调用。
为什么开发这个项目
GitHub 上其他所有 WebDAV MCP 服务都需要 Node.js 或 Python 运行时。这个服务是一个独立的二进制文件(约 100–160 KB),由 Zig 编译而成。它无需安装运行时即可在任何地方运行,并且可以在一台机器上交叉编译到所有主流平台。
工具
| 工具 | 说明 |
|---|---|
list | 列出指定路径下的文件和目录 |
read | 以文本形式读取文件内容 |
write | 写入(创建或覆盖)文件 |
delete | 删除文件或目录 |
mkdir | 创建目录 |
move | 移动或重命名文件或目录 |
copy | 复制文件或目录(根据 RFC 4918 §9.8.2 发送 Depth: infinity) |
stat | 获取单个文件或目录的元数据(PROPFIND Depth:0) |
工具参数
list
path(必填)——相对于 WebDAV 根目录的目录路径recursive(布尔值,默认false)——若为true,则使用Depth: infinity递归列出内容。注意:某些服务端(IIS、某些 nginx 配置)会阻止递归列出。
read
path(必填)——相对于 WebDAV 根目录的文件路径max_bytes(整数,默认1048576)——要读取的最大文件大小(字节)。若文件更大,则返回错误。读取大文件时请增大此值。
write
path(必填)——相对于 WebDAV 根目录的文件路径content(必填)——要写入的内容content_type(字符串,默认application/octet-stream)——文件的 MIME 类型(例如text/plain、application/json)create_parents(布尔值,默认false)——若为true且父目录不存在,则在写入前通过 MKCOL 自动创建所有缺失的上级目录
stat
path(必填)——相对于 WebDAV 根目录的待查询路径- 返回:
file、dir或missing,以及可用时的size=、modified=、etag=和type=
配置
启动服务前设置以下环境变量:
| 变量 | 说明 | 示例 |
|---|---|---|
WEBDAV_URL | WebDAV 服务的基础 URL | http://192.168.1.10:8080 |
WEBDAV_USER | 用户名 | admin |
WEBDAV_PASS | 密码 | secret |
凭据安全
凭据通过 Zig 原生 HTTP 网络功能使用 Authorization: Basic ... 标头发送。不会启动外部 curl 进程。
从源代码构建
需要 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
交叉编译目标
| 文件 | 平台 |
|---|---|
webdav-mcp-macos-arm64 | macOS Apple Silicon |
webdav-mcp-macos-x86_64 | macOS Intel |
webdav-mcp-linux-arm64 | Linux ARM64(静态 musl) |
webdav-mcp-linux-x86_64 | Linux x86-64(静态 musl) |
webdav-mcp-linux-armv7 | Linux ARMv7 / Raspberry Pi(静态 musl) |
webdav-mcp-windows-x86_64.exe | Windows x86-64 |
与 nullclaw / *Claw 机器人集成
在机器人的 config.json 中添加一项 mcp_servers:
{
"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"
}
}
}
}
服务通过标准输入/输出使用 JSON-RPC 2.0 通信(以换行符分隔),这是标准的 MCP 传输方式。注册后,Agent 即可像调用普通工具一样调用全部 8 种工具。
运行测试
zig build test --summary all
所有单元测试涵盖 XML 解析、JSON-RPC 分发、参数提取、URL 构造、百分号编码、实体解码和 HTTP 方法路由。
许可证
MIT——参见 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。