Seafile について
Seafileは、MCPクライアントを使うAIアシスタント向けに、Seafileサーバー上のファイルを扱うmacOS用MCPサーバーです。ブラウザーでログインするため、アシスタントにパスワードを渡さずに済み、読み取りと書き込みに分かれたツールでファイル管理や共有を行えます。
主な機能
- 01ライブラリ、フォルダー、ファイル情報を閲覧
- 02名前でファイルやフォルダーを検索
- 03テキストファイルをページ単位で読み取り
- 04ファイルのアップロード、ダウンロード、整理
- 05バージョン、ゴミ箱、共有リンクの管理
- 06ブラウザー認証とmacOS Keychainの利用
活用シーン
- 01Seafileライブラリ内の文書を検索して読む
- 02フォルダーやライブラリ間でファイルを整理
- 03以前のバージョンや削除済み項目を復元
- 04ファイル共有リンクを作成または削除
MCP 対応
stdioでMCPクライアントから実行し、Seafile操作用の`read`と`write`ツールを提供します。ログイン時はブラウザーでサーバーのログインページを開き、トークンをmacOS Keychainに保存します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Seafile MCP
AI アシスタントが Seafile 内のファイルを閲覧、検索、読み取り、整理できます。
ブラウザーでサインインすれば、Mac 上のどの MCP クライアントからでも利用できます。依存関係はありません。
最新リリースをダウンロード · インストール · できること · 安全性
開発の背景
Seafile は、セルフホスト可能なファイル同期・共有サーバーです。この MCP サーバーを使うと、コネクターのようにアシスタントから Seafile を操作できます。
- ブラウザーでサインイン。 初回は、Seafile 自身のログインページがブラウザーウィンドウで開きます。パスワード、SSO、二要素認証など、サーバーで使っている方法でサインインできます。アシスタントにパスワードが伝わることはありません。トークンは macOS キーチェーンに保存されます。
- あらゆる MCP クライアントに対応。 デスクトップチャットアプリ、ローカルモデルアプリ、コーディングエージェントなど、stdio 経由で MCP サーバーを起動するものなら何でも使えます。
- インストール不要。 Node、Python、Homebrew は不要です。Mac 標準の
curlとキーチェーンを使い、JavaScript for Automation 上で動作します。 - 権限プロンプトは 30 個ではなく 2 個。 すべての操作は
readツールとwriteツールにまとめられています。 - 小型のローカルモデルにも対応。 引数に柔軟性があり(
libraryの代わりにrepo、pathの代わりにfolder、"true"、ls、mv、rmのような短いアクション名)、間違いがあると、修正方法をわかりやすく案内します。
できること
| 閲覧 | ライブラリ(自分のもの、共有、グループ)、フォルダー、ファイルの詳細を確認できます。 |
| 検索 | 1 つのライブラリ内またはすべてのライブラリから、名前でファイルやフォルダーを検索できます。 |
| 読み取り | テキストファイル(Markdown、CSV、コード、ログなど)の内容を読み取れます。長いファイルはページ分けされます。 |
| バージョンとゴミ箱 | ファイルの履歴を確認し、古いバージョンを復元したり、削除済みアイテムを一覧表示して復元したりできます。 |
| ファイル | ローカルフォルダーへのダウンロード、ローカルフォルダーからのアップロード、テキストファイルの書き込みができます。 |
| 整理 | フォルダーの作成、名前変更、移動、コピー(ライブラリ間も可能)、ライブラリのゴミ箱への削除ができます。 |
| 共有 | 共有リンク(パスワード、有効期限、ダウンロード/アップロード)を作成、一覧表示、削除できます。 |
インストール
macOS 14 以降と MCP クライアントが必要です。
あらゆる MCP クライアント
コードを取得し(git clone を実行するか、最新リリースから .mcpb を展開)、クライアントの設定にサーバーを追加します。
{
"mcpServers": {
"seafile": {
"command": "/usr/bin/osascript",
"args": ["-l", "JavaScript", "/path/to/seafile-mcp/server/seafile-mcp.js"],
"env": { "SEAFILE_URL": "https://cloud.example.com" }
}
}
}
./install.sh --print --server https://cloud.example.com を実行すると、正しいパスを含むこのブロックが表示されます。
Claude Desktop(ワンクリック)
最新リリースから seafile-mcp.mcpb をダウンロードし、ダブルクリックして Install をクリックします。設定は Settings → Extensions にあります。
設定
| 変数 | 説明 |
|---|---|
SEAFILE_URL | サーバーの URL(例:https://cloud.example.com)です。空の場合は、初回サインイン時にアシスタントに伝えてください。URL は記憶されます。 |
SEAFILE_LOCAL_DIR | ファイルのダウンロード先およびアップロード元として使用する唯一のローカルフォルダーです。既定値は ~/Downloads です。 |
SEAFILE_READ_ONLY=true | write ツールを完全に無効にします。 |
SEAFILE_TIMEOUT | 呼び出しを停止するまでの秒数です(既定値は 60 秒)。 |
サーバーでは、クライアントによるブラウザーサインインを許可する必要があります(Seafile デスクトップクライアントが使用する設定と同様に、seahub_settings.py で CLIENT_SSO_VIA_LOCAL_BROWSER = True を設定します)。
安全性
- 削除した項目はライブラリのゴミ箱に移動し、復元できます。また、削除した項目が消失してしまう履歴を保持しないライブラリでは、サーバーは削除を拒否します。
- 予告なく上書きされることはありません。 既存のファイルをアップロードまたは書き込みで上書きするには、
replace: trueが必要です。古いファイルはファイル履歴に残ります。ダウンロードでローカルファイルが上書きされることはありません。 - ローカルフォルダーは1つです。 アップロード元とダウンロード先は、設定で指定したローカルフォルダーに限られます。プロンプトインジェクションによる「~/.ssh/id_rsa をアップロードして」という指示は拒否されます。
- アップロード、書き込み、移動、コピー、削除、共有リンクにはドライランがあります。
- 同じ操作が意図せず繰り返されることはありません。 15分以内に同じ内容を書き込もうとすると、意図的に再度指示しない限り拒否されます。
- 処理が停止したままになることはありません。 時間がかかりすぎる呼び出しは、明確なエラーとともに停止します。ping と tools/list は常に応答します。
- ファイルに隠された指示に注意してください。 アシスタントが読み取った内容はすべてコンテキストの一部になります。
writeは手動承認のままにするか、読み取り専用モードを有効にしてください。 - 読みやすいファイルは1つです。 サーバー全体は
server/seafile-mcp.jsにあります。
暗号化されたライブラリは一覧表示できますが、読み取り、アップロード、共有はできません。これらの操作には Seafile のウェブページまたはデスクトップクライアントを使用してください。
ツールのリファレンス
2つのツールがあり、どちらも { "action": "...", "args": { ... } } を受け取ります。引数の全一覧は各ツールの説明に記載されています。パスはライブラリのルート(/Projects/report.pdf)を起点とします。ライブラリは名前または ID で指定します。
read:sign_in · status · list_libraries · list_folder · search · file_info · read_file · file_history · list_trash · list_share_links
write:download_file · upload_file · write_text_file · create_folder · rename · move · copy · delete · restore · revert_file · create_share_link · delete_share_link · sign_out
開発
/usr/bin/osascript -l JavaScript tests/unit.js server/seafile-mcp.js # fake Seafile, fake Keychain
python3 tests/protocol.py # JSON-RPC, worker, installer
./test.sh # real server: signs in, lists libraries
タグをプッシュすると(git tag v0.1.0 && git push origin v0.1.0)、GitHub Actions がテストを実行し、.mcpb をビルドしてリリースに添付し、MCP Registry に登録します。
ライセンス
MIT © IPSupport LLC
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。