LM

laubplusco/mcp-webdav-server

Developer tools

Эта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал

19 stars 10 forks Качество 65 Тренд 22MIT

Сервер Model Context Protocol (MCP), который позволяет выполнять операции CRUD на конечной точке WebDAV с базовой аутентификацией.

Обзор

Сервер Model Context Protocol (MCP), который позволяет выполнять операции CRUD на конечной точке WebDAV с базовой аутентификацией. Этот сервер позволяет Claude Desktop и другим MCP-клиентам взаимодействовать с файловыми системами WebDAV с помощью команд естественного языка. - Подключение к любому серверу WebDAV с дополнительной аутентификацией - Выполнение операций CRUD в файлах и каталогах - Экспозиция файловых операций в качестве ресурсов и инструментов MCP - Запуск через стио транспорт (для интеграции с Claude Desktop) или транспорт HTTP / SSE - Безопасный доступ с дополнительной базовой аутентификацией - Поддержка зашифрованных паролей для аутентификации MCP-сервера (пароли WebDAV должны быть простым текстом из-за ограничений протокола) - Объединение для лучшей производительности с серверами WebDAV - Проверка конфигурации с использованием Zod - Структурированная регистрация для лучшего устранения неполадок Node.js 18 или более поздней версии - npm или yarn - сервер WebDAV (для реальных файловых операций) Создать.

Обзор (машинный перевод)

Сервер Model Context Protocol (MCP), который позволяет выполнять операции CRUD на конечной точке WebDAV с базовой аутентификацией. Этот сервер позволяет Claude Desktop и другим MCP-клиентам взаимодействовать с файловыми системами WebDAV с помощью команд естественного языка.

Особенности

Подключение к любому серверу WebDAV с дополнительной аутентификацией

  • Выполнять операции CRUD на файлах и каталогах Экспозиция файловых операций как ресурсов и инструментов MCP
  • Запуск через stdio transport (для интеграции с Claude Desktop) или HTTP/SSE Безопасный доступ с дополнительной базовой аутентификацией Поддержка bcrypt-зашифрованных паролей для аутентификации MCP-сервера (пароли WebDAV должны быть простым текстом из-за ограничений протокола)
  • Объединение соединений для повышения производительности с серверами WebDAV
  • Проверка конфигурации с помощью Zod
  • Структурированная регистрация для лучшего устранения неполадок

Предпосылки

Node.js 18 или более поздняя версия

  • npm или пряжу WebDAV-сервер (для реальных файловых операций)

##Установка

Вариант 1: Установка пакета npm

Вариант 2: Клонирование и сборка из источника

Вариант 3: Докер

Конфигурация

Создайте файл .env в корневом каталоге со следующими переменными:

Эта страница переведена автоматически. Технические детали смотрите в оригинале.

README

Показан фрагмент оригинального README. Открыть оригинал.

WebDAV MCP Server

A Model Context Protocol (MCP) server that enables CRUD operations on a WebDAV endpoint with basic authentication. This server enables Claude Desktop and other MCP clients to interact with WebDAV file systems through natural language commands.

Features

  • Connect to any WebDAV server with optional authentication
  • Perform CRUD operations on files and directories
  • Expose file operations as MCP resources and tools
  • Run via stdio transport (for Claude Desktop integration) or HTTP/SSE transport
  • Secure access with optional basic authentication
  • Support for bcrypt-encrypted passwords for MCP server authentication (WebDAV passwords must be plain text due to protocol limitations)
  • Connection pooling for better performance with WebDAV servers
  • Configuration validation using Zod
  • Structured logging for better troubleshooting

Prerequisites

  • Node.js 18 or later
  • npm or yarn
  • WebDAV server (for actual file operations)

Installation

Option 1: Install from npm package

# Global installation
npm install -g webdav-mcp-server

# Or with npx
npx webdav-mcp-server

Option 2: Clone and build from source

# Clone repository
git clone https://github.com/yourusername/webdav-mcp-server.git
cd webdav-mcp-server

# Install dependencies
npm install

# Build the application
npm run build

Option 3: Docker

# Build the Docker image
docker build -t webdav-mcp-server .

# Run the container without authentication
docker run -p 3000:3000 \
  -e WEBDAV_ROOT_URL=http://your-webdav-server \
  -e WEBDAV_ROOT_PATH=/webdav \
  webdav-mcp-server
  
# Run the container with authentication for both WebDAV and MCP server
docker run -p 3000:3000 \
  -e WEBDAV_ROOT_URL=http://your-webdav-server \
  -e WEBDAV_ROOT_PATH=/webdav \
  -e WEBDAV_AUTH_ENABLED=true \
  -e WEBDAV_USERNAME=admin \
  -e WEBDAV_PASSWORD=password \
  -e AUTH_ENABLED=true \
  -e AUTH_USERNAME=user \
  -e AUTH_PASSWORD=pass \
  webdav-mcp-server

Configuration

Create a .env file in the root directory with the following variables:

# WebDAV configuration
WEBDAV_ROOT_URL=http://localhost:4080
WEBDAV_ROOT_PATH=/webdav

# WebDAV authentication (optional)
WEBDAV_AUTH_ENABLED=true
WEBDAV_USERNAME=admin

# WebDAV password must be plain text (required when auth enabled)
# The WebDAV protocol requires sending the actual password to the server
WEBDAV_PASSWORD=password

# Server configuration (for HTTP mode)
SERVER_PORT=3000

# Authentication configuration for MCP server (optional)
AUTH_ENABLED=true
AUTH_USERNAME=user
AUTH_PASSWORD=pass
AUTH_REALM=MCP WebDAV Server

# Auth password for MCP server can be a bcrypt hash (unlike WebDAV passwords)
# AUTH_PASSWORD={bcrypt}$2y$10$CyLKnUwn9fqqKQFEbxpZFuE9mzWR/x8t6TE7.CgAN0oT8I/5jKJBy

Encrypted Passwords for MCP Server Authentication

For enhanced security of the MCP server (not WebDAV connections), you can use bcrypt-encrypted passwords instead of storing them in plain text:

Открыть полный README на GitHub

Установка

npx -y webdav-mcp-server
Новичок в MCP? Начните с руководства на mcpskill.org →

Конфигурация

{ "mcpServers": { "webdav": { "command": "npx", "args": [ "-y", "webdav-mcp-server" ], "env": { "WEBDAV_ROOT_URL": "<WEBDAV_ROOT_URL>", "WEBDAV_ROOT_PATH": "<WEBDAV_ROOT_PATH>", "WEBDAV_USERNAME": "<WEBDAV_USERNAME>", "WEBDAV_PASSWORD": "<WEBDAV_PASSWORD>", "WEBDAV_AUTH_ENABLED": "true|false" } } } }