webdav mcp
零依赖WebDAV MCP服务器——单个静态二进制文件,不需要Node.js或Python。
实施 模型上下文协议 (MCP)通过stdio在JSON-RPC 2.0上运行,将8个WebDAV操作作为任何兼容MCP的AI代理都可以调用的工具。
为什么存在
GitHub上的所有其他WebDAV MCP服务器都需要Node.js或Python运行时。这是一个由Zig编译的独立二进制文件(~100–160 KB)。它可以在任何地方运行,而无需安装运行时,并且可以从一台机器交叉编译到所有主要平台。
工具
| 工具 | 说明 |
|---|---|
list | 列出路径中的文件和目录 |
read | 以文本形式读取文件内容 |
write | 写入(创建或覆盖)文件 |
delete | 删除文件或目录 |
mkdir | 创建目录 |
move | 移动或重命名文件或目录 |
copy | 复制文件或目录(发送 Depth: infinity per RFC 4918 §9.8.2) |
stat | 获取单个文件或目录的元数据(PROPFIND深度: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 |
凭证安全
凭据传递给 curl 通过写入的临时netrc文件 /tmp 带模式 0600,而不是通过命令行参数。这可以防止用户名和密码出现在进程列表中(ps -ef, /proc/ /cmdline).curl子进程退出后,临时文件将立即删除。
从源头构建
需要 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交叉编译目标
| 文件 | 平台 |
|---|---|
webdav-mcp-macos-arm64 | macOS苹果硅 |
webdav-mcp-macos-x86_64 | macOS英特尔 |
webdav-mcp-linux-arm64 | Linux ARM64(静态musl) |
webdav-mcp-linux-x86_64 | Linux x86-64(静态musl) |
webdav-mcp-linux-armv7 | Linux ARMv7/树莓派(静态musl) |
webdav-mcp-windows-x86_64.exe | Windows x86-64 |
与nullclaw/\*Claw机器人集成
添加一个 mcp_servers 进入你的机器人 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"
}
}
}
}服务器通过stdio(换行符分隔)传输JSON-RPC 2.0,这是标准的MCP传输。注册后,代理可以像正常的工具调用一样调用所有8个工具。
运行测试
zig build test --summary all所有单元测试都涵盖了XML解析、JSON-RPC调度、参数提取、URL构造、百分比编码、实体解码和HTTP方法路由。
许可证
麻省理工学院——见 许可证.
