Lark MCP - 飞书全场景 AI 助手 来啦🚀
一个基于飞书(Lark)的全场景 MCP Function Call AI Agent ,实现大模型通过飞书进行函数调用和消息处理。
项目地址 https://github.com/cv-cat/LarkAgentX
无需配置飞书机器人,你的飞书账号即是 AI 助手。
只需定义函数和注释,你的飞书机器人会自动根据场景调用。
项目概述 🌟
Lark MCP 是一个现代化的 Python 应用程序,能够:
- 📊 逆向飞书 Protobuf 格式传输的 Websockets 和 API ,监听并记录消息
- 🤖 提供自定义函数供大模型调用
- 🔄 实现基于 MCP (Model Context Protocol) 的函数调用框架
- 💾 使用 SQLAlchemy 将消息存储到 MySQL 数据库
系统架构
✨ 功能特点
- 函数注册机制: 简单直观的函数注册装饰器
- 消息自动处理: 记录所有接收到的消息(私聊和群聊)
- 异步处理: 采用 async/await 模式进行异步通信
- 数据持久化: 使用 SQLAlchemy 将消息存储在 MySQL 数据库中
- 灵活配置: 通过环境变量进行配置
- 容器化部署: 支持 Docker 快速部署
🛠️ 自定义函数示例
@register_tool(name="tell_joke", description="讲一个随机笑话")
def tell_joke() -> str:
jokes = [
"为什么程序员都喜欢黑色?因为他们不喜欢 bug 光。",
"Python 和蛇有什么共同点?一旦缠上你就放不下了。",
"为什么 Java 开发者很少被邀去派对?因为他们总是抛出异常。",
]
return random.choice(jokes)
@register_tool(name="send_message", description="给指定用户发送消息 {user:用户名称 content:消息内容}")
def send_message(user: str, content: str) -> str:
"""给指定用户发送私信"""
lark_client = LarkClient(get_auth())
# ... 实现逻辑 ...
return f"成功向 {user} 发送了私信: '{content}'"
🚀 使用指南
运行应用程序
python main.py
应用程序将:
- 初始化 MCP 服务器
- 连接到飞书 API
- 监听传入的消息
- 处理并执行大模型通过飞书发起的函数调用
- 将消息存储在 MySQL 数据库中
函数注册与开发
要添加新的函数,只需在app/core/mcp_server.py
中使用@register_tool
装饰器:
@register_tool(name="your_function_name", description="功能描述")
def your_function(param1: str, param2: int = 0) -> str:
"""函数实现逻辑"""
# 实现代码...
return "返回结果"
重要: 只需添加函数和对应的描述,AI 会根据用户的文字自动分析并调用最匹配的函数,无需手动实现函数匹配逻辑。
🧸关于我
正在实习的一名研二学生,有问题欢迎加群或者加 V 交流,联络方式在 github 上哈