使用说明
费舒·米克罗埃拉mcp
🤖 飞舒MCP服务器 --让AI代理直接控制Feishu:发送消息、创建日历、管理任务和编写云文档。
目录
特性
该项目实现了 MCP(模型上下文协议)服务器 它将Feishu的核心功能包装成结构化的人工智能工具,使任何兼容MCP的人工智能代理/LLM工具链能够:
| 能力 | 功能 |
|---|---|
| 💬 消息 | 发送和回复群消息,@提及成员,Markdown格式 |
| 📅 日历 | 创建/查询组日历、创建事件、邀请与会者 |
| ✅ 任务 | 创建任务、分配所有者、设置截止日期 |
| 📄 文档 | 创建云文档、编写Markdown内容、上传文件、一键共享链接、设置合作者权限 |
| 👥 用户 | 获取组成员列表,按名称解析用户 |
| 🔔 事件 | 通过长连接WebSocket实时接收Feishu推送事件(无需公共IP) |
快速开始
1.克隆并安装
git clone https://github.com/your-username/feishu-miqroera-mcp.git
cd feishu-miqroera-mcp
python -m venv .venv
# Windows
.venv\Scripts\activate
# macOS / Linux
source .venv/bin/activate
pip install -e .
2.配置飞舒应用凭据
cp .env.example .env
编辑 .env:
FEISHU_APP_ID=cli_xxxxxxxxxxxxxxxxxx
FEISHU_APP_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
如何获取凭据:登录 飞树开放平台 → 创建内部应用程序→ 转到“凭据和基本信息”页面
3.验证安装
# Confirm the MCP server starts correctly (Ctrl+C to exit)
.venv\Scripts\python.exe -m feishu_mcp.server
你应该看看 MCP server running on stdio 表明成功。
连接AI代理
NanoBot(推荐)
纳米机器人 是一个轻量级的多模式AI Agent框架,原生支持MCP服务器和Feishu通道。
步骤1:编辑NanoBot配置文件
# Config file location (auto-created)
~/.nanobot/config.json # macOS / Linux
%USERPROFILE%\.nanobot\config.json # Windows
第二步:将feishu mcp添加到 tools.mcpServers
{
"tools": {
"mcpServers": {
"feishu-mcp": {
"command": "C:/path/to/feishu-miqroera-mcp/.venv/Scripts/python.exe",
"args": ["-m", "feishu_mcp.server"],
"env": {
"FEISHU_APP_ID": "cli_xxxxxxxxxxxxxxxxxx",
"FEISHU_APP_SECRET": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
}
}
},
"channels": {
"feishu": {
"appId": "cli_xxxxxxxxxxxxxxxxxx",
"appSecret": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
}
}
Windows注释:使用正斜杠
/或双反睫毛\\在路径
步骤3:启动NanoBot
nanobot run
NanoBot会自动建立飞舒长连接;然后,人工智能可以通过自然语言驱动Feishu操作。
克劳德桌面版
步骤1:找到配置文件
| 操作系统 | 路径 |
|---|---|
| 窗户 | %APPDATA%\Claude\claude_desktop_config.json |
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
步骤2:添加MCP服务器配置
{
"mcpServers": {
"feishu-mcp": {
"command": "C:/path/to/feishu-miqroera-mcp/.venv/Scripts/python.exe",
"args": ["-m", "feishu_mcp.server"],
"env": {
"FEISHU_APP_ID": "cli_xxxxxxxxxxxxxxxxxx",
"FEISHU_APP_SECRET": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
}
}
}
macOS 例子:
"command": "/Users/yourname/feishu-miqroera-mcp/.venv/bin/python"
步骤3:重新启动克劳德桌面
重新启动后,查找🔧 在聊天输入区点击图标,确认“feishu mcp”已加载。
光标
步骤1:找到配置文件
<project root>/.cursor/mcp.json
或全局配置:
| 操作系统 | 路径 |
|---|---|
| 窗户 | %USERPROFILE%\.cursor\mcp.json |
| macOS | ~/.cursor/mcp.json |
步骤2:添加配置
{
"mcpServers": {
"feishu-mcp": {
"command": "C:/path/to/feishu-miqroera-mcp/.venv/Scripts/python.exe",
"args": ["-m", "feishu_mcp.server"],
"env": {
"FEISHU_APP_ID": "cli_xxxxxxxxxxxxxxxxxx",
"FEISHU_APP_SECRET": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
}
}
}
步骤3:打开光标→ 设置→ MCP → 确认飞舒mcp状态为绿色
Cline/Continue/其他MCP兼容工具
所有支持MCP stdio传输的工具都可以使用相同的配置格式进行连接:
{
"command": "/absolute/path/to/.venv/bin/python",
"args": ["-m", "feishu_mcp.server"],
"env": {
"FEISHU_APP_ID": "cli_xxx",
"FEISHU_APP_SECRET": "xxx"
}
}
长连接事件侦听器
Feishu的长连接(WebSocket) 不需要公共IP 没有ngrok——直接从NAT后面接收Feishu推送事件。
# Start the event listener standalone (runs 24/7)
.venv\Scripts\python.exe -m feishu_mcp.webhook.longconn
启动后的日志输出示例:
INFO Connecting to Feishu WebSocket: wss://msg-frontier.feishu.cn/ws/v2
INFO Feishu long connection established
INFO Received message event: chat_id=oc_xxx, sender=ou_xxx, text=Hello
在您自己的应用程序代码中接收事件:
import lark_oapi as lark
client = lark.Client.builder() \
.app_id("cli_xxx") \
.app_secret("xxx") \
.event_callback(lark.EventType.IM_MESSAGE_RECEIVE_V1, your_handler) \
.build()
ws = lark.ws.Client(app_id, app_secret, event_handler=client.event_handler)
ws.start()
Docker部署
直接使用Docker
# Build image
docker build -t feishu-miqroera-mcp .
# Start Feishu event listener (background)
docker run -d \
--name feishu-listener \
--env-file .env \
--restart unless-stopped \
feishu-miqroera-mcp \
feishu_mcp.webhook.longconn
# View logs
docker logs -f feishu-listener
使用Docker Compose
# Copy and fill in env vars
cp .env.example .env
# Edit .env with APP_ID and APP_SECRET
# Start event listener
docker compose up -d feishu-listener
# Check status
docker compose ps
# View logs
docker compose logs -f feishu-listener
MCP服务器(stdio) 通常由AI Agent框架直接作为本地进程调用,不需要容器化。
Docker主要用于持久运行 事件监听器.
完整工具列表
| 工具 | 说明 |
|---|---|
get_chat_members |
获取组的成员列表 |
resolve_users_by_name |
按名称查找组中的用户 |
send_message |
向组或用户发送文本/富文本消息 |
reply_message |
回复特定消息 |
get_or_create_group_calendar |
获取或创建共享组日历 |
create_calendar_event |
在日历中创建事件 |
add_event_attendees |
将与会者添加到日历事件 |
list_calendar_events |
查询日历事件列表 |
create_task |
创建一个Feishu任务(包括截止时间和描述) |
assign_task |
为任务分配所有者 |
add_task_to_list |
将任务添加到任务列表 |
list_tasks |
查询任务列表 |
create_folder |
在驱动器中创建文件夹 |
create_document |
创建飞舒云文档 |
write_document_markdown |
将Markdown内容写入文档(接受docx document_id 或维基 node_token) |
upload_file |
将文件上传到飞舒驱动器 |
upload_file_and_share |
一步上传文件并返回可共享链接(上传+设置权限+获取链接) |
insert_file_block |
在文档中插入文件附件块(接受docx document_id 或维基 node_token) |
set_doc_permission |
将协作者添加到文档中(支持用户或组) |
set_doc_public_access |
设置文档公共访问/链接共享权限 |
get_share_link |
获取文档的共享链接 |
grant_permission_request |
处理许可请求并授权申请人 |
看 docs/api.md 有关完整参数的详细信息。
飞舒应用权限
在应用程序的管理页面中启用以下权限 Feishu开发者控制台:
| 许可 | 目的 |
|---|---|
im:message |
发送/接收消息 |
im:message.group_at_msg |
群组@提及功能 |
im:chat.members:read |
阅读群组成员 |
task:task |
任务读/写 |
calendar:calendar |
日历读/写 |
drive:drive |
驱动器/文档读/写 |
docx:document |
云文档内容编辑 |
wiki:wiki:readonly |
将wiki节点令牌解析为docx文档ID(如果文档是wiki挂载的,则需要) |
启用权限的路径:应用程序管理→ 权限管理→ 启用上述权限→ 发布版本。
发展与贡献
# Run unit tests
pytest tests/ -v
# Run integration tests (requires real Feishu credentials)
pytest tests/integration/ -v
# Format code
ruff format src/ tests/
# Lint check
ruff check src/ tests/
看 贡献.md 了解详情。
许可证
麻省理工学院 ©2026飞舒miqroera mcp贡献者
