AppFlowy MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| APPFLOWY_EMAIL | Yes | Your AppFlowy Cloud account email. | |
| APPFLOWY_PASSWORD | Yes | Your AppFlowy Cloud account password. | |
| FASTMCP_LOG_ENABLED | No | Set to false to disable logging. | false |
| FASTMCP_CHECK_FOR_UPDATES | No | Set to off to disable update checks. | off |
| FASTMCP_SHOW_SERVER_BANNER | No | Set to false to suppress the FastMCP server banner. | false |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| appflowy_loginA | Login to AppFlowy. Tokens are stored in the server; they are not returned to avoid leaking credentials into tool output. |
| appflowy_refresh_tokenB | Refresh the access token. Uses the stored refresh token unless one is provided. Tokens are not returned. |
| appflowy_list_workspacesA | List all workspaces for the authenticated user. |
| appflowy_get_workspace_folderB | Get a workspace folder tree. Use root_view_id to expand a specific space/page and depth to control recursion. |
| appflowy_list_spacesB | List all spaces in a workspace. Spaces are folder views where is_space is true. |
| appflowy_create_spaceC | Create a space in a workspace. |
| appflowy_update_spaceC | Update a space name, icon, color, or permission. |
| appflowy_list_databasesC | List all databases in a workspace. |
| appflowy_get_database_fieldsC | Get fields of a specific database. |
| appflowy_list_rowsC | List all row IDs in a database. |
| appflowy_get_row_detailsC | Get details of specific rows by IDs. |
| appflowy_create_rowC | Create a new row in a database. |
| appflowy_upsert_rowC | Update existing row or create if it doesn't exist. |
| appflowy_get_updated_rowsB | Find updated rows in a database after a specific datetime. |
| appflowy_create_pageC | Create a page under a space or parent page. |
| appflowy_get_pageC | Get page view details and collab data. |
| appflowy_update_pageC | Update a page name, icon, lock state, or extra metadata. |
| appflowy_move_pageA | Move a page to a new parent and/or reorder it among its siblings. Set new_parent_view_id to the destination parent (pass the page's current parent to reorder in place) and prev_view_id to the sibling to place it after (omit to put it first). |
| appflowy_reorder_pagesA | Reorder the direct child pages of a space or page in one call. Give either an explicit page_ids order or sort_by name/created_at/last_edited_time. AppFlowy has no bulk-sort endpoint, so this chains the per-page move endpoint, skipping pages already in place. |
| appflowy_move_page_to_trashC | Move a page to trash. |
| appflowy_restore_page_from_trashC | Restore a page from trash. |
| appflowy_delete_page_from_trashB | Permanently delete a trashed page. |
| appflowy_favorite_pageC | Favorite, unfavorite, pin, or unpin a page. |
| appflowy_reorder_favoriteC | Reorder a page within the favorites list. prev_view_id is the favorite to place it after (omit to put it first). |
| appflowy_list_trashC | List trashed pages in a workspace. |
| appflowy_list_favoritesC | List favorite pages in a workspace. |
| appflowy_append_blocks_to_pageC | Append raw AppFlowy document blocks to the end of a page. |
| appflowy_append_text_to_pageC | Append one or more plain-text paragraph blocks to the end of a page. |
| appflowy_create_markdown_pageA | Create a document page from Markdown content. Prefer appflowy_save_page for general AI answer or note saving. |
| appflowy_append_markdown_to_pageB | Append Markdown content to an existing document page. |
| appflowy_save_pageA | Default tool for saving AI answers, notes, summaries, or generated content as a new AppFlowy document page. The content_format defaults to markdown, so Markdown headings, lists, links, code blocks, and rich text are converted to AppFlowy blocks unless content_format is explicitly set to plain_text. |
| appflowy_append_page_contentC | Default tool for appending AI answers, notes, summaries, or generated content to an existing AppFlowy document page. The content_format defaults to markdown. |
| appflowy_import_markdown_fileB | Import one local Markdown file as an AppFlowy page. Local image references in Markdown are resolved relative to the file, uploaded to AppFlowy, and replaced with AppFlowy file URLs when upload_assets is true. |
| appflowy_import_markdown_directoryB | Recursively import a local Markdown directory into AppFlowy. Every local folder becomes an AppFlowy page, Markdown files become child pages, and local image references are uploaded and inserted in place. |
| appflowy_searchA | Search documents in a workspace by keyword or natural-language query (full-text plus semantic search when the server has indexing enabled). Returns matching documents with object_id (the page view_id), preview, and score. |
| appflowy_create_workspaceC | Create a new workspace. |
| appflowy_update_workspaceB | Update a workspace name and/or icon. |
| appflowy_delete_workspaceB | Permanently delete a workspace and everything in it. Irreversible. |
| appflowy_leave_workspaceC | Leave a workspace you are a member of. |
| appflowy_get_workspace_settingsC | Get workspace settings (search indexing, AI model). |
| appflowy_update_workspace_settingsC | Update workspace settings: disable_search_indexing and/or ai_model. |
| appflowy_get_workspace_usageC | Get workspace storage usage (consumed capacity in bytes). |
| appflowy_list_membersC | List members of a workspace with their roles. |
| appflowy_update_memberB | Update a workspace member's role (Owner, Member, Guest) or name. |
| appflowy_remove_membersC | Remove members from a workspace by email. |
| appflowy_invite_membersB | Invite people to a workspace by email with a role (Owner, Member, Guest). |
| appflowy_list_invitationsA | List workspace invitations sent to the authenticated user, optionally filtered by status (Pending, Accepted, Rejected). |
| appflowy_accept_invitationB | Accept a workspace invitation by invite_id. |
| appflowy_duplicate_pageC | Duplicate a page and all of its child pages. |
| appflowy_list_recentB | List recently viewed pages in a workspace. |
| appflowy_restore_all_from_trashC | Restore all trashed pages in a workspace. |
| appflowy_empty_trashA | Permanently delete ALL trashed pages in a workspace. Irreversible. |
| appflowy_publish_pageC | Publish a page to the web so anyone with the link can view it. |
| appflowy_unpublish_page | Unpublish a page from the web. |
| appflowy_get_publish_namespace | Get the workspace publish namespace (the subdomain published pages live under). |
| appflowy_set_publish_namespace | Rename the workspace publish namespace. |
| appflowy_list_published_views | List all published pages in a workspace. |
| appflowy_list_quick_notes | List quick notes in a workspace, with optional search and pagination. |
| appflowy_create_quick_noteC | Create a quick note from plain text (or raw block data). |
| appflowy_update_quick_noteA | Replace a quick note's content with plain text (or raw block data). |
| appflowy_delete_quick_noteC | Delete a quick note. |
| appflowy_create_database_fieldB | Add a new field (column) to a database. |
| appflowy_get_user_profileA | Get the authenticated user's profile (uid, email, name, latest workspace). |
| appflowy_upload_fileA | Upload a local file to AppFlowy file storage and return its URL, which can be referenced from image or file blocks in pages. |
| appflowy_export_pageA | Export a single page as a local Markdown file, preserving inline formatting (bold, italic, links, code). Child pages are not included; use appflowy_export_space for a whole subtree. |
| appflowy_export_spaceA | Export a space (or any page subtree) to a local directory of Markdown files, mirroring appflowy_import_markdown_directory: a page with children becomes a folder whose own content is README.md, leaf pages become .md files. Non-document views (grids, boards) are skipped with warnings. |
| appflowy_export_workspaceB | Export every space in a workspace to a local directory tree of Markdown files. Each space becomes a top-level folder; pages follow the appflowy_export_space layout. |
| appflowy_create_chatA | Create an AI chat in a workspace. Optionally pass rag_ids (page view ids) the AI should use as context. Returns the chat_id for follow-up calls. |
| appflowy_delete_chatC | Delete an AI chat. |
| appflowy_get_chat_settingsC | Get an AI chat's settings (name, rag_ids, metadata). |
| appflowy_update_chat_settingsB | Update an AI chat's name, rag_ids, or metadata. |
| appflowy_list_chat_messagesA | List messages in an AI chat, newest first. Use limit to bound the page size and before_message_id to page backwards through history. |
| appflowy_chat_askA | Ask the workspace AI a question in an existing chat and wait for the answer (non-streaming). Returns both the question message id and the AI answer. Create a chat first with appflowy_create_chat. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/weironz/appflowy_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server