LabscoMCP early access ↗
cso1zMCP SERVER

Feishu MCP Server

Create and edit Feishu documents from an assistant — blocks, tables, flowcharts, images and formulas — plus folders, search, whiteboards, tasks and member lookup.

by cso1z ↗Team Wikis & Documentation PlatformsCommunity

LABSCO SUMMARY

Documents built block by block, not pasted in as one lump of text.

Working at the block level is what makes editing possible later: an assistant can update one paragraph, insert a table in the middle, or attach an image to a specific block, instead of regenerating the whole document each time.

What it is

A server over the Feishu open API that treats a document as a block tree, so an assistant can create content in batches and edit individual blocks rather than replacing whole files. Lark's international deployment is supported by pointing it at a different base URL.

What you get

  • Documents: create_feishu_document, get_feishu_document_info (which also resolves a Wiki link to a document id) and get_feishu_document_blocks for the block structure
  • Editing: batch_create_feishu_blocks for creating consecutive content efficiently, batch_update_feishu_block_text, and delete_feishu_document_blocks
  • Folders and search: get_feishu_folder_files, create_feishu_folder and search_feishu_documents
  • Rich content: create_feishu_table for structured data, upload_and_bind_image_to_block for local or remote images, get_feishu_image_resource for pulling images back out, and get_feishu_whiteboard_content for the shapes and structure of a whiteboard such as a flowchart or mind map
  • Formatting that covers most of Markdown — bold, italic, underline, strikethrough, inline code, seven text colours, three alignments, headings from level 1 to 9, syntax-highlighted code blocks and mathematical formulas
  • Tasks: list_feishu_tasks, create_feishu_task including sub-tasks, update_feishu_task and delete_feishu_task
  • get_feishu_users to search members by name or fetch them in batch by id, which is what task assignment needs
  • A feishu-tool CLI for inspecting the toolset, writing credentials and invoking a tool directly

Requirements

FEISHU_APP_ID and FEISHU_APP_SECRET from a Feishu application. Run it with npm or from source; PORT defaults to 3333. FEISHU_AUTH_TYPE chooses between tenant, the default application-level credential, and user, which acts as a person through OAuth — the task, calendar and member modules require user. FEISHU_ENABLED_MODULES selects which of document, task, calendar, member or all are loaded, defaulting to document only. For Lark, set FEISHU_BASE_URL to https://open.larksuite.com/open-apis and FEISHU_AUTH_BASE_URL to https://accounts.larksuite.com. FEISHU_ENCRYPTION_KEY encrypts the cached access token, refresh token and client secret and is worth setting for a Docker deployment. MCP_BEARER_TOKEN requires an Authorization: Bearer header on every HTTP, SSE and StreamableHTTP request; without it no authentication is applied.

Setup effort

One command plus credentials — npx feishu-mcp@latest --feishu-app-id=<YOUR_FEISHU_APP_ID> --feishu-app-secret=<YOUR_FEISHU_APP_SECRET> --feishu-auth-type=tenant --enabled-modules=document, then supply credentials