WebDAV MCP服务器简介

WebDAV MCP服务器是一个应用后端,它实现了 Model Context Protocol (MCP),旨在让大型语言模型 (LLM) 客户端能够方便地与 WebDAV 服务器进行交互。通过此服务器,你可以使用自然语言指令,让 Claude Desktop 或其他 MCP 客户端对 WebDAV 文件系统执行创建、读取、更新和删除 (CRUD) 等操作。

主要功能点:

  • 连接WebDAV服务: 允许LLM客户端连接到任何支持基本身份验证的WebDAV服务器。
  • 文件及目录操作: 支持在WebDAV服务器上创建、读取、更新和删除文件和目录。
  • MCP资源和工具: 将WebDAV的文件操作以 MCP 资源和工具的形式暴露给LLM客户端,方便调用。
  • 多种传输协议: 支持 Stdio (用于 Claude Desktop 集成) 和 HTTP/SSE 传输方式。
  • 安全访问: 通过基本身份验证保护WebDAV和MCP服务器的访问安全。
  • 密码加密: 支持使用 bcrypt 加密密码,提升安全性。

安装步骤:

  1. 环境准备: 确保已安装 Node.js 18 或更高版本,以及 npm 或 yarn 包管理器。同时,你需要一个可访问的 WebDAV 服务器。
  2. 选择安装方式:
    • 方式一:npm 全局安装: 运行 'npm install -g webdav-mcp-server' 命令进行全局安装。
    • 方式二:从源代码构建: 克隆仓库 'git clone https://github.com/LaubPlusCo/mpc-webdav-server.git',进入目录 'cd mpc-webdav-server',运行 'npm install' 安装依赖,然后运行 'npm run build' 构建项目。
    • 方式三:Docker: 构建 Docker 镜像 'docker build -t webdav-mcp-server .',然后运行容器,具体命令请参考仓库 README。
  3. 配置服务器:
    • 创建或编辑 '.env' 文件,配置 WebDAV 服务器的连接信息 (URL, 路径, 用户名, 密码) 以及 MCP 服务器自身的端口和认证信息 (HTTP 模式下需要)。
    • 可以选择使用明文密码或 bcrypt 加密后的密码。如果使用 bcrypt 加密,可以使用提供的工具 'npm run generate-hash <yourpassword>' 生成 hash 值。

服务器配置 (MCP 客户端配置):

对于 MCP 客户端 (例如 Claude Desktop),你需要配置连接到 WebDAV MCP 服务器的信息。配置方式取决于你选择的传输协议 (Stdio 或 HTTP/SSE)。

1. Stdio 传输 (适用于 Claude Desktop):

  • 服务器类型 (Type): Command
  • 服务器名称 (Server Name): WebDAV Server (可自定义)
  • 命令 (Command): 'webdav-mcp-server' (如果全局安装) 或 'npx webdav-mcp-server' 或 'node dist/index.js' (如果从源码构建)。
  • 参数 (Args): 留空即可,无需额外参数
  • 描述 (Description): 连接到本地 WebDAV 服务器 (可自定义)
{
  "servers": [
    {
      "serverName": "WebDAV Server",
      "serverType": "command",
      "command": "webdav-mcp-server",
      "args": [],
      "description": "Connect to local WebDAV server via stdio"
    }
  ]
}

2. HTTP/SSE 传输:

  • 服务器类型 (Type): HTTP
  • 服务器名称 (Server Name): WebDAV HTTP Server (可自定义)
  • URL: 'http://localhost:3000/sse' (假设 MCP 服务器运行在 3000 端口,可根据实际 '.env' 配置修改)
  • 认证 (Authentication): Basic
  • 用户名 (Username): 'user' (默认,对应 '.env' 文件中的 'AUTH_USERNAME')
  • 密码 (Password): 'pass' (默认,对应 '.env' 文件中的 'AUTH_PASSWORD')
  • 描述 (Description): 通过 HTTP 连接到 WebDAV 服务器 (可自定义)
{
  "servers": [
    {
      "serverName": "WebDAV HTTP Server",
      "serverType": "http",
      "url": "http://localhost:3000/sse",
      "authentication": "basic",
      "username": "user",
      "password": "pass",
      "description": "Connect to WebDAV server via HTTP/SSE"
    }
  ]
}

基本使用方法:

成功配置并连接 MCP 服务器后,你可以在 Claude Desktop 或其他 MCP 客户端中使用自然语言指令来操作 WebDAV 文件。

示例指令:

  • "列出 WebDAV 根目录下的文件"
  • "在 WebDAV 中创建一个名为 notes.txt 的新文本文件,内容为:Hello World"
  • "读取 WebDAV 服务器上的 document.txt 文件"
  • "更新我的 config.json 文件"
  • "在 WebDAV 中创建一个名为 projects 的目录"
  • "将我的 report.docx 文件复制到备份位置"
  • "将文件 old_name.txt 重命名为 new_name.txt"
  • "删除文件 temp.txt"

资源 (Resources):

  • 'webdav://{path}/list': 列出指定路径下的文件和目录。
  • 'webdav://{path}/content': 获取指定路径文件的内容。
  • 'webdav://{path}/info': 获取指定路径文件或目录的详细信息。

工具 (Tools):

  • 'create-file': 创建新文件。
  • 'read-file': 读取文件内容。
  • 'update-file': 更新文件内容。
  • 'delete': 删除文件或目录。
  • 'create-directory': 创建新目录。
  • 'move': 移动或重命名文件/目录。
  • 'copy': 复制文件/目录。
  • 'list-directory': 列出目录内容。

提示模板 (Prompts):

提供了一系列预定义的 Prompt 模板,用于各种文件操作,方便LLM理解用户意图并执行相应的工具。

信息

分类

数据库与文件