get_user_infoLABSCO SUMMARY
Tools sized for a client, not transcribed from an API.
The author's stated difference from Feishu's official server is not coverage but shape: API-to-tool conversion produces tools too large to use in Cursor, so the complex ones here — block creation, nested blocks — were reworked to fit. Scope matters when you choose it: the tools cover documents, their comments and spreadsheets; Bitable is not among them.
What it is
A remote MCP server for Feishu (Lark) documents that you deploy to Cloudflare Workers yourself. Users sign in with their Feishu account and the server manages and refreshes the user_access_token for them, so nothing has to be pasted into a client config. It is adapted from Cloudflare's remote-mcp-github-oauth demo with GitHub OAuth replaced by Feishu OAuth.
What you get
- Documents: create one, read its details, its plain-text content or all of its blocks, and look up the signed-in user
- Document editing: build blocks of each supported type — text, nine heading levels, lists, quotes, code, equations, to-dos, callouts, grids, Mermaid, timelines and more — create them, and delete one block or a batch
- Image, file and video blocks uploaded from a local path or Base64 content
- Markdown or HTML converted into Feishu block structures, ready to insert
- Spreadsheets: create, read and update one, and add, copy, query, protect or delete its sheets — plus reading a document's comments
- An OAuth 2.1 implementation that authenticates MCP clients and keeps Feishu tokens in Cloudflare KV
- Per-user state through Durable Objects, so which tools a user sees can depend on who signed in
- An
/sseendpoint reachable directly by URL from Cursor, or throughnpx -y mcp-remotefor clients that need a stdio bridge
Requirements
A Cloudflare account and a Feishu Open Platform application, plus Node.js 18+ and npm. Set FEISHU_APP_ID, FEISHU_APP_SECRET and COOKIE_ENCRYPTION_KEY as Wrangler secrets, create the OAUTH_KV namespace, and register https://feishu-mcp-server.<your-subdomain>.workers.dev/callback as the redirect URL in the app's security settings; locally the same values go in .dev.vars against http://localhost:8788/callback. The app needs permissions including auth:user.id:read, task:task:read, offline_access and user_profile. Access control is simple and worth knowing: every authenticated Feishu user can reach every tool.
Setup effort
Build from source — git clone https://github.com/ztxtxwd/open-feishu-mcp-server.git
USE CASES
Writing into a Feishu doc from your editor
List the document's blocks, build the block you want, and create it where it belongs or delete what it replaces.
Moving a Markdown draft into Feishu
Convert it into Feishu blocks and insert them, rather than pasting and repairing the formatting by hand.
Giving a team access without handing out tokens
Deploy it once on your Cloudflare account; each person signs in with Feishu and the server handles token refresh.
Building a document around images and files
Upload images and files as blocks and build the text, heading and grid blocks around them in the same session.
51 tools
Listed in project code.
create_documentget_documentget_document_raw_contentconvert_content_to_blockslist_document_blockscreate_blocksdelete_blockbatch_delete_blocksbuild_text_blockbuild_heading1_blockbuild_heading2_blockbuild_heading3_blockbuild_heading4_blockbuild_heading5_blockbuild_heading6_blockbuild_heading7_blockbuild_heading8_blockbuild_heading9_blockbuild_bullet_blockbuild_ordered_blockbuild_quote_blockbuild_equation_blockbuild_todo_blockbuild_code_blockbuild_divider_blockbuild_callout_blocksearch_feishu_callout_emojicreate_file_or_video_blockcreate_image_blockbuild_iframe_blockbuild_chat_card_blockbuild_grid_blockbuild_mermaid_blockbuild_glossary_blockbuild_timeline_blockbuild_catalog_navigation_blockbuild_information_collection_blockbuild_countdown_blocklist_file_commentsadd_sheetcopy_sheetcreate_spreadsheetdelete_sheetget_sheetget_spreadsheetquery_sheetsupdate_sheet_metadataupdate_sheet_protectionupdate_sheet_view_settingsupdate_spreadsheetBEFORE YOU INSTALL
What to know first
Tools you get
51 tools registered in the project's code.
Requires
- Node.js 18+ and npm
- A Cloudflare account
- A Feishu Open Platform app — its App ID and App Secret go in as Wrangler secrets
INSTALLATION
Connect your client
This one is built from source rather than installed with a single command.
Server setup
git clone https://github.com/ztxtxwd/open-feishu-mcp-server.git
cd open-feishu-mcp-server
npm installCreate the Feishu app: log in at https://open.feishu.cn/, click Developer Console and create a new application, add at least the auth:user.id:read, task:task:read, offline_access and user_profile permissions under Permissions & Features, then note its App ID and App Secret for the next two commands
wrangler secret put FEISHU_APP_ID
wrangler secret put FEISHU_APP_SECRET
wrangler secret put COOKIE_ENCRYPTION_KEY # Generate with: openssl rand -hex 32
wrangler kv namespace create "OAUTH_KV"Update the KV namespace configuration in wrangler.toml with the KV ID the wrangler kv namespace create command printed.
npm run deployBack in your Feishu app's settings, go to Security Settings and add the redirect URL:
https://feishu-mcp-server.<YOUR_SUBDOMAIN>.workers.dev/callbackMCP Clients
Cursor
{
"mcpServers": {
"feishu": {
"url": "https://feishu-mcp-server.<YOUR_SUBDOMAIN>.workers.dev/sse"
}
}
}Chatwise
Open ChatWise settings → Tools → add a command-line (stdio) tool with the command:
npx -y mcp-remote https://feishu-mcp-server.<YOUR_SUBDOMAIN>.workers.dev/sse