A side-by-side look at the AIquila — Nextcloud MCP Server and Feishu User Plugin MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose AIquila — Nextcloud MCP Server for workplace & productivity work as a local process; choose Feishu User Plugin for workplace & productivity as a local process. You can also run both side by side in one mcpServers block.
list_files, read_file, write_file.LARK_COOKIE, LARK_APP_ID, LARK_APP_SECRET, LARK_USER_ACCESS_TOKEN, LARK_USER_REFRESH_TOKEN.manage_bitable_app, manage_bitable_table, manage_bitable_field.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Workplace & Productivity | Workplace & Productivity |
| Quality signal | 65/100 · Great | 64/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | Not declared | Not declared |
| Pricing | Not declared | Not declared |
| Required env vars | None listed | LARK_COOKIELARK_APP_IDLARK_APP_SECRETLARK_USER_ACCESS_TOKENLARK_USER_REFRESH_TOKEN |
| Verified owner | Community listing | Community listing |
| GitHub stars | 39 | 10 |
| Directory activity | 1 views 0 installs 0 upvotes | 5 views 0 installs 0 upvotes |
| Tools | 342 | 85 |
| Full listing | View AIquila — Nextcloud MCP Server | View Feishu User Plugin |
list_filesList files and folders in a Nextcloud directoryread_fileRead the contents of a file from Nextcloudwrite_fileCreate or update a file in Nextcloud. File size is limited (default 1 GB, configurable via MCP_MAX_FILE_SIZE).create_folderCreate a folder in NextclouddeleteDelete a file or folder from Nextcloudmove_fileMove or rename a file or folder in Nextcloudcopy_fileCopy a file or folder in Nextcloudget_file_infoGet detailed file metadata from Nextcloud (name, size, mime type, modified date, permissions, etc.)search_filesSearch for files in Nextcloud by name pattern and/or mime typeget_file_contentRead file content from Nextcloud with mime type info. Returns text for text files, base64 for binary files (images, PDFs, etc.). Images are returned as MCP image content for Claude vision.analyze_imageAnalyze one or more images stored in Nextcloud using Claude vision. Ask questions about image content, extract text (OCR), describe visuals, compare images, or analyse documents. Supports up to 20 images for multi-image comparison.bulk_file_operationsExecute multiple file operations (move, copy, delete) sequentially in a single call. Returns per-item results.manage_bitable_app[Official API] Manage a Bitable app. action=create (new app, optional wiki_space_id to attach), copy (duplicate an existing app), get_meta (read app metadata).manage_bitable_table[Official API] Manage a table inside a Bitable app. action=list, create (with optional initial fields), update (rename), delete.manage_bitable_field[Official API] Manage fields (columns) inside a Bitable table. action=list, create, update (Feishu requires `type` even when only renaming), delete.manage_bitable_view[Official API] Manage views inside a Bitable table. action=list, create, delete. (Feishu open API does not expose view update — recreate with a new name to change.)manage_bitable_record[Official API] Manage records (rows) inside a Bitable table. action=search, get, create, update, delete. create/update/delete accept arrays — single record or up to 500.list_calendars[Official API + UAT] List the current user's calendars (primary + shared + subscribed). Requires UAT — app identity only sees calendars it was explicitly invited to. Requires `calendar:calendar:readonly` scope on the OAuth.list_calendar_events[Official API + UAT] List events in a calendar within an optional time range. Typical usage: first list_calendars to find calendar_id (primary calendar has type="primary"), then list events in e.g. [now, now+7d] (Unix seconds).get_calendar_event[Official API + UAT] Get full details of a single calendar event (summary, description, start/end, attendees, location, attachments, meeting link).create_calendar_event[Official API + UAT, v1.3.7] Create a new calendar event. Requires `calendar:calendar.event:create` scope (re-run `npx feishu-user-plugin oauth` after enabling). The current identity (UAT-first) must have writer or owner permission on the calendar.
Time fields: A time object: {timestamp:"<unix-seconds>", timezone?:"Asia/Shanghai"} OR {date:"YYYY-MM-DD"} for all-day events.update_calendar_event[Official API + UAT, v1.3.7] Patch fields on an existing calendar event. Pass only the fields you want to change. Requires `calendar:calendar.event:update` scope.delete_calendar_event[Official API + UAT, v1.3.7] Delete a calendar event. Requires `calendar:calendar.event:delete` scope.respond_calendar_event[Official API + UAT, v1.3.7] Respond to an event invitation. The current identity must be in the event's attendee list. Requires `calendar:calendar.event:reply` scope.Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"aiquila-nextcloud-mcp-server": {
"command": "npx",
"args": [
"-y",
"aiquila-mcp"
]
}
}
}
{
"mcpServers": {
"ethanqc-feishu-user-plugin": {
"command": "npx",
"args": [
"-y",
"feishu-user-plugin"
],
"env": {
"LARK_COOKIE": "YOUR_LARK_COOKIE_HERE",
"LARK_APP_ID": "YOUR_LARK_APP_ID_HERE",
"LARK_APP_SECRET": "YOUR_LARK_APP_SECRET_HERE",
"LARK_USER_ACCESS_TOKEN": "YOUR_LARK_USER_ACCESS_TOKEN_HERE",
"LARK_USER_REFRESH_TOKEN": "YOUR_LARK_USER_REFRESH_TOKEN_HERE"
}
}
}
}