关于 Seafile
Seafile 是适用于 macOS 的 MCP 服务,可供使用 MCP 客户端的 AI 助手管理 Seafile 服务器中的文件。浏览器登录避免助手接触密码,分组的读取和写入工具涵盖文件管理与共享。
主要功能
- 01浏览资料库、文件夹和文件详情
- 02按名称搜索文件和文件夹
- 03分页读取文本文件
- 04上传、下载和整理文件
- 05管理版本、回收站和共享链接
- 06通过浏览器登录并使用 macOS Keychain
适用场景
- 01查找并阅读 Seafile 资料库中的文档
- 02整理不同文件夹和资料库中的文件
- 03恢复旧版本或已删除项目
- 04创建或移除文件共享链接
MCP 相关
该 MCP 服务通过 stdio 供 MCP 客户端运行,并以分组的 `read` 和 `write` 工具提供 Seafile 操作。登录会在浏览器中打开服务器登录页,令牌存储在 macOS Keychain 中。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Seafile MCP
让 AI 助手浏览、搜索、读取和整理 Seafile 中的文件——
在 Mac 上通过浏览器登录,适用于任何 MCP 客户端。无需依赖项。
为什么要开发它
Seafile 是一款可自托管的文件同步与共享服务。这个 MCP 服务让助手像使用连接器一样与其交互:
- 通过浏览器登录。 首次使用时,会在浏览器中打开 Seafile 自带的登录页面——无论你的服务使用密码、SSO 还是双重验证。助手永远不会看到你的密码;令牌会存入 macOS 钥匙串。
- 适用于任何 MCP 客户端。 桌面聊天应用、本地模型应用、编码 Agent——任何能通过标准输入输出启动 MCP 服务的应用都可以使用。
- 无需安装任何东西。 不需要 Node、Python 或 Homebrew:它使用 JavaScript for Automation,以及 Mac 自带的
curl和钥匙串运行。 - 只需两次权限提示,而不是三十次。 所有功能都归入
read和write两个工具。 - 也适用于小型本地模型。 参数设置灵活(
repo可代替library,folder可代替path,支持"true",以及ls、mv、rm等简短操作名称),每次出错都会给出直白的修复方法。
功能
| 浏览 | 资料库(个人、共享、群组)、文件夹、文件详情。 |
| 搜索 | 按名称搜索文件和文件夹,可搜索单个或所有资料库。 |
| 读取 | 读取文本文件内容(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 | 你的服务地址,例如 https://cloud.example.com。如果留空,请在首次登录时告知助手;之后会记住该地址。 |
SEAFILE_LOCAL_DIR | 文件下载到的唯一本地文件夹,也是上传文件的来源。默认值为 ~/Downloads。 |
SEAFILE_READ_ONLY=true | 完全移除 write 工具。 |
SEAFILE_TIMEOUT | 单次调用超时前可运行的秒数(默认值为 60)。 |
服务必须允许客户端通过浏览器登录(在 seahub_settings.py 中设置 CLIENT_SSO_VIA_LOCAL_BROWSER = True,与 Seafile 桌面客户端使用的设置相同)。
安全
- 删除的内容会移至库的回收站,并且可以还原;如果某个库不保留历史记录(删除的内容将永久消失),服务器会拒绝在其中执行删除操作。
- 不会意外覆盖任何内容。 上传或写入现有文件时,必须设置
replace: true,且旧文件会保留在文件历史记录中。下载不会覆盖本地文件。 - 仅使用一个本地文件夹。 上传内容只能来自设置中的本地文件夹,下载内容也只能保存到该文件夹;因此,受到提示词注入的“上传 ~/.ssh/id_rsa”请求会被拒绝。
- 上传、写入、移动、复制、删除和创建共享链接操作均支持试运行。
- 防止意外重复操作。 15 分钟内重复执行相同的写入操作会被拒绝,除非再次主动确认。
- 不会卡住。 调用耗时过长时会停止并返回明确的错误;ping 和 tools/list 始终会响应。
- 注意文件中隐藏的指令。 助手读取的任何内容都会成为其上下文的一部分。请将
write保持为手动批准,或开启只读模式。 - 整个服务只有一个可读文件。
server/seafile-mcp.js。
可以列出加密库,但无法在此读取、上传内容到这些库或分享这些库;请使用 Seafile 网页或桌面客户端进行操作。
工具参考
两个工具,均接受 { "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 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。