Add it to Claude Code
claude mcp add appflowy-cloud -- uv run main.pyMake your agent remember this setup
appflowy-cloud's config, env vars, and the gotchas you hit — recalled in every future Claude Code, Cursor, and Codex session.
npx conare@latestFree · one command · indexes the sessions already on disk. Set up in the browser instead →
What it does
- Authentication management with login and token refresh
- Workspace discovery and listing
- Database schema inspection via field retrieval
- Full row lifecycle management including listing, reading, creating, and upserting
Tools 9
appflowy_loginLogin to AppFlowy Cloud to obtain authentication tokens.appflowy_refresh_tokenRefresh the current access token.appflowy_list_workspacesList all available workspaces.appflowy_list_databasesList databases within a specific workspace.appflowy_get_database_fieldsRetrieve the fields defined in a specific database.appflowy_list_rowsList row IDs in a database.appflowy_get_row_detailsGet detailed information for specific rows.appflowy_create_rowCreate a new row in a database.appflowy_upsert_rowUpdate an existing row or create a new one.Try it
Original README from Jemo69/Appflowy-MCP
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
Authentication
The server uses in-memory token storage. To authenticate:
- Use
appflowy_loginwith your email and password - The 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 workspaces
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
Running the Server
uv run python main.py
Usage Example
- Login:
request = LoginRequest(email="[email protected]", 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.