Model Context Protocol (MCP) server that enables CRUD operations on a WebDAV endpoint with basic authentication.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add webdav --env WEBDAV_AUTH_ENABLED='<WEBDAV_AUTH_ENABLED>' --env WEBDAV_PASSWORD='<WEBDAV_PASSWORD>' --env WEBDAV_ROOT_PATH='<WEBDAV_ROOT_PATH>' --env WEBDAV_ROOT_URL='<WEBDAV_ROOT_URL>' --env WEBDAV_USERNAME='<WEBDAV_USERNAME>' -- npx webdav-mcp-server~/.codex/config.toml
[mcp_servers.webdav]
command = "npx"
args = ["webdav-mcp-server"]
env = { WEBDAV_AUTH_ENABLED = "<WEBDAV_AUTH_ENABLED>", WEBDAV_PASSWORD = "<WEBDAV_PASSWORD>", WEBDAV_ROOT_PATH = "<WEBDAV_ROOT_PATH>", WEBDAV_ROOT_URL = "<WEBDAV_ROOT_URL>", WEBDAV_USERNAME = "<WEBDAV_USERNAME>" }
# codex mcp add webdav --env WEBDAV_AUTH_ENABLED='<WEBDAV_AUTH_ENABLED>' --env WEBDAV_PASSWORD='<WEBDAV_PASSWORD>' --env WEBDAV_ROOT_PATH='<WEBDAV_ROOT_PATH>' --env WEBDAV_ROOT_URL='<WEBDAV_ROOT_URL>' --env WEBDAV_USERNAME='<WEBDAV_USERNAME>' -- npx webdav-mcp-server~/.cursor/mcp.json
{
"mcpServers": {
"webdav": {
"command": "npx",
"args": [
"webdav-mcp-server"
],
"env": {
"WEBDAV_AUTH_ENABLED": "<WEBDAV_AUTH_ENABLED>",
"WEBDAV_PASSWORD": "<WEBDAV_PASSWORD>",
"WEBDAV_ROOT_PATH": "<WEBDAV_ROOT_PATH>",
"WEBDAV_ROOT_URL": "<WEBDAV_ROOT_URL>",
"WEBDAV_USERNAME": "<WEBDAV_USERNAME>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"webdav": {
"type": "stdio",
"command": "npx",
"args": [
"webdav-mcp-server"
],
"env": {
"WEBDAV_AUTH_ENABLED": "<WEBDAV_AUTH_ENABLED>",
"WEBDAV_PASSWORD": "<WEBDAV_PASSWORD>",
"WEBDAV_ROOT_PATH": "<WEBDAV_ROOT_PATH>",
"WEBDAV_ROOT_URL": "<WEBDAV_ROOT_URL>",
"WEBDAV_USERNAME": "<WEBDAV_USERNAME>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"webdav": {
"command": "npx",
"args": [
"webdav-mcp-server"
],
"env": {
"WEBDAV_AUTH_ENABLED": "<WEBDAV_AUTH_ENABLED>",
"WEBDAV_PASSWORD": "<WEBDAV_PASSWORD>",
"WEBDAV_ROOT_PATH": "<WEBDAV_ROOT_PATH>",
"WEBDAV_ROOT_URL": "<WEBDAV_ROOT_URL>",
"WEBDAV_USERNAME": "<WEBDAV_USERNAME>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"webdav": {
"command": "npx",
"args": [
"webdav-mcp-server"
],
"env": {
"WEBDAV_AUTH_ENABLED": "<WEBDAV_AUTH_ENABLED>",
"WEBDAV_PASSWORD": "<WEBDAV_PASSWORD>",
"WEBDAV_ROOT_PATH": "<WEBDAV_ROOT_PATH>",
"WEBDAV_ROOT_URL": "<WEBDAV_ROOT_URL>",
"WEBDAV_USERNAME": "<WEBDAV_USERNAME>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"webdav": {
"command": "npx",
"args": [
"webdav-mcp-server"
],
"env": {
"WEBDAV_AUTH_ENABLED": "<WEBDAV_AUTH_ENABLED>",
"WEBDAV_PASSWORD": "<WEBDAV_PASSWORD>",
"WEBDAV_ROOT_PATH": "<WEBDAV_ROOT_PATH>",
"WEBDAV_ROOT_URL": "<WEBDAV_ROOT_URL>",
"WEBDAV_USERNAME": "<WEBDAV_USERNAME>"
}
}
}
}Environment variables
WEBDAV_AUTH_ENABLEDWEBDAV_PASSWORDWEBDAV_ROOT_PATHWEBDAV_ROOT_URLWEBDAV_USERNAME
Replace the placeholders with your own credentials and keep them out of version control.