# Seafile MCP connector

The Seafile connector lets Claude, ChatGPT, Cursor, and any MCP client browse your Seafile libraries, find and file documents, and create share links, with each person's own Seafile access applied to every request.

Source: https://elaichi.ai/connectors/seafile/

## Facts

| | |
| --- | --- |
| Application | Seafile |
| Category | Cloud Storage |
| AI tools | 30 |
| Authentication | Connects with an API key |
| Needs your own OAuth app | No |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | Yes |

## What you can ask once Seafile is connected

- List share links created in the Marketing library this week.
- Which Seafile repos have upload links still active?
- Summarize files added to the Engineering library yesterday.

## Connect Seafile in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick Seafile.
2. Optionally set Share with, then press Connect.
3. Paste a Seafile API key. One person generates a token in Seafile and pastes it once. Everyone else works through Share with, and never sees it.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which Seafile tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Connect Seafile to Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Connect Seafile to ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Connect Seafile to Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect Seafile to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a Seafile tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with Seafile through Elaichi

### Find the right file across every library

Operations. Ask for the latest version of a vendor contract or a floor plan and the agent searches your Seafile libraries and folders, then tells you where it lives.

### Send a proposal with a share link

Sales. After a call, ask the agent to create a Seafile share link for the proposal and hand it back ready to paste into the follow-up email.

### Set up a matter folder before kickoff

Legal. Describe the new matter and the agent creates the folder structure in the right Seafile library and drops in the standard templates.

### File onboarding documents in the right place

HR. Give the agent a new hire's name and it creates their folder, saves the signed offer and policy acknowledgments, and confirms what landed where.

### Tag assets so the team can find them

Marketing. Ask the agent to update metadata on a batch of campaign images and build a view that groups them by campaign, channel, and status.

### Review which files are shared outside

IT. Ask which download and upload links are open across your Seafile libraries and which library tokens are still active, then clean up the ones nobody needs.

## Frequently asked questions

### How do I connect Seafile to Claude?

Two steps. In Elaichi, choose Seafile and paste in an API key from your Seafile account, since Seafile connects with an API key and there is no client ID or secret to generate. Then in Claude open Customize, then Connectors, then Add, and paste the endpoint https://api.elaichi.ai/mcp. Sign in with your Elaichi account and Seafile is available in Claude.

### Does Seafile work with ChatGPT and Cursor as well as Claude?

Yes. Once Seafile is connected in Elaichi, the same endpoint, https://api.elaichi.ai/mcp, works in Claude, ChatGPT, Cursor, any other MCP client, and the Elaichi Agent. You connect Seafile once and every client picks it up.

### What can an AI agent actually do with my Seafile data?

With Seafile connected, an agent can list your libraries and folders, search for files by name, and tell you where a document lives. It can create folders and files, update or remove files in bulk, create share links, and review open download and upload links. It can also read and update the metadata on files and build metadata views that group files the way your team thinks about them.

### Does connecting Seafile give the AI access to every library?

No. Every request to Seafile runs as the person who signed in, so the agent sees only the libraries, folders, and files that person can already open in Seafile. Elaichi can narrow that further by hiding actions for a team or a person, but it can never widen access beyond what Seafile itself allows.

### Can my team share one Seafile connection?

Yes. One person connects Seafile in Elaichi and shares the connection with a team, and nobody else ever handles the API key. Each teammate still signs in to Elaichi as themselves, so every action on Seafile in the audit log is tied to the person who took it.

### Can I stop an agent from deleting or changing things in Seafile?

Yes. Restrictions in Elaichi apply per action, so you can allow searching and creating share links in Seafile while blocking file deletion, folder deletion, or bulk updates. A blocked action is never shown to Claude, ChatGPT, Cursor, or any other client, so no prompt can reach it.

### What happens to a Seafile connection when someone leaves?

When a person is offboarded in Elaichi, their access to Seafile through every client ends at once. A Seafile connection they shared with a team keeps working for everyone else. If you want to remove Seafile entirely, disconnecting it once in Elaichi removes it from Claude, ChatGPT, Cursor, and every other client at the same time.

## All 30 Seafile tools

Every tool below is callable through https://api.elaichi.ai/mcp once Seafile is connected, subject to the toolbox it is in and the restrictions on the caller.

