MCP-сервер Feishu/Lark (корпоративный мессенджер).
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 文件,填为 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。
详细的开发文档和技术指南,为学习者和贡献者提供全面的指导:
如果这个项目帮助到了你,请考虑:
你的支持是我们前进的动力!