The Feishu MCP server provides AI-driven coding tools with integrated access to Feishu (Lark) documents, tasks, and user information through a Model Context Protocol interface. It offers tools for document management (create, read, edit, delete), folder navigation, content search, task CRUD operations, and user lookup by name or ID, enabling AI assistants to intelligently retrieve, understand, and manipulate Feishu content across multiple dimensions including structured blocks, rich text, and chunked content. This solves the problem of integrating AI coding assistants like Cursor and Claude with enterprise collaboration platforms, streamlining document processing, task management, and team coordination workflows.
为 Cursor、Windsurf、Cline 和其他 AI 驱动的编码工具提供访问、编辑和结构化处理飞书文档的能力,并支持飞书任务管理和用户信息查询,基于 Model Context Protocol 服务器实现。
现已支持 feishu-tool 独立 CLI 工具,可在终端或脚本中直接调用所有飞书工具,无需启动 MCP 服务器。配合 Feishu-Skill 可让 Claude Code 等 AI Agent 自动选择最合适的方式操作飞书。
本项目让 AI 编码工具能够:
完整覆盖飞书文档的真实使用流程,助你高效利用文档资源:
本项目让你在飞书文档的日常使用流程中实现智能获取、编辑和搜索,并扩展任务与用户管理能力,提升内容处理效率和体验。
使用 Claude Code 推荐配合 claude-ip-guard —— 自动检测 IP 地理位置并拦截受限地区访问,防止因网络切换导致 Claude 封号。
你可以通过以下视频了解 MCP 的实际使用效果和操作流程:
⭐ Star 本项目,第一时间获取最新功能和重要更新! 关注项目可以让你不错过任何新特性、修复和优化,助你持续高效使用。你的支持也将帮助我们更好地完善和发展项目。⭐
| 功能类别 | 工具名称 | 描述 | 使用场景 | 状态 |
|---|---|---|---|---|
| 文档管理 | create_feishu_document | 创建新的飞书文档 | 从零开始创建文档 | ✅ 已完成 |
get_feishu_document_info | 获取文档基本信息 | 验证文档存在性和权限 | ✅ 已完成 | |
get_feishu_document_blocks | 获取文档块结构 | 了解文档层级结构 | ✅ 已完成 | |
| 内容编辑 | batch_create_feishu_blocks | 批量创建多个块 | 高效创建连续内容 | ✅ 已完成 |
update_feishu_block_text | 更新块文本内容 | 修改现有内容 | ✅ 已完成 | |
delete_feishu_document_blocks | 删除文档块 | 清理和重构文档内容 | ✅ 已完成 | |
| 文件夹管理 | get_feishu_folder_files | 获取文件夹文件列表 | 浏览文件夹内容 | ✅ 已完成 |
create_feishu_folder | 创建新文件夹 | 组织文档结构 | ✅ 已完成 | |
| 搜索功能 | search_feishu_documents | 搜索文档 | 查找特定内容 | ✅ 已完成 |
| 工具功能 | get_feishu_document_info | 获取wiki文档信息 | 将Wiki链接转为文档ID、创建wiki子节点 | ✅ 已完成 |
get_feishu_image_resource | 获取图片资源 | 下载文档中的图片 | ✅ 已完成 | |
get_feishu_whiteboard_content | 获取画板内容 | 获取画板中的图形元素和结构(流程图、思维导图等) | ✅ 已完成 | |
| 高级功能 | create_feishu_table | 创建和编辑表格 | 结构化数据展示 | ✅ 已完成 |
| 流程图插入 | 支持流程图和思维导图 | 流程梳理和可视化 | ✅ 已完成 | |
| 流程图插入(画板形式) | 支持流程图和思维导图 | 流程梳理和可视化 | ✅ 已完成 | |
| 图片插入 | upload_and_bind_image_to_block | 支持插入本地和远程图片 | 修改文档内容 | ✅ 已完成 |
| 公式支持 | 支持数学公式 | 学术和技术文档 | ✅ 已完成 | |
| 任务管理 | list_feishu_tasks | 列取我负责的任务 | 查看待办/已完成任务 | ✅ 已完成 |
create_feishu_task | 批量创建任务(含子任务) | 新建任务、拆分子任务 | ✅ 已完成 | |
update_feishu_task | 更新任务 | 修改内容、成员、提醒 | ✅ 已完成 | |
delete_feishu_task | 批量删除任务 | 清理任务 | ✅ 已完成 | |
| 用户信息 | get_feishu_users | 按名称搜索或按 ID 批量获取用户 | 查找成员、任务分配 | ✅ 已完成 |
FEISHU_SCOPE_VALIDATION 或命令行参数 --feishu-scope-validation 控制,默认启用,满足不同用户的使用场景feishu-tool <tool-name> '<json>' 命令行调用,便于脚本与自动化场景⚠️ 重要提示:在开始使用之前,必须先完成飞书应用配置,否则无法正常使用本工具。
关于如何创建飞书应用和获取应用凭证的说明可以在官方教程找到。
详细的飞书应用配置步骤:有关注册飞书应用、配置权限、添加文档访问权限的详细指南,请参阅 手把手教程 FEISHU_CONFIG.md。
npx feishu-mcp@latest --feishu-app-id=<你的飞书应用ID> --feishu-app-secret=<你的飞书应用密钥> --feishu-auth-type=<tenant/user> --enabled-modules=<document,task>
克隆仓库
git clone https://github.com/cso1z/Feishu-MCP.git
cd Feishu-MCP
配置环境变量(复制一份.env.example保存为.env文件)
编辑 .env 文件
在项目根目录下找到并用任意文本编辑器打开 .env 文件,填写你的飞书应用凭证:
FEISHU_APP_ID=cli_xxxxx
FEISHU_APP_SECRET=xxxxx
PORT=3333
FEISHU_AUTH_TYPE=tenant/user
FEISHU_ENABLED_MODULES=document,task
运行服务器
方式一:本地运行
pnpm install
pnpm run dev
方式二:使用 Docker Compose
docker-compose up -d
docker-compose logs -f
从 0.2.5 版本起,feishu-mcp npm 包随附 feishu-tool 独立 CLI,可在终端、Shell 脚本或 AI Agent 中直接调用所有飞书工具,无需启动 MCP 服务器。
# 全局安装(推荐)
npm install -g feishu-mcp@latest
# 1. 查看 CLI 概览(子命令 + 可用工具集)
feishu-tool --help
# 2. 查看初始化指南(获取 App ID / Secret 的步骤说明)
feishu-tool guide
# 3. 写入凭证
feishu-tool config set FEISHU_APP_ID cli_xxxxx
feishu-tool config set FEISHU_USER_KEY "$(node -e 'console.log(crypto.randomUUID())')"
# FEISHU_USER_KEY 建议每个本地用户或客户端保持唯一
# 4. 查看当前配置(确认写入正确)
feishu-tool config
# 5. 查看某个工具的详细参数
feishu-tool help create_feishu_document
# 6. 调用工具
feishu-tool create_feishu_document '{"title": "测试文档"}'
完整参数说明请参阅 Feishu-Skill 文档。
| 变量名 | 必需 | 描述 | 默认值 |
|---|---|---|---|
FEISHU_APP_ID | ✅ | 飞书应用 ID | - |
FEISHU_APP_SECRET | ✅ | 飞书应用密钥 | - |
PORT | ❌ | 服务器端口 | 3333 |
FEISHU_BASE_URL | ❌ | 飞书 API 基础 URL,Lark 国际版可配置为 https://open.larksuite.com/open-apis | https://open.feishu.cn/open-apis |
FEISHU_AUTH_BASE_URL | ❌ | 飞书授权页面域名,Lark 国际版设置为 https://accounts.larksuite.com | https://accounts.feishu.cn |
FEISHU_PUBLIC_BASE_URL | ❌ | 服务对外可访问的基础 URL。user 认证时若 MCP 通过内网地址访问、但 OAuth 回调需走公网域名,可设置为如 https://mcp.example.com | - |
FEISHU_AUTH_TYPE | ❌ | 认证凭证类型,使用 user(用户级,使用时是用户的身份操作飞书文档,需OAuth授权),使用 tenant(应用级,默认) | tenant |
FEISHU_SCOPE_VALIDATION | ❌ | 是否启用权限检查,设置为 false 可关闭权限检查(适用于仅使用部分功能的场景) | true |
FEISHU_ENABLED_MODULES | ❌ | 启用模块:document、task、calendar、member、all。task/calendar/member 需 user 认证 | document |
FEISHU_USER_KEY | ❌ | stdio/CLI 模式的用户标识,可通过 feishu-tool config set FEISHU_USER_KEY <value> 或命令行参数 --user-key 设置 | stdio |
FEISHU_REQUIRE_USER_KEY | ❌ | user 认证模式下是否强制要求显式 user-key。默认保持兼容;多用户 HTTP/中转场景建议设为 true | false |
FEISHU_ENCRYPTION_KEY | ❌ | Token缓存敏感字段加密密钥。任意字符串,系统自动通过SHA-256派生加密密钥。设置后 access_token、refresh_token、client_secret 等敏感字段将被加密存储。Docker部署时建议设置固定密钥 | - |
MCP_BEARER_TOKEN | ❌ | MCP Bearer Token 认证令牌。设置后,所有 HTTP/SSE/StreamableHTTP 端点将要求请求头 Authorization: Bearer <token>,未设置时不启用认证。建议使用 UUID 等随机字符串 | - |
| 模块 | 说明 | 认证要求 |
|---|---|---|
document | 文档、文件夹、搜索等 | tenant / user |
task | 任务 CRUD | 仅 user |
calendar | 日历(开发中) | 仅 user |
member | 用户信息查询 | 仅 user |
all | 启用全部模块 | user 时全部加载 |
{
"mcpServers": {
"feishu-mcp": {
"command": "npx",
"args": ["-y", "feishu-mcp@latest", "--stdio"],
"env": {
"FEISHU_APP_ID": "<你的飞书应用ID>",
"FEISHU_APP_SECRET": "<你的飞书应用密钥>",
"FEISHU_AUTH_TYPE": "<tenant/user>",
"FEISHU_ENABLED_MODULES": "document,task",
"FEISHU_USER_KEY": "<你的用户标识>"
}
}
}
}
{
"mcpServers": {
"feishu_local": {
"url": "http://localhost:3333/sse?userKey=123456"
}
}
}
{
"mcpServers": {
"feishu_streamable": {
"url": "http://localhost:3333/mcp?userKey=123456"
}
}
}
当配置了 MCP_BEARER_TOKEN 环境变量后,所有 HTTP/SSE/StreamableHTTP 端点将要求请求携带 Authorization: Bearer <token> 头。适用于公网部署场景,防止未授权访问。
配置示例:
# .env 文件
MCP_BEARER_TOKEN=your-secret-token-here
客户端配置示例(SSE 模式 + Bearer 认证):
⚠️ 目前大多数 MCP 客户端(如 Cursor、Cline)不支持在 SSE/StreamableHTTP 连接中自定义请求头。如需使用 Bearer 认证,请确认你的客户端支持传递
Authorization头,或通过反向代理(如 Nginx)在服务端前置认证。
对于支持自定义头的客户端或 API 调用:
# SSE 连接示例
curl -H "Authorization: Bearer your-secret-token-here" http://localhost:3333/sse?userKey=123456
# StreamableHTTP 请求示例
curl -X POST -H "Authorization: Bearer your-secret-token-here" -H "Content-Type: application/json" http://localhost:3333/mcp?userKey=123456
⚠️ 重要提示 : URL 中的 userKey 表示连接用户的标识,是非常重要的配置,请填写并尽可能随机
userKey 传递方式:支持两种方式传递用户标识
?userKey=123456(推荐,配置简单)user-key: 123456(适合需要隐藏参数的场景)新建文档时,建议主动提供飞书文件夹 token(可为具体文件夹或根文件夹),这样可以更高效地定位和管理文档。如果不确定具体的子文件夹,可以让LLM自动在你指定的文件夹下查找最合适的子目录来新建文档。
如何获取文件夹 token? 打开飞书文件夹页面,复制链接(如
https://.../drive/folder/xxxxxxxxxxxxxxxxxxxxxx),token 就是链接最后的那一串字符(如xxxxxxxxxxxxxxxxxxxxxx,请勿泄露真实 token)。
本地运行 MCP 时,图片路径既支持本地绝对路径,也支持 http/https 网络图片;如在服务器环境,仅支持网络图片链接(由于cursor调用mcp时参数长度限制,暂不支持直接上传图片文件本体,请使用图片路径或链接方式上传)。
在文本块中可以混合使用普通文本和公式元素。公式使用LaTeX语法,如:1+2=3、\frac{a}{b}、\sqrt{x}等。支持在同一文本块中包含多个公式和普通文本。
user认证与tenant认证在增加权限时是有区分的,所以在初次由tenant切换到user时需要注意配置的权限;为了区分不同的用户需要传递用户标识 userKey,支持两种方式:
?userKey=123456user-key: 123456 请求头该值是用户的唯一标识,所以最好在设置时越随机越好
tenant认证有诸多限制,比如文件访问权限、飞书openapi兼容(不支持搜索wiki文档)、文档创建编辑记录等方面都不如user认证。
想用 AI 帮你管理飞书任务(列出待办、创建任务、分配负责人)或查找同事信息?需要两步:① 使用 user 认证(tenant 模式下不提供这些能力);② 在配置中设置 FEISHU_ENABLED_MODULES=document,task。启用 task 后,用户查询功能会自动可用,无需额外配置。
飞书国内版无需额外配置。如果你的团队使用 Lark 国际版或自建飞书服务,需额外设置:
FEISHU_BASE_URL=https://open.larksuite.com/open-apis
FEISHU_AUTH_BASE_URL=https://accounts.larksuite.com
如果 MCP 客户端通过内网地址访问服务(例如 http://feishu-mcp:3333/mcp),但飞书 OAuth 回调必须使用公网域名,可额外设置:
FEISHU_PUBLIC_BASE_URL=https://somo-feishu-mcp.yfgao.net
这样客户端仍可继续连接内网地址,而返回给用户的授权链接会使用 https://somo-feishu-mcp.yfgao.net/callback 作为回调地址。
在多租户中转架构下,系统通过集成管理工具统一代理飞书 MCP 服务。由于底层 MCP 服务实例在会话层存在复用,不同用户的请求实际上运行在共享的 Session 上下文中。因此,系统需支持基于请求头透传的 user-key 进行动态切换,以实现租户身份的隔离与上下文注入,从而满足多用户并发访问的需求。
如何切换 userKey:
user-key 请求头动态更新当前会话的用户标识user-key: <新的用户标识>user-key: userB,系统会自动将会话切换到用户 B 的上下文注意:此功能仅在 HTTP Streamable 模式下有效,SSE 和 stdio 模式不支持动态切换。
先对照配置问题查看: 手把手教程 FEISHU_CONFIG.md。
详细的开发文档和技术指南,为学习者和贡献者提供全面的指导:
如果这个项目帮助到了你,请考虑:
你的支持是我们前进的动力!