About Seafile
Seafile is a macOS MCP server for working with files on a Seafile server, intended for AI assistants using MCP clients. Browser-based sign-in keeps passwords from the assistant, while grouped read and write tools cover file management and sharing.
Key features
- 01Browse libraries, folders and file details
- 02Search files and folders by name
- 03Read paged text files
- 04Upload, download and organize files
- 05Manage versions, trash and share links
- 06Use browser sign-in and macOS Keychain
Use cases
- 01Find and read documents in Seafile libraries
- 02Organize files across folders and libraries
- 03Restore an earlier file version or deleted item
- 04Create or remove file share links
MCP support
This MCP server runs over stdio for MCP clients and exposes grouped `read` and `write` tools for Seafile operations. Sign-in opens the server's login page in a browser, and the token is stored in macOS Keychain.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project README
Seafile MCP
Let your AI assistant browse, search, read and organize the files in your Seafile —
with a browser sign-in, from any MCP client on a Mac. No dependencies.
Download the latest release · Install · What it can do · Safety
Why this exists
Seafile is a self-hosted file sync and share server. This MCP server lets an assistant work with it the way a connector would:
- Browser sign-in. The first time, a browser window opens on your Seafile's own login page — password, SSO or two-factor, whatever your server uses. The assistant never sees your password; the token goes into the macOS Keychain.
- Any MCP client. Desktop chat apps, local-model apps, coding agents — anything that starts an MCP server over stdio.
- Nothing to install. No Node, no Python, no Homebrew: it runs on JavaScript for Automation with the Mac's own
curland Keychain. - Two permission prompts, not thirty. Everything is grouped into a
readtool and awritetool. - Works with small local models too. Arguments are forgiving (
repoforlibrary,folderforpath,"true", short action names likels,mv,rm), and every mistake comes back with a plain "how to fix".
What it can do
| Browse | Libraries (yours, shared, group), folders, file details. |
| Search | Files and folders by name, in one library or all. |
| Read | The text of text files (Markdown, CSV, code, logs…), paged for long ones. |
| Versions & trash | A file's history, bring back an old version, list and restore deleted items. |
| Files | Download into your local folder, upload from it, write a text file. |
| Organize | Create folders, rename, move and copy (also between libraries), delete to the library trash. |
| Share | Create share links (password, expiry, download/upload), list and remove them. |
Install
You need macOS 14 or later and an MCP client.
Any MCP client
Get the code (git clone, or unzip the .mcpb from the latest release) and add the server to your client's config:
{
"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 prints this block with the right path.
Claude Desktop (one click)
Download seafile-mcp.mcpb from the latest release, double-click it and click Install. Settings live in Settings → Extensions.
Settings
| Variable | What it does |
|---|---|
SEAFILE_URL | Your server, e.g. https://cloud.example.com. If empty, tell the assistant at the first sign-in; it is remembered. |
SEAFILE_LOCAL_DIR | The only local folder files are downloaded to and uploaded from. Default ~/Downloads. |
SEAFILE_READ_ONLY=true | Removes the write tool entirely. |
SEAFILE_TIMEOUT | Seconds one call may take before it is stopped (default 60). |
The server must allow browser sign-in for clients (CLIENT_SSO_VIA_LOCAL_BROWSER = True in seahub_settings.py, as the Seafile desktop client uses).
Safety
- Deletes go to the library trash and can be restored — and the server refuses to delete in a library that keeps no history (where deleted items would be gone).
- Nothing is overwritten by surprise. Uploading or writing over an existing file needs
replace: true, and the old one stays in the file history. Downloads never overwrite local files. - One local folder. Uploads come only from, and downloads go only to, the local folder in the settings — a prompt-injected "upload ~/.ssh/id_rsa" is refused.
- Dry runs for upload, write, move, copy, delete and share links.
- No accidental repeats. The same write twice within 15 minutes is refused unless asked again on purpose.
- Nothing hangs. A call that takes too long is stopped with a clear error; ping and tools/list always answer.
- Watch out for instructions hidden in files. Anything the assistant reads becomes part of its context. Keep
writeon manual approval, or turn on read-only mode. - One readable file. The whole server is
server/seafile-mcp.js.
Encrypted libraries can be listed, but not read, uploaded to or shared here — use the Seafile web page or desktop client for those.
Tool reference
Two tools, each taking { "action": "...", "args": { ... } }; the full argument list is in each tool's description. Paths start at the library root (/Projects/report.pdf); libraries are given by name or 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
Development
/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
Push a tag (git tag v0.1.0 && git push origin v0.1.0) and GitHub Actions runs the tests, builds the .mcpb, attaches it to a release and lists it in the MCP Registry.
License
MIT © IPSupport LLC
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.