AppFlowy Cloud MCP Server
The AppFlowy Cloud MCP Server allows you to interact with AppFlowy Cloud to manage workspaces, databases, rows, and documents through the following capabilities:
Authentication: Login with email and password to obtain access/refresh tokens, and refresh expired tokens.
Workspace Operations: List all workspaces for the authenticated user and get workspace folder metadata.
Database Operations: List all databases within a workspace and retrieve the fields/schema of a specific database.
Row Operations: List row IDs, get detailed row information (optionally including document content), create new rows with cell values and optional markdown documents, and upsert rows (update existing or create new, with support for pre-hash validation).
Document Operations: Create, update, get, duplicate, search, publish, unpublish, import, and manage collaborative documents and pages.
Supports using Markdown for document content when creating or updating rows in AppFlowy Cloud databases.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@AppFlowy Cloud MCP Server list all my workspaces and their databases"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
AppFlowy Cloud MCP Server
A Model Context Protocol (MCP) server for interacting with AppFlowy Cloud API, providing tools for workspace, database, and row operations.
Features
Authentication: Login and refresh token management
Workspace Operations: List all workspaces
Database Operations: List databases, get database fields
Row Operations: List rows, get row details, create rows, upsert rows
Related MCP server: Attio MCP Server
Authentication
The server uses in-memory token storage. To authenticate:
Use
appflowy_loginwith your email and passwordThe tokens are stored automatically
Use
appflowy_refresh_tokenwhen the access token expires
Available Tools
Authentication Tools
appflowy_login(request: LoginRequest)- Login to AppFlowy Cloudappflowy_refresh_token(request: RefreshTokenRequest)- Refresh access token
Workspace Tools
appflowy_list_workspaces()- List all workspacesappflowy_get_workspace_folder(workspace_id: str, depth: int | None = None, root_view_id: str | None = None)- Get workspace folder metadata
Database Tools
appflowy_list_databases(workspace_id: str)- List databases in a workspaceappflowy_get_database_fields(workspace_id: str, database_id: str)- Get database fields
Row Tools
appflowy_list_rows(workspace_id: str, database_id: str)- List row IDsappflowy_get_row_details(workspace_id: str, database_id: str, row_ids: str, with_doc: bool = False)- Get row detailsappflowy_create_row(workspace_id: str, database_id: str, request: RowCreateRequest)- Create a new rowappflowy_upsert_row(workspace_id: str, database_id: str, request: RowUpdateRequest)- Update or create row
Document Tools
appflowy_create_collab(...)appflowy_update_collab(...)appflowy_get_collab(...)appflowy_get_collab_json(...)appflowy_batch_create_collab(...)appflowy_full_sync_collab(...)appflowy_web_update_collab(...)appflowy_create_page_view(...)appflowy_get_page_view(...)appflowy_append_block_to_page(...)appflowy_create_orphaned_view(...)appflowy_duplicate_page(...)appflowy_create_quick_note(...)appflowy_list_quick_notes(...)appflowy_search_documents(...)appflowy_publish_page(...)appflowy_unpublish_page(...)appflowy_import_zip(file_path: str)appflowy_create_import_task(...)
Running the Server
uv run python main.pyUsage Example
Login:
request = LoginRequest(email="your@example.com", password="your_password")
response = appflowy_login(request)List workspaces:
workspaces = appflowy_list_workspaces()Get database fields:
fields = appflowy_get_database_fields("workspace_id", "database_id")Create a row:
row_request = RowCreateRequest(cells={"Field_Name": "Value"}, document="Optional markdown")
result = appflowy_create_row("workspace_id", "database_id", row_request)Note
The server maintains tokens in memory. For production use, consider adding persistent storage (Redis, database, etc.) and proper error handling.
Self hosting
if you are slef hosting and you want the mcp to work just added as env in where you get you AI
Available Tools
9 toolsappflowy_create_rowC
Create a new row in a database.
Inputs: workspace_id (required), database_id (required), request (required).
appflowy_get_database_fieldsC
Get fields of a specific database.
Inputs: workspace_id (required), database_id (required).
appflowy_get_row_detailsC
Get details of specific rows by IDs.
Inputs: workspace_id (required), database_id (required), row_ids (required), with_doc.
appflowy_list_databasesC
List all databases in a workspace.
Inputs: workspace_id (required).
appflowy_list_rowsC
List all row IDs in a database.
Inputs: workspace_id (required), database_id (required).
appflowy_list_workspacesA
List all workspaces for the authenticated user.
Inputs: no named parameters.
appflowy_loginC
Login to AppFlowy Cloud and get access token. Returns access token and refresh token.
Inputs: request (required).
appflowy_refresh_tokenC
Refresh access token using refresh token.
Inputs: request (required).
appflowy_upsert_rowC
Update existing row or create if it doesn't exist.
Inputs: workspace_id (required), database_id (required), request (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 9 tools
Each tool has a clearly distinct purpose targeting specific resources and actions - authentication (login/refresh), workspace listing, database operations, and row CRUD. There's no overlap or ambiguity between tools like list_databases vs list_rows or create_row vs upsert_row.
All tools follow a perfect 'appflowy_verb_noun' pattern consistently throughout. The naming convention is uniform with clear action-object relationships, making the tool set predictable and easy to understand.
With 9 tools, this server provides comprehensive coverage for AppFlowy Cloud operations without being overwhelming. The count is well-scoped for database/workspace management with authentication support, making each tool earn its place.
The tool set covers authentication, workspace listing, database discovery, and full row CRUD operations with upsert capability. The only minor gap is the lack of explicit database/workspace creation/deletion tools, but agents can still accomplish core workflows with the available operations.
Maintenance
Related MCP Connectors
Manage PocketBase Cloud projects, instances, deploys, domains, collections and records.
Read and write Rowflare bases (open-source Airtable alternative): records, tables, fields, totals.
Read, write, and combine connected apps and databases with shared code and per-person permissions.
Shared Timill Cloud server: query and edit your work-platform data with full per-user RBAC.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables interaction with the Unstructured API to manage data workflows, including creating and managing source connectors (S3, Azure, Google Drive, etc.), destination connectors (Weaviate, Pinecone, MongoDB, etc.), and workflows for document processing and data pipelines.-
- FlicenseNot gradedqualityDmaintenanceProvides tools to interact with the Attio API, enabling management of resources in an Attio workspace.5-
- AlicenseNot gradedqualityDmaintenanceProvides AI assistants with full read/write access to AppFlowy Cloud, enabling management of workspaces, pages, databases, trash, and favorites, plus conversion of Markdown into formatted AppFlowy document blocks.MIT
- AlicenseAqualityCmaintenanceEnables AI agents to read and write a self-hosted AppFlowy instance, decoding its Yjs CRDT pages into Markdown.5MIT