# Feishu-MCP: Giving AI Coding Tools Direct Access to Feishu Documents and Tasks

> Feishu-MCP is a TypeScript MCP server that exposes Feishu document management, task tracking, and user lookup as callable tools for AI coding assistants such as Cursor, Claude Code, and Cline. It also ships a standalone CLI, feishu-tool, for direct terminal and script use.

**cso1z/Feishu-MCP** —  Feishu / Lark 飞书文档与任务管理工具，支持 MCP 服务器和 CLI + Skill 两种使用方式，可无缝集成 Cursor、Claude Code、Cline 等 AI 编码工具

- Repository: https://github.com/cso1z/Feishu-MCP
- Stars: 741 · Forks: 87
- Language: TypeScript
- License: MIT
- Published: 2026-09-10 · Updated: 2026-09-10 · Language: en
- Canonical page: https://hysenlabs.com/projects/cso1z-feishu-mcp

## What Feishu-MCP Solves and Who It Is For

When a developer asks an AI coding assistant to write a design document, update a wiki page, or look up a colleague's user ID for a task assignment, the assistant normally has no route into the organisation's document platform. It can draft text, but saving it requires the developer to switch to the Feishu client and paste manually.

Feishu-MCP removes that switch. It implements the Model Context Protocol (MCP) so that any MCP-capable coding tool, including Cursor, Claude Code, Windsurf, and Cline, can call Feishu APIs directly through the server. The coding assistant can create a document, append a block, run a keyword search, create a task, assign it to a user, and receive structured results without the developer touching the Feishu interface.

The project targets development teams at companies that use Feishu (the mainland China product) or Lark (the international variant). Both products share the same underlying API, and the server's FEISHU_BASE_URL and FEISHU_AUTH_BASE_URL environment variables cover the difference: the default base URL points to open.feishu.cn, and Lark users configure it to the international endpoint.

A secondary audience is automation engineers who want to call Feishu tools from shell scripts and CI pipelines. The feishu-tool CLI, which ships as part of the same package, allows calling any tool as feishu-tool <tool-name> '<json>' from the command line without starting the MCP server.

## The Tool Surface: Documents, Tasks, and Users

The project organises its tools into three functional modules controlled by the FEISHU_ENABLED_MODULES environment variable. Setting it to document activates document management. Adding task activates task operations. User information queries are always available alongside whichever modules are enabled.

Document tools cover the full lifecycle of a Feishu document. create_feishu_document creates a new document from scratch. get_feishu_document_blocks reads the block tree of an existing document, which is the data structure Feishu uses to represent rich content: paragraphs, code blocks, tables, images, and so on. batch_create_feishu_blocks writes multiple blocks in a single call. update_feishu_block_text modifies the text of an existing block. delete_feishu_document_blocks removes blocks. get_feishu_folder_files lists the contents of a folder, and search_feishu_documents searches across accessible documents by keyword.

Style support covers bold, italic, underline, strikethrough, inline code, text colour in seven options, six alignment modes, nine heading levels, ordered and unordered lists, images from local paths or remote URLs, LaTeX formulas, Mermaid diagrams (flow, sequence, class, pie), tables, and Feishu whiteboard content.

Task tools cover the full create-read-update-delete cycle. list_feishu_tasks retrieves tasks assigned to the authenticated user, filtered by status. create_feishu_task supports batch creation including sub-tasks in a single call. update_feishu_task covers title, members, reminders, and status. delete_feishu_task removes tasks in batch.

User tools provide get_feishu_users, which accepts either a name search or a list of user IDs to resolve, returning the user records needed to populate task assignees or mention users in documents.

## Installing and Configuring Feishu-MCP

The quickest path is to run the server without installing it locally. The npx command handles the rest:

```bash
npx feishu-mcp@latest --feishu-app-id=<你的飞书应用ID> --feishu-app-secret=<你的飞书应用密钥> --feishu-auth-type=<tenant/user> --enabled-modules=<document,task>
```

This pulls the latest package from npm and starts the server immediately. Both the application ID and secret come from a Feishu developer application that must be created before the server can authenticate any call. The Feishu developer documentation at open.feishu.cn covers application creation; the repository's FEISHU_CONFIG.md provides a step-by-step walkthrough specific to this project's required permissions.

For a local development setup, clone the repository and install dependencies:

```bash
git clone https://github.com/cso1z/Feishu-MCP.git
cd Feishu-MCP
```

```bash
pnpm install
```

Copy .env.example to .env and fill in the credentials:

```env
FEISHU_APP_ID=cli_xxxxx
FEISHU_APP_SECRET=xxxxx
PORT=3333
FEISHU_AUTH_TYPE=tenant/user
FEISHU_ENABLED_MODULES=document,task
```

Then start the development server:

```bash
pnpm run dev
```

The server listens on port 3333 by default. A Docker Compose file is also included for teams that prefer a containerised deployment:

```bash
docker-compose up -d
```

The compose file maps the same port 3333 and mounts a local directory for the token cache so authentication state survives container restarts. Node.js 24 or later is required; the package.json specifies this in its engines field.

## Tenant Authentication Versus User Authentication

Feishu-MCP supports two authentication modes that differ significantly in what they can access and how they are set up.

Tenant authentication (FEISHU_AUTH_TYPE=tenant) uses application-level credentials. The server authenticates as the Feishu application itself, not as any individual user. This mode works in all deployment configurations, including Docker and HTTP server mode, and does not require OAuth. It is the default and the simpler path. The limitation is that tenant tokens have access only to documents and spaces that have been explicitly shared with the application.

