Releases: weironz/appflowy_mcp
v0.6.0
CLI redesigned around AppFlowy's workspace → space → page hierarchy.
appflowy-cli use test # default workspace, kubectl-style
appflowy-cli ls demo # browse by path
appflowy-cli export demo/notes -o note.md # leaf page -> .md
appflowy-cli export demo -o ./demo # space -> directory
appflowy-cli export -o ./backup # whole workspace
appflowy-cli import demo ./notes # dir -> subtree, file -> page
echo "# Note" | appflowy-cli save demo "Title"- PATH segments are names or UUIDs, resolved level by level against each parent's children — duplicate names in different spaces don't collide, and a miss lists the actual children
-w <workspace>overrides the default per command;workspacesstars the default- One
exportand oneimportreplace the five flatexport-*/import-*commands (breaking change) import/saverefuse the workspace root, where a page would silently become a space
No MCP tool changes (still 73 tools).
v0.5.1
CLI usability patch (appflowy-mcp only; appflowy-cli 0.5.0 picks this up via its >=0.5.0 dependency).
- Every workspace/space/page/parent argument now accepts a name or a UUID:
appflowy-cli export-space test demo -o ./demojust works. Unknown names list the available options; ambiguous names list matching ids. - Non-JSON HTTP errors now show the status code and a response snippet instead of "Failed to parse response body".
v0.5.0
appflowy-cli now works standalone — no environment variables needed:
uvx appflowy-cli login # prompts for email/password
uvx appflowy-cli workspaces
uvx appflowy-cli logoutloginsaves session tokens (never the password) to~/.config/appflowy-cli/credentials.json(mode 600)- Subsequent commands load the saved session, auto-refresh expired access tokens, and persist the rotated refresh token
APPFLOWY_EMAIL/APPFLOWY_PASSWORDenvironment variables still take priority when set--base-urlon login supports self-hosted AppFlowy Cloud
No MCP tool changes (still 73 tools).
v0.4.1
The CLI is now a standalone PyPI package: appflowy-cli.
uvx appflowy-cli workspaces
uvx appflowy-cli export-workspace <workspace-id> -o ./backupappflowy-cliis a thin wrapper that depends onappflowy-mcp(where all implementation lives) and exposes theappflowy-clicommand — no moreuvx --from appflowy-mcp appflowy- The parasitic
appflowyentry point is removed fromappflowy-mcp(which now only ships theappflowy-mcpMCP server command) - Development:
python -m appflowy_mcp.cli
No MCP tool changes (still 73 tools).
v0.4.0
Adds an appflowy CLI alongside the MCP server — same client, same converters, aimed at scriptable workflows (cron backups, bulk import, quick lookups).
uvx --from appflowy-mcp appflowy workspaces
uvx --from appflowy-mcp appflowy export-workspace <workspace-id> -o ./backup
echo "# Note" | uvx --from appflowy-mcp appflowy save <workspace-id> <parent-id> "Title"Commands: workspaces, spaces, folder, search, export-page, export-space, export-workspace, import-file, import-dir, save. All accept --json for machine-readable output. Credentials via APPFLOWY_EMAIL / APPFLOWY_PASSWORD / APPFLOWY_BASE_URL (or .env).
No MCP tool changes (still 73 tools).
Install
uvx appflowy-mcp # MCP server
uvx --from appflowy-mcp appflowy --help # CLIv0.3.0
Adds Markdown export (70 -> 73 tools).
AppFlowy-Cloud has no export REST endpoint — the desktop app exports client-side. These tools rebuild Markdown from page collab data: the page-view endpoint's encoded_collab is a raw yjs v1 update, decoded with pycrdt to preserve inline formatting (bold, italic, strikethrough, inline code, links) that the server's JSON conversion flattens.
appflowy_export_page— export one page to a local.mdfileappflowy_export_space— export a space or page subtree to a directory tree mirroring the import convention (page with children → folder withREADME.md, leaf pages →.md); non-document views skipped with warnings; destination must be emptyappflowy_export_workspace— export every space in the workspace
New dependency: pycrdt. Covered by offline unit tests (block types, inline formatting, export→reimport round-trip) and live-verified against AppFlowy Cloud.
Install
uvx appflowy-mcpv0.2.2
Adds page-ordering tools (68 -> 70 tools).
appflowy_reorder_pages— reorder all direct children of a space or page in one call. AppFlowy has no bulk-sort endpoint, so this chains the per-page move endpoint (prev_view_id): pass an explicitpage_idsorder, orsort_byone ofname/created_at/last_edited_timewith optionaldescending. Pages already in place are skipped.appflowy_reorder_favorite— reorder a page within the favorites list (wrapspage-view/{view_id}/reorder-favorite).
Live-verified against AppFlowy Cloud: sort by name (server-confirmed), explicit partial order, descending, no-op short-circuit, favorites reorder.
Install
uvx appflowy-mcpv0.2.1
Docs-only patch release.
- Reorganized the README installation guide: one Installation section with per-client setup for Claude Code, Codex, other MCP clients (generic JSON config), and local-source development
- Fixed two broken install commands: wrong package name (
uvx appflowy->uvx appflowy-mcp) and env flags placed after--
No code changes since v0.2.0 (68 tools).
Install
uvx appflowy-mcpv0.2.0
First GitHub release. Grows the server from 30 to 68 tools, all live-verified against AppFlowy Cloud.
New tool categories
- Search:
appflowy_search— workspace full-text search - Workspace management: create/update/delete/leave workspace, settings, storage usage
- Members & invitations: list/update/remove members, invite, list/accept invitations
- Pages: duplicate page, recent list, restore-all / empty trash
- Publishing: publish/unpublish pages, publish namespace get/set, list published views (with folder-walk fallback for older server deployments)
- Quick notes: full CRUD with plain-text convenience
- Database: create field (8 field types)
- User & files: get profile, upload file to AppFlowy storage
- AI chat: create/delete chat, settings, message history, and
appflowy_chat_ask— ask the workspace AI a question and wait for the answer (non-streaming), with optionalrag_idspage context
Fixes
- Markdown import no longer emits empty paragraph blocks for blank lines (imported docs were littered with blank lines); covered by new offline tests
- AppFlowy business errors returned as HTTP 200 with a non-zero envelope code (e.g. workspace limit) are now surfaced as errors instead of passing through silently
- Endpoints taking top-level JSON array bodies (remove members, invite) are now supported
Install
uvx appflowy-mcp