飞书MCP服务器

飞书MCP服务器是一个基于模型上下文协议(MCP)的AI代理工具,允许AI代理直接控制飞书,包括发送消息、创建日历、管理任务和编写云文档。

  • by lichman0405
  • Python
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 lichman0405/feishu-mcp

使用说明

费舒·米克罗埃拉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贡献者