- **Create a Seafile auth token** (Create). Create a Seafile account token by authenticating with your username and password. Returns: token, openapi, info, tags, servers, components, paths, x-readme, _id. Required: username, password. Two-factor authentication requires the X-SEAFILE-OTP header.
- **List all Seafile repo API tokens** (List). List all repo API tokens for a Seafile library. Returns: repo_id, app_name, generated_by, permission, api_token. Required: repo_id.
- **Create a Seafile repo API token** (Create). Generate a new repo API token for a Seafile library. Returns: repo_id, app_name, generated_by, permission, api_token, openapi, info, servers, x-readme, components, paths, _id. Required: repo_id, app_name.
- **Seafile repo API tokens bulk update** (Update). Update a repo API token's permission in a Seafile library. Returns: repo_id, app_name, generated_by, permission, api_token, openapi, info, servers, x-readme, components, paths, _id. Required: repo_id, app_name, permission.
- **Seafile repo API tokens bulk delete** (Delete). Delete a repo API token from a Seafile library. Returns: success, openapi, info, servers, x-readme, components, paths, _id. Required: repo_id, app_name.
- **List all Seafile repo info** (List). Get information about the current Seafile repository accessible via Repo-Token. Returns: repo_id, repo_name, openapi, info, servers, x-readme, components, paths, _id.
- **List all Seafile files** (List). Get detailed information about a Seafile file by path. Returns: type, repo_id, parent_dir, obj_name, obj_id, size, mtime, can_preview, can_edit, openapi, info, servers, x-readme, components, paths, _id. Required: path.
- **Create a Seafile file** (Create). Create, rename, move, copy, or revert a Seafile file by path. Returns the file object (type, repo_id, obj_name, obj_id, size, mtime) or a revert success flag. Required: path, operation. Additional fields depend on operation: dst_dir, commit_id, or newname.
- **Seafile files bulk update** (Update). Lock or unlock a Seafile file by path. Returns: type, repo_id, parent_dir, obj_name, obj_id, size, mtime, can_preview, can_edit, openapi, info, servers, x-readme, components, paths, _id. Required: path, operation.
- **Seafile files bulk delete** (Delete). Delete a Seafile file by path. Returns: success, commit_id, openapi, info, servers, x-readme, components, paths, _id. Required: path.
- **List all Seafile download links** (List). Get a temporary download link for a Seafile file. Returns a string containing the download link. Required: path.
- **List all Seafile upload links** (List). Get the upload link of a Seafile directory. Returns the upload link URL. Required: path.
- **Create a Seafile share link** (Create). Create a share link for a library or folder in Seafile. Returns the share link object including token, link, repo_id, and path. Required: path.
- **List all Seafile metadata records** (List). List metadata records in a Seafile library for a given metadata view. Returns: _creator, _ctime, _file_creator, _file_ctime, _file_details, _file_modifier, _file_mtime, _file_type, _id, _is_dir, _last_modifier, _location, _mtime, _name, _obj_id, _parent_dir, _size, _suffix. Required: view_id.
- **Seafile metadata records bulk update** (Update). Update existing metadata records in a Seafile library. Returns: success, openapi, info, servers, x-readme, components, paths, _id. Required: records_data.
- **List all Seafile metadata views** (List). List all Seafile metadata views for the current database. Returns: _id, table_id, name, filters, sorts, groupbys, filter_conjunction, hidden_columns, type, basic_filters. No additional parameters required.
- **Create a Seafile metadata view** (Create). Create a new Seafile metadata view in the current database when metadata is enabled. Returns the created view object containing _id, name, table_id, type, filters, sorts, groupbys, filter_conjunction, and hidden_columns. Required: name.
- **Seafile metadata views bulk update** (Update). Rename or update filters of an existing Seafile metadata view. Returns a success flag. Required: view_id, view_data.
- **List all Seafile directories** (List). List files and folders in a Seafile directory. Returns: type, id, name, mtime, permission, parent_dir, starred. Required: path.
- **Create a Seafile directory** (Create). Create, rename, or revert a Seafile directory. Returns the folder object including type, repo_id, parent_dir, obj_name, obj_id, and mtime. Required: path.
- **Seafile directories bulk delete** (Delete). Delete a Seafile directory. Returns: success, commit_id, openapi, info, servers, x-readme, components, paths, _id. Required: path.
- **List all Seafile search files** (List). Search files in Seafile by keyword. Returns search result records from the results array, each containing an id and result-specific attributes. Required: q.
- **List all Seafile search repo files** (List). Search files in a Seafile library by keyword. Returns matching file results including file id, name, and path. Required: repo_id, q.
- **List all Seafile libraries** (List). List Seafile libraries. Returns each library with id and library-specific attributes.
- **List all Seafile account share links** (List). List Seafile account share links for the authenticated account. Returns each share link's repo_id, repo_name, path, token, link, ctime, expire_date, is_expired, permissions, and view_cnt.
- **List all Seafile account upload links** (List). Get a Seafile upload link for a directory. Returns the upload link URL as a string. Required: path.
- **List all Seafile starred items** (List). List starred items in Seafile. Returns the list of starred files and directories with their type, id, name, modification time, and parent directory. No caller-supplied parameters are documented.
- **List all Seafile activities** (List). List Seafile activity events. Returns each event with its id and an attributes object containing event-specific details. Optional: avatar_size.
- **List all Seafile library trash** (List). List trashed items in a Seafile library. Returns trashed files and folders with details such as path, name, deleted time, and commit id. Required: repo_id.
- **List all Seafile file history** (List). List the version history of a file in a Seafile repository. Returns a list of commits with commit_id, ctime, creator_name, and email. Required: repo_id, path.
