Feishu-MCP

An MCP server for Feishu and Lark: the agent reads and edits documents block by block, manages tasks and finds colleagues, with the same tools as a CLI

  • 746 ★ on the repository
  • Last commit
  • MIT
MCP server

Broad access

Why this level

  • Creates, changes and deletes document blocks and tasks in your organization, as you in `user` mode
  • Holds `FEISHU_APP_SECRET` and user OAuth tokens, and in HTTP mode without an access token the endpoints are open to anyone who can reach the port
  • Content of corporate documents enters the model context
All reasons and checks

cso1z/feishu-mcp

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add mcp/feishu-mcp

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Broad accessThe tool can change data, run commands or handle secrets.

  • Creates, changes and deletes document blocks and tasks in your organization, as you in `user` mode
  • Holds `FEISHU_APP_SECRET` and user OAuth tokens, and in HTTP mode without an access token the endpoints are open to anyone who can reach the port
  • Content of corporate documents enters the model context

This is third-party code. Review the repository files before installing.

What it does

Feishu-MCP connects an agent to Feishu and Lark documents, wikis, folders and tasks. The agent reads a document block by block, creates a new one, changes the text of single blocks, deletes what is no longer needed and searches documents by keyword. It builds tables, inserts local and remote images, formulas and Mermaid diagrams, and `import_markdown_to_feishu_document` turns Markdown into a document or a knowledge base page. Permissions depend on the sign-in mode. With `FEISHU_AUTH_TYPE=tenant` the server acts as the application. With `user` it acts as you through OAuth, and only that mode unlocks tasks (list your own, create with subtasks, update, delete) and employee search by name. The `FEISHU_ENABLED_MODULES` variable picks the modules: `document`, `task`, `calendar`, `member` or `all`. The same tools run without a server. The package installs a `feishu-tool` command, for example `feishu-tool create_feishu_document '{"title": "Test"}'`, which you can call from a terminal, a script or the agent itself. For Claude Code the author maintains a separate Feishu-Skill repository.

Who it is for. For teams that keep documents and tasks in Feishu or Lark and want Cursor, Cline, Claude Code and other agents to write and edit them directly.

Good fit when

  • The agent has to publish a project description from Markdown to Feishu, as a document or a wiki page
  • A document needs a table, a Mermaid process diagram and formulas without manual layout
  • Tasks from a discussion must land in Feishu with subtasks and assignees (`user` mode)
  • You need to find one document among many by keywords and have it summarized
  • A script or CI job needs the same operations without starting an MCP server; `feishu-tool` covers that

Not a fit when

  • Your team works in Notion, Confluence or Google Docs: the server talks only to the Feishu and Lark API
  • You need calendar access: the `calendar` module is still in development
  • Your organization admin forbids custom Feishu apps: without an app there are no `FEISHU_APP_ID` and `FEISHU_APP_SECRET` keys
  • You want an official vendor client: Lark ships its own CLI, while this server is maintained by a third party

Example request

Create a Feishu document called Release plan from docs/release.md and add tasks for me from its items

MCP

Transport
stdio, http, sse
Authentication
API key

Environment variables

FEISHU_APP_ID required
App ID from the Feishu developer console.
FEISHU_APP_SECRET required, secret
Secret of the same app.
FEISHU_AUTH_TYPE
Sign-in mode: `tenant` (default, as the app) or `user` (as you, OAuth).
FEISHU_ENABLED_MODULES
Enabled modules: `document` by default, also `task`, `calendar`, `member`, `all`.
FEISHU_USER_KEY
User identifier for stdio and CLI modes under `user` authorization.
MCP_BEARER_TOKEN secret
When set, the HTTP and SSE endpoints require an `Authorization: Bearer` header.

Limitations

  • You must register an app in the Feishu console, grant it permissions and get `FEISHU_APP_ID` and `FEISHU_APP_SECRET`. A step-by-step guide is in `FEISHU_CONFIG.md` in the repository.
  • Documentation and the app console are in Chinese. For international Lark set `FEISHU_BASE_URL=https://open.larksuite.com/open-apis` and `FEISHU_AUTH_BASE_URL=https://accounts.larksuite.com`.
  • In HTTP or SSE mode the server stores user tokens. The `FEISHU_ENCRYPTION_KEY` variable turns on token encryption; without it they are stored in plain form.

How to disable. Remove the `feishu-mcp` block from your agent's MCP configuration and restart it. If you installed the CLI globally, run `npm uninstall -g feishu-mcp`. To drop the user tokens the server saved, revoke the app's access in the Feishu console.

FAQ

How do I connect Feishu to Cursor through MCP?

Add an MCP block with the `npx` command and the arguments `-y feishu-mcp@latest --stdio`, and put `FEISHU_APP_ID`, `FEISHU_APP_SECRET`, `FEISHU_AUTH_TYPE` and `FEISHU_ENABLED_MODULES` in `env`. The app keys come from the Feishu developer console.

Does the server work with international Lark?

Yes, once you change the addresses. Set `FEISHU_BASE_URL=https://open.larksuite.com/open-apis` and `FEISHU_AUTH_BASE_URL=https://accounts.larksuite.com`, otherwise the server calls `open.feishu.cn`.

Why does the agent not see tasks?

The task module works only in `user` mode. Set `FEISHU_AUTH_TYPE=user`, enable the module with `FEISHU_ENABLED_MODULES=document,task` and complete OAuth authorization. In `tenant` mode the task tools are unavailable.

How is the MCP server different from feishu-tool?

They expose the same tools and differ in how you call them. The MCP server connects to an agent, while `feishu-tool` runs as a terminal or script command with no server. Install it with `npm install -g feishu-mcp@latest`.

How do I protect the server's HTTP endpoints with a token?

Set the `MCP_BEARER_TOKEN` variable. The HTTP, SSE and Streamable HTTP endpoints then require an `Authorization: Bearer <token>` header. Without it authorization is off, so do not expose the port to a network.

Discussion

No questions or reviews yet.

A Feishu CLI with two-way Markdown conversion and nine skills so Claude Code can run chats, mail and calendars.

CLIBroad access1.4KRepository stars

An OpenClaw plugin for Feishu and Lark: a chat bot that also works with docs, wiki, drive, tasks and tables

PluginExtended access4.2KRepository stars
Official

The official Lark and Feishu plugin for OpenClaw: chat, docs, bases, calendar and tasks of your workspace from a conversation with the agent

PluginBroad access2.4KRepository stars
Russian stack

A 66-tool Kaiten MCP server, the only one in this batch supporting Kaiten documents and their inline comment threads

MCP serverBroad access

Cunzhi (寸止)

寸止 (Cunzhi)

MCP server in Rust and Tauri: the agent shows a dialog with options before ending a reply, keeps project rules and searches code

MCP serverBroad access1.4KRepository stars

README in short

The README is in Chinese and lists features in four groups: documents, tasks, users and search. It continues with a tool table, supported styles, a quick start through `npx` or Docker and the `feishu-tool` CLI. A separate section covers environment variables and three connection modes: stdio, SSE and HTTP Streamable. The detailed Feishu app setup lives in `FEISHU_CONFIG.md`.

README badge

Report a problem

Foxx AIFeishu-MCP
Foxx AI

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.