WebDAV MCP について
WebDAV MCPは、WebDAV上のファイルを扱うAIエージェント向けの依存関係不要のサーバーです。単一の静的バイナリで、Node.jsやPythonなしにstdio経由で8種類のファイル・ディレクトリ操作を提供します。
主な機能
- 01ファイルとディレクトリの一覧表示
- 02ファイル内容の読み書き
- 03項目の削除・移動・コピー
- 04ディレクトリ作成とメタデータ確認
- 05ランタイム依存のない静的バイナリ
活用シーン
- 01WebDAVサーバー上のファイル閲覧
- 02リモート文書の読み取りや更新
- 03ファイルとディレクトリの整理
- 04MCP対応エージェントからのWebDAV操作
MCP 対応
stdio経由のJSON-RPC 2.0でMCPを実装し、MCPクライアントに8種類のWebDAV操作ツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
webdav-mcp
依存関係ゼロの WebDAV MCP サーバーです。単一の静的バイナリで動作し、Node.js や Python は不要です。
stdio 経由で JSON-RPC 2.0 を使用して Model Context Protocol(MCP)を実装し、MCP 対応の AI エージェントが呼び出せる 8 種類の WebDAV 操作をツールとして公開します。
このプロジェクトを作った理由
GitHub にある他の WebDAV MCP サーバーは、すべて Node.js または Python のランタイムを必要とします。このサーバーは Zig からコンパイルされた、自己完結型の単一バイナリ(約 100~160 KB)です。ランタイムをインストールせずにどこでも実行でき、1 台のマシンから主要なすべてのプラットフォーム向けにクロスコンパイルできます。
ツール
| ツール | 説明 |
|---|---|
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"
}
}
}
}
このサーバーは、標準の MCP トランスポートである、stdio 経由の JSON-RPC 2.0(改行区切り)を使用します。登録すると、エージェントは通常のツール呼び出しとして 8 種類すべてのツールを呼び出せます。
テストの実行
zig build test --summary all
すべてのユニットテストで、XML 解析、JSON-RPC ディスパッチ、引数の抽出、URL の構築、パーセントエンコーディング、エンティティのデコード、HTTP メソッドのルーティングを検証します。
ライセンス
MIT — LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。