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
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
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add mcp/feishu-mcpDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewBroad 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 itemsMCP
- Transport
- stdio, http, sse
- Authentication
- API key
Environment variables
FEISHU_APP_IDrequired- App ID from the Feishu developer console.
FEISHU_APP_SECRETrequired, 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_TOKENsecret- 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.
Related
MCP serversA Feishu CLI with two-way Markdown conversion and nine skills so Claude Code can run chats, mail and calendars.
AFFiNE MCP Server: AFFiNE notes and databases for agents
AFFiNE MCP Server
An MCP server for AFFiNE: the agent searches, creates and edits documents, databases and comments in cloud or self-hosted AFFiNE
An OpenClaw plugin for Feishu and Lark: a chat bot that also works with docs, wiki, drive, tasks and tables
The official Lark and Feishu plugin for OpenClaw: chat, docs, bases, calendar and tasks of your workspace from a conversation with the agent
Kaiten MCP with documents
kaiten-mcp
A 66-tool Kaiten MCP server, the only one in this batch supporting Kaiten documents and their inline comment threads
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
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`.