Lark MCP
Lark Agentx — ваш ИИ-ассистент в Feishu 🚀
ИИ-агент на базе Feishu (Lark), реализующий вызовы функций и обработку сообщений для больших языковых моделей через Feishu.
Настройка бота Feishu не требуется, ваша учетная запись Feishu и есть ИИ-ассистент.
Просто определите функцию и комментарии к ней, и ваш бот Feishu будет автоматически вызывать её в зависимости от контекста.
Обзор проекта 🌟
Lark Agentx — это современное приложение на Python, которое позволяет:
📊 Реверс-инжиниринг веб-сокетов и API, передающих данные в формате Protobuf в Feishu, для прослушивания и записи сообщений
🤖 Предоставление пользовательских функций для вызова большими языковыми моделями
🔄 Реализация фреймворка вызова функций на основе MCP (Model Context Protocol)
💾 Хранение сообщений в базе данных MySQL с использованием SQLAlchemy
Related MCP server: Feishu MCP Server
Скриншоты 🧸
✨ Функциональные особенности
Механизм регистрации функций: Простой и интуитивно понятный декоратор для регистрации функций
Автоматическая обработка сообщений: Запись всех входящих сообщений (личные чаты и групповые чаты)
Асинхронная обработка: Использование модели async/await для асинхронного взаимодействия
Персистентность данных: Хранение сообщений в базе данных MySQL через SQLAlchemy
Гибкая конфигурация: Настройка через переменные окружения
Контейнеризация: Поддержка быстрого развертывания через Docker
Интеллектуальный вызов функций: ИИ автоматически анализирует текст пользователя и вызывает наиболее подходящую функцию; разработчику нужно лишь добавить функцию и её описание
📦 Поддерживаемые функции
В проект встроены следующие функции для вызова ИИ-моделями:
Имя функции | Описание |
| Рассказать случайную шутку |
| Получить текущее время |
| Узнать случайное предсказание |
| Получить погоду в городе |
| Получить статистику количества говорящих сегодня |
| Получить пользователя, который больше всех писал сегодня |
| Отправить сообщение указанному пользователю |
| Перечислить все доступные инструменты и их описания |
| Извлечь информацию о заказе из текста, включая номер заказа, название товара, количество и т.д. |
Вы можете вызывать эти функции, введя в Feishu команду запуска, за которой следует действие, например: /run Расскажи шутку
📂 Структура проекта
project/
├── app/ # 应用程序模块
│ ├── api/ # API相关模块
│ │ ├── auth.py # 认证模块
│ │ └── lark_client.py # 飞书客户端
│ ├── config/ # 配置模块
│ │ └── settings.py # 应用配置
│ ├── core/ # 核心业务逻辑
│ │ ├── mcp_server.py # MCP服务器(函数注册和处理)
│ │ ├── llm_service.py # LLM服务
│ │ └── message_service.py # 消息处理服务
│ ├── db/ # 数据库相关
│ │ ├── models.py # 数据模型
│ │ └── session.py # 数据库会话管理
│ └── utils/ # 工具函数
├── builder/ # 请求构建器
├── extension/ # 扩展功能
│ └── weather_api/ # 天气API集成
├── static/ # 静态资源
│ ├── resource/ # 图片资源
│ ├── proto_pb2.py # 协议定义
│ └── lark_decrypt.js # 飞书解密工具
├── .env # 环境变量
├── main.py # 应用入口
├── requirements.txt # 项目依赖
├── docker-compose.yml # Docker Compose配置
└── Dockerfile # Docker配置🛠️ Разработка пользовательских функций
В файле app/core/mcp_server.py вы можете добавить свои собственные функции, используя декоратор @register_tool:
@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 3.10+
Node.js 18+
База данных MySQL
📦 Установка
Использование локальной среды
Установка зависимостей:
pip install -r requirements.txtПримечание для пользователей Windows: В системе Windows необходимо дополнительно установить следующие зависимости:
pip install win-inet-pton==1.1.0
Использование Docker
Способ 1: Сборка образа отдельно
# 构建镜像
docker build -t feishuapp .
# 运行容器 需要外部mysql 通过docker网关连接宿主机mysql 推荐--env-file
docker run -it feishuapp bashСпособ 2: Использование Docker Compose (рекомендуется)
# 启动所有服务(应用和数据库)
docker-compose up -d
# 查看日志
docker-compose logs -f
# 停止所有服务
docker-compose downИспользование Docker Compose позволяет запустить всю среду приложения одним нажатием, включая базу данных MySQL и сервисы приложения, что более удобно и эффективно.
🛠️ Конфигурация
Скопируйте файл .env.example и переименуйте его в .env, указав следующие параметры:
# 数据库设置
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=123456
DB_NAME=lark_messages
# 飞书的Cookie设置 - 只需配置LARK_COOKIE即可,告别飞书机器人
LARK_COOKIE=""
# 调用函数的触发前缀 (以FUNCTION_TRIGGER_FLAG开头的消息会被大模型解析,所有消息都会被记录到数据库,无论是否以该前缀开头)
FUNCTION_TRIGGER_FLAG="/run"
# 机器人发言前缀 (暂未使用)
AI_BOT_PREFIX="Lark AI Bot:"
# OpenAI API配置 默认是通义千问的,满足OpenAI的大模型厂商都可以
OPENAI_API_KEY=""
OPENAI_API_BASE_URL="https://dashscope.aliyuncs.com/compatible-mode/v1"
OPENAI_API_MODEL="qwen-plus"🚀 Руководство по использованию
Запуск приложения
Способ 1: Прямой запуск
python main.pyСпособ 2: Использование Docker Compose
docker-compose up -dПриложение выполнит следующие действия:
Инициализирует MCP-сервер
Подключится к API Feishu и будет использовать вашу учетную запись Feishu в качестве ИИ-ассистента
Начнет прослушивание входящих сообщений
Обработает и выполнит вызовы функций, инициированные ИИ-моделью через Feishu
Сохранит сообщения в базу данных MySQL
🗄️ Структура базы данных
Приложение сохраняет сообщения в таблице messages, которая имеет следующую структуру:
Имя столбца | Тип | Описание |
id | INT (PK) | Первичный ключ |
user_name | VARCHAR(255) | Имя отправителя сообщения |
user_id | VARCHAR(255) | ID пользователя Feishu |
content | TEXT | Содержимое сообщения |
is_group_chat | BOOLEAN | Является ли сообщение групповым |
group_name | VARCHAR(255) | Название группы (если применимо) |
chat_id | VARCHAR(255) | ID чата |
message_time | DATETIME | Время отправки сообщения |
created_at | DATETIME | Время создания записи |
🤝 Руководство по участию
Вклад приветствуется! Не стесняйтесь отправлять Pull Request.
Сделайте Fork этого репозитория
Создайте свою ветку функций (
git checkout -b feature/amazing-feature)Зафиксируйте изменения (
git commit -m 'Добавлены отличные функции')Отправьте изменения в ветку (
git push origin feature/amazing-feature)Откройте Pull Request
🐛 Проблемы и поддержка
Если вы столкнулись с какими-либо проблемами или у вас есть вопросы, пожалуйста, создайте issue или посетите наш форум обсуждений.
📈 Динамика звезд
🍔 Группа для общения
Если вы интересуетесь парсингом и ИИ-агентами, добавьте автора в WeChat (через главную страницу) для получения приглашения в группу.
ps: Пожалуйста, добавляйтесь в группу 7, если она заполнена или ссылка истекла — напишите в issue | wx для напоминания

This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceA zero-configuration MCP server enabling AI assistants to interact with Feishu (Lark) workspace through OAuth authentication, supporting document operations, content creation, and advanced file management.37MIT
- AlicenseNot gradedqualityFmaintenanceA remote Model Context Protocol server for Feishu (Lark) that supports OAuth authentication and deployment on Cloudflare Workers. It allows AI clients to interact with Feishu documents, perform content searches, and manage document blocks with a zero-configuration experience.85MIT
- AlicenseBqualityFmaintenanceAn MCP server that exposes Feishu/Lark capabilities as function tools to MCP-compatible agents like Hermes and Claude Desktop. It provides 57 tools for messaging, document management, calendar operations, and task management through both hand-written fallback tools and bridged OpenClaw SDK functionality.531MIT
- AlicenseNot gradedqualityDmaintenanceMCP server that pushes Feishu (Lark) messages to Claude Code sessions and allows Claude to reply directly in Feishu.2MIT
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
MCP server for AI dialogue using various LLM models via AceDataCloud
A Model Context Protocol server for Wix AI tools
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/cv-cat/LarkAgentX'
If you have feedback or need assistance with the MCP directory API, please join our Discord server