User authentication (FEISHU_AUTH_TYPE=user) authenticates as an individual Feishu user through OAuth. This unlocks personal task lists (list_feishu_tasks returns the user's own tasks) and user-level document permissions. The trade-off is complexity: OAuth requires a redirect flow, which means the user must open a browser URL to authorise the application. According to the README, this mode works reliably only when the server is running locally, because the OAuth callback needs to reach the server. Running the user authentication flow in a Docker container accessible only over a LAN requires extra configuration with FEISHU_TOKEN_ENDPOINT.

The environment variable FEISHU_USER_KEY identifies which user's token to use when the server handles multiple users in a shared HTTP deployment. Setting FEISHU_REQUIRE_USER_KEY=true makes passing a user key mandatory, which the README recommends for multi-user HTTP server deployments to prevent one user's token from being applied to another's request.

Token caching stores access and refresh tokens in the system-level configuration directory, with optional encryption via FEISHU_ENCRYPTION_KEY. Docker deployments should set a fixed encryption key so the cache remains readable across container restarts.

## Limitations and Cases Where Feishu-MCP Is the Wrong Tool

The project has no support for Google Docs, Confluence, Notion, or any non-Feishu document platform. It is purpose-built for Feishu and Lark. Teams on other platforms cannot use it.

Creating a Feishu developer application is a prerequisite that is not trivial for users unfamiliar with the Feishu Open Platform. The application must be granted specific API scopes, and if the permission scope does not match what the tools require, the server raises an authorization error. The permission scope validation feature (FEISHU_SCOPE_VALIDATION=true, enabled by default) catches mismatches early and provides guidance, but initial setup still requires navigating the Feishu developer console.

User authentication mode has the limitation described above: it requires a local server or a custom token endpoint implementation. Teams wanting to deploy the server centrally and let multiple users authenticate themselves will need to implement the callback service described in the README's comments.

The package requires Node.js 24, which is more current than what many environments have by default. Projects pinned to older Node versions cannot use it without upgrading the runtime.

There is no documented offline mode. Every tool call makes live Feishu API requests. If the Feishu API is unreachable, all tool calls fail.

## Feishu-MCP Compared to n8n

n8n is a workflow automation platform with a visual editor and a Feishu integration node. It connects Feishu actions to hundreds of other services in a drag-and-drop interface and is designed for non-technical users building automated workflows between applications.

Feishu-MCP is not a workflow tool. It is a protocol server that exposes Feishu tools to an AI coding assistant. There is no visual editor, no triggers, and no connection to other services. The tool is the surface, and the AI model is the orchestrator. This makes Feishu-MCP the better choice when the goal is letting a coding assistant manage Feishu content as part of a development task. n8n is better when the goal is automating a multi-step business process that involves Feishu as one step among many.

The feishu-tool CLI that ships with the package occupies a middle ground: it lets a shell script call individual Feishu tools without an AI assistant in the loop, which is useful for CI pipeline steps that need to post a build result to a document or update a task status.

## Maintenance and License

The last push to cso1z/Feishu-MCP was on 2026-08-17. The repository is not archived. Version 0.3.3 is available on npm and the changelog shows a steady pattern of incremental releases through 2026, adding task management in 0.2.4, CLI mode in 0.2.6, and permission scope validation in earlier versions.

The project is MIT licensed, permitting commercial use and modification. The only dependencies that carry their own licensing considerations are the MCP SDK from Anthropic and the Feishu Open Platform terms of service, which govern API usage and are separate from this repository's license.

## Conclusion

Feishu-MCP is a practical fit for engineering teams that use Feishu as their documentation platform and want AI coding assistants to read, create, and edit content without leaving the editor. It is not useful for organisations that do not use Feishu or Lark, and it requires registering a dedicated Feishu developer application before any tool call can succeed. Teams running a shared deployment over HTTP should set FEISHU_REQUIRE_USER_KEY=true to ensure each caller authenticates separately. The last push was on 2026-08-17 and version 0.3.3 is on npm.

## FAQ

### What is Feishu?

Feishu is a collaboration platform developed by ByteDance that includes messaging, document editing, task management, and video conferencing. Lark is the international version of the same product. Feishu-MCP connects AI coding tools to Feishu's document and task APIs through the Model Context Protocol.

### Is MCP the same as HTTP?

No. MCP (Model Context Protocol) is a protocol specification for how AI agents call external tools and retrieve context. Feishu-MCP implements this protocol, which means the server speaks the MCP wire format that coding tools like Claude Code and Cursor understand. The server itself can run over HTTP or stdio transport, but MCP defines the tool-calling schema and lifecycle on top of that transport.

### Do I need to create a Feishu developer application before using Feishu-MCP?

Yes. Feishu-MCP authenticates with the Feishu Open Platform using an application ID and secret. You must create a Feishu developer application at open.feishu.cn, grant it the required API scopes, and supply the credentials via environment variables or command-line flags before the server can make any tool calls.

## Sources

- [cso1z/Feishu-MCP on GitHub](https://github.com/cso1z/Feishu-MCP)
- [Issues](https://github.com/cso1z/Feishu-MCP/issues)
- [License: MIT](https://github.com/cso1z/Feishu-MCP/blob/main/LICENSE)
- [README](https://github.com/cso1z/Feishu-MCP/blob/main/README.md)
- [Releases](https://github.com/cso1z/Feishu-MCP/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/cso1z-feishu-mcp
