Labsco
MCP SERVER

Feishu MCP Server

by cso1z

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

Team Wikis & Documentation Platforms
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, `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 a key — npx feishu-mcp@latest --feishu-app-id=<你的飞书应用ID> --feishu-app-secret=<你的飞书应用密钥> --feishu-auth-type=<tenant/user> --enabled-modules=<document,task>, then supply credentials